summaryrefslogtreecommitdiff
path: root/addons/document/document.py
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2008-10-28 09:38:03 +0100
committerFabien Pinckaers <fp@tinyerp.com>2008-10-28 09:38:03 +0100
commit31028bc1dd88ee9ee10d0ae8c8c66ca19af3eb6c (patch)
treefabb0599b5b7d00442b9bd758325546c657c92e2 /addons/document/document.py
parent29495c58cec6907db7b710edbc08320b2fdbb4e5 (diff)
improved_document
bzr revid: fp@tinyerp.com-20081028083803-muzp8gr3l2er3sqf
Diffstat (limited to 'addons/document/document.py')
-rw-r--r--addons/document/document.py42
1 files changed, 27 insertions, 15 deletions
diff --git a/addons/document/document.py b/addons/document/document.py
index 8637e3bc1db..4471cb9e60a 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -77,14 +77,17 @@ class node_class(object):
fobj = pool.get('ir.attachment')
res2 = []
where = []
+ print '_FILE_GET', nodename
if self.object2:
where.append( ('res_model','=',self.object2._name) )
where.append( ('res_id','=',self.object2.id) )
- for content in self.object.content_ids:
+ for content in self.object.content_ids:
+ if self.object2 or not content.include_name:
if content.include_name:
test_nodename = self.object2.name + (content.suffix or '') + (content.extension or '')
else:
test_nodename = (content.suffix or '') + (content.extension or '')
+ print 'TESTING CONTENT', test_nodename
if test_nodename.find('/'):
test_nodename=test_nodename.replace('/', '_')
path = self.path+'/'+test_nodename
@@ -128,10 +131,12 @@ class node_class(object):
return res
def _child_get(self, nodename=False):
+ print 'Getting Childs', nodename, self.type
if self.type not in ('collection','database'):
return []
res = self.directory_list_for_child(nodename)
result= map(lambda x: node_class(self.cr, self.uid, self.path+'/'+x.name, x, x.type=='directory' and self.object2 or False, root=self.root), res)
+ print 'RESULT', result
if self.type=='database':
pool = pooler.get_pool(self.cr.dbname)
fobj = pool.get('ir.attachment')
@@ -142,7 +147,9 @@ class node_class(object):
res = fobj.browse(self.cr, self.uid, file_ids, context=self.context)
result +=map(lambda x: node_class(self.cr, self.uid, self.path+'/'+x.name, x, False, type='file', root=self.root), res)
+ print 'DATABASE', result
if self.type=='collection' and self.object.type=="ressource":
+ print 'ICI'
where = self.object.domain and eval(self.object.domain, {'active_id':self.root}) or []
pool = pooler.get_pool(self.cr.dbname)
obj = pool.get(self.object.ressource_type_id.model)
@@ -379,36 +386,41 @@ class document_directory_node(osv.osv):
}
document_directory_node()
+class document_directory_content_type(osv.osv):
+ _name = 'document.directory.content.type'
+ _description = 'Directory Content Type'
+ _columns = {
+ 'name': fields.char('Content Type', size=64, required=True),
+ 'code': fields.char('Extension', size=4),
+ 'active': fields.boolean('Active'),
+ }
+ _defaults = {
+ 'active': lambda *args: 1
+ }
+document_directory_content_type()
+
class document_directory_content(osv.osv):
_name = 'document.directory.content'
_description = 'Directory Content'
_order = "sequence"
+ def _extension_get(self, cr, uid, context={}):
+ cr.execute('select code,name from document_directory_content_type where active')
+ res = cr.fetchall()
+ return res
_columns = {
'name': fields.char('Content Name', size=64, required=True),
'sequence': fields.integer('Sequence', size=16),
'suffix': fields.char('Suffix', size=16),
- 'report_id': fields.many2one('ir.actions.report.xml', 'Report', required=True),
- 'extension': fields.selection([('.pdf','PDF Report'),('.ics','ICS Calendar')], 'Report Type', required=True),
+ 'report_id': fields.many2one('ir.actions.report.xml', 'Report'),
+ 'extension': fields.selection(_extension_get, 'Report Type', required=True, size=4),
'include_name': fields.boolean('Include Record Name', help="Check if you cant that the name of the file start by the record name."),
'directory_id': fields.many2one('document.directory', 'Directory'),
- 'ics_object_id': fields.many2one('ir.model', 'Object'),
- 'ics_domain': fields.char('Domain', size=64)
}
_defaults = {
'extension': lambda *args: '.pdf',
'sequence': lambda *args: 1,
'include_name': lambda *args: 1,
}
- def process_read_ics(self, cr, uid, node, context={}):
- import vobject
- obj_class = self.pool.get(node.ics_object_id.name)
- ids = obj_class.search(cr, uid, node.ics_domain, context)
- cal = vobject.iCalendar()
- for obj in obj_class.browse(cr, uid, ids, context):
- cal.add('vevent')
- cal.vevent.add('summary').value = "This is a note"
- return cal.serialize()
-
def process_read_pdf(self, cr, uid, node, context={}):
report = self.pool.get('ir.actions.report.xml').browse(cr, uid, node.report_id.id)
srv = netsvc.LocalService('report.'+report.report_name)