diff options
| author | Ravish Murari (OpenERP) <rmu@tinyerp.com> | 2012-08-23 17:16:08 +0530 |
|---|---|---|
| committer | Ravish Murari (OpenERP) <rmu@tinyerp.com> | 2012-08-23 17:16:08 +0530 |
| commit | 05acae2e2fe8b72d7b1523fa0dd91a8e7d2ea09f (patch) | |
| tree | 337084f7e348d9a84e2530c2eb8362a5c966d024 /addons/document | |
| parent | c5f7f6ecdf710985f29cc73e310ea1f3852b468d (diff) | |
| parent | 79224ea6722e0f2644239b582d86346f32021c0a (diff) | |
[merge] with latest addons
bzr revid: rmu@tinyerp.com-20120823114608-zerb6vg7l1ckf5mi
Diffstat (limited to 'addons/document')
63 files changed, 570 insertions, 816 deletions
diff --git a/addons/document/__openerp__.py b/addons/document/__openerp__.py index d8e42703efc..212965a8162 100644 --- a/addons/document/__openerp__.py +++ b/addons/document/__openerp__.py @@ -29,7 +29,7 @@ This is a complete document management system. ============================================== * User Authentication - * Document Indexation :- .pptx and .docx files are not supported in Windows platform. + * Document Indexation:- .pptx and .docx files are not supported in Windows platform. * Dashboard for Document that includes: * New Files (list) * Files by Resource Type (graph) @@ -37,16 +37,16 @@ This is a complete document management system. * Files Size by Month (graph) ATTENTION: - - When you install this module in a running company that have already PDF files stored into the database, - you will lose them all. +---------- + - When you install this module in a running company that have already PDF + files stored into the database, you will lose them all. - After installing this module PDF's are no longer stored into the database, but in the servers rootpad like /server/bin/filestore. """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['process','board', 'knowledge'], - 'init_xml': [], - 'update_xml': [ + 'data': [ 'security/document_security.xml', 'document_view.xml', 'document_data.xml', @@ -55,10 +55,8 @@ ATTENTION: 'report/document_report_view.xml', 'board_document_view.xml', ], - 'demo_xml': [ 'document_demo.xml','board_document_demo.xml'], - 'test': [ - 'test/document_test2.yml', - ], + 'demo': [ 'document_demo.xml','board_document_demo.xml'], + 'test': ['test/document_test2.yml'], 'installable': True, 'auto_install': False, 'certificate': '0070515416461', diff --git a/addons/document/board_document_view.xml b/addons/document/board_document_view.xml index 635a74052e9..a802d788e05 100644 --- a/addons/document/board_document_view.xml +++ b/addons/document/board_document_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="board_document_manager_form"> <field name="name">board.document.manager.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Document board" version="7.0"> <board style="2-1" > @@ -12,10 +11,13 @@ <action string="New Files" name="%(document.action_view_all_document_tree1)d" view_mode="tree,form"/> + <action string="Files by Month" + name="%(document.action_view_files_by_month_graph)d" + view_mode="graph,tree"/> </column> <column> - <action string="File Size by Month" - name="%(document.action_view_size_month)d" + <action string="Files by user" + name="%(document.action_view_files_by_user_graph)d" view_mode="graph,tree"/> </column> </board> @@ -25,71 +27,18 @@ <record model="ir.actions.act_window" id="open_board_document_manager"> - <field name="name">Document Dashboard</field> + <field name="name">Knowledge</field> <field name="res_model">board.board</field> <field name="view_type">form</field> <field name="view_mode">form</field> - <field name="view_id" ref="board_document_manager_form"/> </record> + + <menuitem id="menu_reports_document" + parent="base.menu_reporting_dashboard" + sequence="55" + action="open_board_document_manager" + icon="terp-graph"/> - <menuitem id="menu_reporting" name="Reporting" sequence="2" parent="knowledge.menu_document"/> - <menuitem - name="Knowledge" - id="menu_reports_document" - parent="base.menu_reporting_dashboard" - sequence="45" - groups="base.group_system"/> - - - <menuitem - parent="menu_reports_document" - action="open_board_document_manager" - sequence="1" - id="menu_reports_document_manager" - icon="terp-graph"/> - - <record model="ir.ui.view" id="board_document_manager_form1"> - <field name="name">board.document.manager.form1</field> - <field name="model">board.board</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <form string="Document board" layout="manual" version="7.0"> - <board style="2-1"> - <column> - <action string="Wall of Shame" - name="%(document.action_view_wall)d" - view_mode="tree"/> - - </column> - <column> - <action string="Files by Users" - name="%(document.action_view_user_graph)d" - view_mode="graph,tree"/> - - <action string="Files by Month" - name="%(document.action_view_files_by_month_graph)d" - view_mode="graph,tree"/> - </column> - </board> - </form> - </field> - </record> - - - <record model="ir.actions.act_window" id="open_board_document_manager1"> - <field name="name">Statistics by User</field> - <field name="res_model">board.board</field> - <field name="view_type">form</field> - <field name="view_mode">form</field> - <field name="view_id" ref="board_document_manager_form1"/> - </record> - - <menuitem - parent="menu_reports_document" - action="open_board_document_manager1" - sequence="1" - id="menu_reports_document_manager1" - icon="terp-graph"/> </data> </openerp> diff --git a/addons/document/content_index.py b/addons/document/content_index.py index 64b480ee736..4cf3c8dfed2 100644 --- a/addons/document/content_index.py +++ b/addons/document/content_index.py @@ -22,7 +22,7 @@ import logging import os import tempfile from subprocess import Popen, PIPE - +_logger = logging.getLogger(__name__) class NhException(Exception): pass @@ -93,13 +93,13 @@ class indexer(object): except NhException: pass - raise NhException('No appropriate method to index file') + raise NhException('No appropriate method to index file.') def _doIndexContent(self,content): - raise NhException("Content not handled here") + raise NhException("Content cannot be handled here.") def _doIndexFile(self,fpath): - raise NhException("Content not handled here") + raise NhException("Content cannot be handled here.") def __repr__(self): return "<indexer %s.%s>" %(self.__module__, self.__class__.__name__) @@ -116,7 +116,7 @@ def mime_match(mime, mdict): return (None, None) class contentIndex(object): - __logger = logging.getLogger('addons.document.content_index') + def __init__(self): self.mimes = {} self.exts = {} @@ -132,9 +132,9 @@ class contentIndex(object): f = True if f: - self.__logger.debug('Register content indexer: %r', obj) + _logger.debug('Register content indexer: %r.', obj) if not f: - raise Exception("Your indexer should at least suport a mimetype or extension") + raise Exception("Your indexer should at least support a mimetype or extension.") def doIndex(self, content, filename=None, content_type=None, realfname = None, debug=False): fobj = None @@ -169,22 +169,22 @@ class contentIndex(object): (result, _) = pop.communicate() mime2 = result.split(';')[0] - self.__logger.debug('File gave us: %s', mime2) + _logger.debug('File gives us: %s', mime2) # Note that the temporary file still exists now. mime,fobj = mime_match(mime2, self.mimes) if not mime: mime = mime2 except Exception: - self.__logger.exception('Cannot determine mime type') + _logger.exception('Cannot determine mime type.') try: if fobj: res = (mime, fobj.indexContent(content,filename,fname or realfname) ) else: - self.__logger.debug("Have no object, return (%s, None)", mime) + _logger.debug("Have no object, return (%s, None).", mime) res = (mime, None ) except Exception: - self.__logger.exception("Could not index file %s (%s)", + _logger.exception("Cannot index file %s (%s).", filename, fname or realfname) res = None @@ -193,8 +193,7 @@ class contentIndex(object): try: os.unlink(fname) except Exception: - self.__logger.exception("Could not unlink %s", fname) - + _logger.exception("Cannot unlink %s.", fname) return res cntIndex = contentIndex() diff --git a/addons/document/custom_report.xml b/addons/document/custom_report.xml deleted file mode 100644 index ebfe70e4c50..00000000000 --- a/addons/document/custom_report.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0"?> -<openerp> - <data> - - </data> -</openerp> diff --git a/addons/document/document.py b/addons/document/document.py index 92ece063a47..3ee52f8e4fb 100644 --- a/addons/document/document.py +++ b/addons/document/document.py @@ -23,19 +23,22 @@ import base64 from osv import osv, fields import os -# from psycopg2 import Binary +#from psycopg2 import Binary #from tools import config import tools from tools.translate import _ import nodes import logging +_logger = logging.getLogger(__name__) + DMS_ROOT_PATH = tools.config.get('document_path', os.path.join(tools.config['root_path'], 'filestore')) class document_file(osv.osv): _inherit = 'ir.attachment' _rec_name = 'datas_fname' + def _attach_parent_id(self, cr, uid, ids=None, context=None): """Migrate ir.attachments to the document module. @@ -54,11 +57,11 @@ class document_file(osv.osv): parent_id = self.pool.get('document.directory')._get_root_directory(cr,uid) if not parent_id: - logging.getLogger('document').warning("at _attach_parent_id(), still not able to set the parent!") + _logger.warning("at _attach_parent_id(), still not able to set the parent!") return False if ids is not None: - raise NotImplementedError("Ids is just there by convention! Don't use it yet, please.") + raise NotImplementedError("Ids are just there by convention, please do not use it.") cr.execute("UPDATE ir_attachment " \ "SET parent_id = %s, db_datas = decode(encode(db_datas,'escape'), 'base64') " \ @@ -140,8 +143,8 @@ class document_file(osv.osv): _defaults = { 'user_id': lambda self, cr, uid, ctx:uid, + 'parent_id': __get_def_directory, 'file_size': lambda self, cr, uid, ctx:0, - 'parent_id': __get_def_directory } _sql_constraints = [ # filename_uniq is not possible in pure SQL @@ -291,7 +294,7 @@ class document_file(osv.osv): ('datas_fname', '=', vals['datas_fname']), ] attach_ids = self.search(cr, uid, domain, context=context) - super(document_file, self).write(cr, uid, attach_ids, + super(document_file, self).write(cr, uid, attach_ids, {'datas' : vals['datas']}, context=context) result = attach_ids[0] @@ -336,7 +339,7 @@ class document_file(osv.osv): if r: unres.append(r) else: - logging.getLogger('document').warning("Unlinking attachment #%s %s that has no storage", + self.loggerdoc.warning("Unlinking attachment #%s %s that has no storage.", f.id, f.name) res = super(document_file, self).unlink(cr, uid, ids, context) stor.do_unlink(cr, uid, unres) diff --git a/addons/document/document_data.xml b/addons/document/document_data.xml index ac7a174b05f..a7bc98de6f3 100644 --- a/addons/document/document_data.xml +++ b/addons/document/document_data.xml @@ -104,6 +104,5 @@ <!-- After we have setup the root directory, migrate the attachments to point to that. --> <function model="ir.attachment" name="_attach_parent_id"/> - </data> </openerp> diff --git a/addons/document/document_directory.py b/addons/document/document_directory.py index d09d2cc86d5..0f18673a007 100644 --- a/addons/document/document_directory.py +++ b/addons/document/document_directory.py @@ -22,10 +22,10 @@ from osv import osv, fields from osv.orm import except_orm - +import logging import nodes from tools.translate import _ - +_logger = logging.getLogger(__name__) class document_directory(osv.osv): _name = 'document.directory' _description = 'Directory' @@ -78,9 +78,8 @@ class document_directory(osv.osv): root_id = objid.read(cr, uid, mid, ['res_id'])['res_id'] return root_id except Exception, e: - import netsvc - logger = netsvc.Logger() - logger.notifyChannel("document", netsvc.LOG_WARNING, 'Cannot set directory root:'+ str(e)) + + _logger.warning('Cannot set directory root:'+ str(e)) return False return objid.browse(cr, uid, mid, context=context).res_id @@ -109,7 +108,7 @@ class document_directory(osv.osv): _sql_constraints = [ ('dirname_uniq', 'unique (name,parent_id,ressource_id,ressource_parent_type_id)', 'The directory name must be unique !'), ('no_selfparent', 'check(parent_id <> id)', 'Directory cannot be parent of itself!'), - ('dir_parented', 'check(parent_id IS NOT NULL OR storage_id IS NOT NULL)', 'Directory must have a parent or a storage') + ('dir_parented', 'check(parent_id IS NOT NULL OR storage_id IS NOT NULL)', 'Directory must have a parent or a storage.') ] def name_get(self, cr, uid, ids, context=None): res = [] @@ -154,7 +153,7 @@ class document_directory(osv.osv): return True _constraints = [ - (_check_recursion, 'Error! You can not create recursive Directories.', ['parent_id']) + (_check_recursion, 'Error! You cannot create recursive directories.', ['parent_id']) ] def __init__(self, *args, **kwargs): @@ -180,7 +179,7 @@ class document_directory(osv.osv): def get_node_class(self, cr, uid, ids, dbro=None, dynamic=False, context=None): """Retrieve the class of nodes for this directory - + This function can be overriden by inherited classes ;) @param dbro The browse object, if caller already has it """ @@ -194,17 +193,17 @@ class document_directory(osv.osv): elif dbro.type == 'ressource': return nodes.node_res_dir else: - raise ValueError("dir node for %s type", dbro.type) + raise ValueError("dir node for %s type.", dbro.type) def _prepare_context(self, cr, uid, nctx, context=None): """ Fill nctx with properties for this database @param nctx instance of nodes.node_context, to be filled @param context ORM context (dict) for us - - Note that this function is called *without* a list of ids, + + Note that this function is called *without* a list of ids, it should behave the same for the whole database (based on the ORM instance of document.directory). - + Some databases may override this and attach properties to the node_context. See WebDAV, CalDAV. """ diff --git a/addons/document/document_storage.py b/addons/document/document_storage.py index fe757e7876d..21cb4f9dcf4 100644 --- a/addons/document/document_storage.py +++ b/addons/document/document_storage.py @@ -29,18 +29,15 @@ import logging import shutil from StringIO import StringIO import psycopg2 - from tools.misc import ustr from tools.translate import _ - from osv.orm import except_orm - import random import string import pooler import nodes from content_index import cntIndex - +_logger = logging.getLogger(__name__) DMS_ROOT_PATH = tools.config.get('document_path', os.path.join(tools.config.get('root_path'), 'filestore')) @@ -55,7 +52,7 @@ For data /storage/ we have the cases: Have (ir.attachment, context), we modify the file (save, update, rename etc). Have (directory, context), we create a file. Have (path, context), we create or modify a file. - + Note that in all above cases, we don't explicitly choose the storage media, but always require a context to be present. @@ -64,7 +61,7 @@ nodes, for once, won't. Their metadata will be computed by the parent storage media + directory. The algorithm says that in any of the above cases, our first goal is to locate -the node for any combination of search criteria. It would be wise NOT to +the node for any combination of search criteria. It would be wise NOT to represent each node in the path (like node[/] + node[/dir1] + node[/dir1/dir2]) but directly jump to the end node (like node[/dir1/dir2]) whenever possible. @@ -102,13 +99,13 @@ class nodefd_file(nodes.node_descriptor): mode = mode[:-1] self.mode = mode self._size = os.stat(path).st_size - + for attr in ('closed', 'read', 'write', 'seek', 'tell', 'next'): setattr(self,attr, getattr(self.__file, attr)) def size(self): return self._size - + def __iter__(self): return self @@ -125,12 +122,12 @@ class nodefd_file(nodes.node_descriptor): filename = par.path if isinstance(filename, (tuple, list)): filename = '/'.join(filename) - + try: mime, icont = cntIndex.doIndex(None, filename=filename, content_type=None, realfname=fname) except Exception: - logging.getLogger('document.storage').debug('Cannot index file:', exc_info=True) + _logger.debug('Cannot index file:', exc_info=True) pass try: @@ -150,7 +147,7 @@ class nodefd_file(nodes.node_descriptor): cr.commit() cr.close() except Exception: - logging.getLogger('document.storage').warning('Cannot save file indexed content:', exc_info=True) + _logger.warning('Cannot save file indexed content:', exc_info=True) elif self.mode in ('a', 'a+' ): try: @@ -164,7 +161,7 @@ class nodefd_file(nodes.node_descriptor): cr.commit() cr.close() except Exception: - logging.getLogger('document.storage').warning('Cannot save file appended content:', exc_info=True) + _logger.warning('Cannot save file appended content:', exc_info=True) @@ -176,7 +173,7 @@ class nodefd_db(StringIO, nodes.node_descriptor): self._size = 0L if mode.endswith('b'): mode = mode[:-1] - + if mode in ('r', 'r+'): cr = ira_browse._cr # reuse the cursor of the browse object, just now cr.execute('SELECT db_datas FROM ir_attachment WHERE id = %s',(ira_browse.id,)) @@ -191,8 +188,8 @@ class nodefd_db(StringIO, nodes.node_descriptor): elif mode == 'a': StringIO.__init__(self, None) else: - logging.getLogger('document.storage').error("Incorrect mode %s specified", mode) - raise IOError(errno.EINVAL, "Invalid file mode") + _logger.error("Incorrect mode %s is specified.", mode) + raise IOError(errno.EINVAL, "Invalid file mode.") self.mode = mode def size(self): @@ -212,12 +209,12 @@ class nodefd_db(StringIO, nodes.node_descriptor): filename = par.path if isinstance(filename, (tuple, list)): filename = '/'.join(filename) - + try: mime, icont = cntIndex.doIndex(data, filename=filename, content_type=None, realfname=None) except Exception: - logging.getLogger('document.storage').debug('Cannot index file:', exc_info=True) + _logger.debug('Cannot index file:', exc_info=True) pass try: @@ -241,7 +238,7 @@ class nodefd_db(StringIO, nodes.node_descriptor): (out, len(data), par.file_id)) cr.commit() except Exception: - logging.getLogger('document.storage').exception('Cannot update db file #%d for close:', par.file_id) + _logger.exception('Cannot update db file #%d for close.', par.file_id) raise finally: cr.close() @@ -249,7 +246,7 @@ class nodefd_db(StringIO, nodes.node_descriptor): class nodefd_db64(StringIO, nodes.node_descriptor): """ A descriptor to db data, base64 (the old way) - + It stores the data in base64 encoding at the db. Not optimal, but the transparent compression of Postgres will save the day. """ @@ -258,7 +255,7 @@ class nodefd_db64(StringIO, nodes.node_descriptor): self._size = 0L if mode.endswith('b'): mode = mode[:-1] - + if mode in ('r', 'r+'): data = base64.decodestring(ira_browse.db_datas) if data: @@ -271,8 +268,8 @@ class nodefd_db64(StringIO, nodes.node_descriptor): elif mode == 'a': StringIO.__init__(self, None) else: - logging.getLogger('document.storage').error("Incorrect mode %s specified", mode) - raise IOError(errno.EINVAL, "Invalid file mode") + _logger.error("Incorrect mode %s is specified.", mode) + raise IOError(errno.EINVAL, "Invalid file mode.") self.mode = mode def size(self): @@ -292,12 +289,12 @@ class nodefd_db64(StringIO, nodes.node_descriptor): filename = par.path if isinstance(filename, (tuple, list)): filename = '/'.join(filename) - + try: mime, icont = cntIndex.doIndex(data, filename=filename, content_type=None, realfname=None) except Exception: - logging.getLogger('document.storage').debug('Cannot index file:', exc_info=True) + self.logger.debug('Cannot index file:', exc_info=True) pass try: @@ -320,7 +317,7 @@ class nodefd_db64(StringIO, nodes.node_descriptor): (base64.encodestring(data), len(data), par.file_id)) cr.commit() except Exception: - logging.getLogger('document.storage').exception('Cannot update db file #%d for close:', par.file_id) + _logger.exception('Cannot update db file #%d for close.', par.file_id) raise finally: cr.close() @@ -333,13 +330,12 @@ class document_storage(osv.osv): media. The referring document.directory-ies will control the placement of data into the storage. - + It is a bad idea to have multiple document.storage objects pointing to the same tree of filesystem storage. """ _name = 'document.storage' _description = 'Storage Media' - _doclog = logging.getLogger('document') _columns = { 'name': fields.char('Name', size=64, required=True, select=1), @@ -388,12 +384,12 @@ class document_storage(osv.osv): def __prepare_realpath(self, cr, file_node, ira, store_path, do_create=True): """ Cleanup path for realstore, create dirs if needed - + @param file_node the node @param ira ir.attachment browse of the file_node @param store_path the path of the parent storage object, list @param do_create create the directories, if needed - + @return tuple(path "/var/filestore/real/dir/", npath ['dir','fname.ext'] ) """ file_node.fix_ppath(cr, ira) @@ -402,18 +398,18 @@ class document_storage(osv.osv): npath = filter(lambda x: x is not None, npath) # if self._debug: - # self._doclog.debug('Npath: %s', npath) + # self._logger.debug('Npath: %s', npath) for n in npath: if n == '..': - raise ValueError("Invalid '..' element in path") + raise ValueError("Invalid '..' element in path.") for ch in ('*', '|', "\\", '/', ':', '"', '<', '>', '?',): if ch in n: - raise ValueError("Invalid char %s in path %s" %(ch, n)) + raise ValueError("Invalid char %s in path %s." %(ch, n)) dpath = [store_path,] dpath += npath[:-1] path = os.path.join(*dpath) if not os.path.isdir(path): - self._doclog.debug("Create dirs: %s", path) + _logger.debug("Create dirs: %s", path) os.makedirs(path) return path, npath @@ -424,8 +420,8 @@ class document_storage(osv.osv): """ boo = self.browse(cr, uid, id, context=context) if not boo.online: - raise IOError(errno.EREMOTE, 'medium offline') - + raise IOError(errno.EREMOTE, 'Medium offline.') + if fil_obj: ira = fil_obj else: @@ -439,11 +435,11 @@ class document_storage(osv.osv): context = {} boo = self.browse(cr, uid, id, context=context) if not boo.online: - raise IOError(errno.EREMOTE, 'medium offline') - + raise IOError(errno.EREMOTE, 'Medium offline.') + if boo.readonly and mode not in ('r', 'rb'): - raise IOError(errno.EPERM, "Readonly medium") - + raise IOError(errno.EPERM, "Readonly medium.") + ira = self.pool.get('ir.attachment').browse(cr, uid, file_node.file_id, context=context) if boo.type == 'filestore': if not ira.store_fname: @@ -451,8 +447,8 @@ class document_storage(osv.osv): # try to fix their directory. if mode in ('r','r+'): if ira.file_size: - self._doclog.warning( "ir.attachment #%d does not have a filename, but is at filestore, fix it!" % ira.id) - raise IOError(errno.ENOENT, 'No file can be located') + _logger.warning( "ir.attachment #%d does not have a filename, but is at filestore. This should get fixed." % ira.id) + raise IOError(errno.ENOENT, 'No file can be located.') else: store_fname = self.__get_random_fname(boo.path) cr.execute('UPDATE ir_attachment SET store_fname = %s WHERE id = %s', @@ -474,7 +470,7 @@ class document_storage(osv.osv): do_create = (mode[0] in ('w','a')) ) fpath = os.path.join(path, npath[-1]) if (not os.path.exists(fpath)) and mode[0] == 'r': - raise IOError("File not found: %s" % fpath) + raise IOError("File not found: %s." % fpath) elif mode[0] in ('w', 'a') and not ira.store_fname: store_fname = os.path.join(*npath) cr.execute('UPDATE ir_attachment SET store_fname = %s WHERE id = %s', @@ -482,10 +478,10 @@ class document_storage(osv.osv): return nodefd_file(file_node, path=fpath, mode=mode) elif boo.type == 'virtual': - raise ValueError('Virtual storage does not support static files') - + raise ValueError('Virtual storage does not support static file(s).') + else: - raise TypeError("No %s storage" % boo.type) + raise TypeError("No %s storage." % boo.type) def __get_data_3(self, cr, uid, boo, ira, context): if boo.type == 'filestore': @@ -493,7 +489,7 @@ class document_storage(osv.osv): # On a migrated db, some files may have the wrong storage type # try to fix their directory. if ira.file_size: - self._doclog.warning( "ir.attachment #%d does not have a filename, but is at filestore, fix it!" % ira.id) + _logger.warning( "ir.attachment #%d does not have a filename, but is at filestore. This should get fixed." % ira.id) return None fpath = os.path.join(boo.path, ira.store_fname) return file(fpath, 'rb').read() @@ -517,7 +513,7 @@ class document_storage(osv.osv): # On a migrated db, some files may have the wrong storage type # try to fix their directory. if ira.file_size: - self._doclog.warning("ir.attachment #%d does not have a filename, trying the name." %ira.id) + _logger.warning("ir.attachment #%d does not have a filename, trying the name." %ira.id) # sfname = ira.name fpath = os.path.join(boo.path,ira.store_fname or ira.name) if os.path.exists(fpath): @@ -525,13 +521,13 @@ class document_storage(osv.osv): elif not ira.store_fname: return None else: - raise IOError(errno.ENOENT, "File not found: %s" % fpath) + raise IOError(errno.ENOENT, "File not found: %s." % fpath) elif boo.type == 'virtual': - raise ValueError('Virtual storage does not support static files') + raise ValueError('Virtual storage does not support static file(s).') else: - raise TypeError("No %s storage" % boo.type) + raise TypeError("No %s storage!" % boo.type) def set_data(self, cr, uid, id, file_node, data, context=None, fil_obj=None): """ store the data. @@ -545,12 +541,12 @@ class document_storage(osv.osv): ira = self.pool.get('ir.attachment').browse(cr, uid, file_node.file_id, context=context) if not boo.online: - raise IOError(errno.EREMOTE, 'medium offline') - + raise IOError(errno.EREMOTE, 'Medium offline.') + if boo.readonly: - raise IOError(errno.EPERM, "Readonly medium") + raise IOError(errno.EPERM, "Readonly medium.") - self._doclog.debug( "Store data for ir.attachment #%d" % ira.id) + _logger.debug( "Store data for ir.attachment #%d." % ira.id) store_fname = None fname = None if boo.type == 'filestore': @@ -561,15 +557,15 @@ class document_storage(osv.osv): fp = open(fname, 'wb') try: fp.write(data) - finally: + finally: fp.close() - self._doclog.debug( "Saved data to %s" % fname) + _logger.debug( "Saved data to %s." % fname) filesize = len(data) # os.stat(fname).st_size - + # TODO Here, an old file would be left hanging. except Exception, e: - self._doclog.warning( "Couldn't save data to %s", path, exc_info=True) + _logger.warning( "Cannot save data to %s.", path, exc_info=True) raise except_orm(_('Error!'), str(e)) elif boo.type == 'db': filesize = len(data) @@ -590,21 +586,21 @@ class document_storage(osv.osv): fp = open(fname,'wb') try: fp.write(data) - finally: + finally: fp.close() - self._doclog.debug("Saved data to %s", fname) + _logger.debug("Saved data to %s.", fname) filesize = len(data) # os.stat(fname).st_size store_fname = os.path.join(*npath) # TODO Here, an old file would be left hanging. except Exception,e : - self._doclog.warning("Couldn't save data:", exc_info=True) + _logger.warning("Cannot save data.", exc_info=True) raise except_orm(_('Error!'), str(e)) elif boo.type == 'virtual': - raise ValueError('Virtual storage does not support static files') + raise ValueError('Virtual storage does not support static file(s).') else: - raise TypeError("No %s storage" % boo.type) + raise TypeError("No %s storage!" % boo.type) # 2nd phase: store the metadata try: @@ -616,7 +612,7 @@ class document_storage(osv.osv): mime, icont = cntIndex.doIndex(data, ira.datas_fname, ira.file_type or None, fname) except Exception: - self._doclog.debug('Cannot index file:', exc_info=True) + _logger.debug('Cannot index file.', exc_info=True) pass try: @@ -633,7 +629,7 @@ class document_storage(osv.osv): file_node.content_type = mime return True except Exception, e : - self._doclog.warning("Couldn't save data:", exc_info=True) + self._logger.warning("Cannot save data.", exc_info=True) # should we really rollback once we have written the actual data? # at the db case (only), that rollback would be safe raise except_orm(_('Error at doc write!'), str(e)) @@ -643,10 +639,10 @@ class document_storage(osv.osv): files that have to be removed, too. """ if not storage_bo.online: - raise IOError(errno.EREMOTE, 'medium offline') - + raise IOError(errno.EREMOTE, 'Medium offline.') + if storage_bo.readonly: - raise IOError(errno.EPERM, "Readonly medium") + raise IOError(errno.EPERM, "Readonly medium.") if storage_bo.type == 'filestore': fname = fil_bo.store_fname @@ -663,7 +659,7 @@ class document_storage(osv.osv): path = storage_bo.path return ( storage_bo.id, 'file', os.path.join(path, fname)) else: - raise TypeError("No %s storage" % storage_bo.type) + raise TypeError("No %s storage!" % storage_bo.type) def do_unlink(self, cr, uid, unres): for id, ktype, fname in unres: @@ -671,9 +667,9 @@ class document_storage(osv.osv): try: os.unlink(fname) except Exception: - self._doclog.warning("Could not remove file %s, please remove manually.", fname, exc_info=True) + _logger.warning("Cannot remove file %s, please remove it manually.", fname, exc_info=True) else: - self._doclog.warning("Unknown unlink key %s" % ktype) + _logger.warning("Unlink unknown key %s." % ktype) return True @@ -681,17 +677,17 @@ class document_storage(osv.osv): """ A preparation for a file rename. It will not affect the database, but merely check and perhaps rename the realstore file. - + @return the dict of values that can safely be be stored in the db. """ sbro = self.browse(cr, uid, file_node.storage_id, context=context) assert sbro, "The file #%d didn't provide storage" % file_node.file_id if not sbro.online: - raise IOError(errno.EREMOTE, 'medium offline') - + raise IOError(errno.EREMOTE, 'Medium offline.') + if sbro.readonly: - raise IOError(errno.EPERM, "Readonly medium") + raise IOError(errno.EPERM, "Readonly medium.") if sbro.type in ('filestore', 'db', 'db64'): # nothing to do for a rename, allow to change the db field @@ -703,9 +699,9 @@ class document_storage(osv.osv): fname = ira.store_fname if not fname: - self._doclog.warning("Trying to rename a non-stored file") + _logger.warning("Trying to rename a non-stored file.") if fname != os.path.join(*npath): - self._doclog.warning("inconsistency in realstore: %s != %s" , fname, repr(npath)) + _logger.warning("Inconsistency to realstore: %s != %s." , fname, repr(npath)) oldpath = os.path.join(path, npath[-1]) newpath = os.path.join(path, new_name) @@ -715,13 +711,13 @@ class document_storage(osv.osv): store_fname = os.path.join(*store_path) return { 'name': new_name, 'datas_fname': new_name, 'store_fname': store_fname } else: - raise TypeError("No %s storage" % sbro.type) + raise TypeError("No %s storage!" % sbro.type) def simple_move(self, cr, uid, file_node, ndir_bro, context=None): """ A preparation for a file move. It will not affect the database, but merely check and perhaps move the realstore file. - + @param ndir_bro a browse object of document.directory, where this file should move to. @return the dict of values that can safely be be stored in the db. @@ -730,10 +726,10 @@ class document_storage(osv.osv): assert sbro, "The file #%d didn't provide storage" % file_node.file_id if not sbro.online: - raise IOError(errno.EREMOTE, 'medium offline') - + raise IOError(errno.EREMOTE, 'Medium offline.') + if sbro.readonly: - raise IOError(errno.EPERM, "Readonly medium") + raise IOError(errno.EPERM, "Readonly medium.") par = ndir_bro psto = None @@ -743,8 +739,8 @@ class document_storage(osv.osv): break par = par.parent_id if file_node.storage_id != psto: - self._doclog.debug('Cannot move file %r from %r to %r', file_node, file_node.parent, ndir_bro.name) - raise NotImplementedError('Cannot move files between storage media') + _logger.debug('Cannot move file %r from %r to %r.', file_node, file_node.parent, ndir_bro.name) + raise NotImplementedError('Cannot move file(s) between storage media.') if sbro.type in ('filestore', 'db', 'db64'): # nothing to do for a rename, allow to change the db field @@ -756,30 +752,30 @@ class document_storage(osv.osv): fname = ira.store_fname if not fname: - self._doclog.warning("Trying to rename a non-stored file") + _logger.warning("Trying to rename a non-stored file.") if fname != os.path.join(*opath): - self._doclog.warning("inconsistency in realstore: %s != %s" , fname, repr(opath)) + _logger.warning("Inconsistency to realstore: %s != %s." , fname, repr(opath)) oldpath = os.path.join(path, opath[-1]) - + npath = [sbro.path,] + (ndir_bro.get_full_path() or []) npath = filter(lambda x: x is not None, npath) newdir = os.path.join(*npath) if not os.path.isdir(newdir): - self._doclog.debug("Must create dir %s", newdir) + _logger.debug("Must create dir %s.", newdir) os.makedirs(newdir) npath.append(opath[-1]) newpath = os.path.join(*npath) - - self._doclog.debug("Going to move %s from %s to %s", opath[-1], oldpath, newpath) + + _logger.debug("Going to move %s from %s to %s.", opath[-1], oldpath, newpath) shutil.move(oldpath, newpath) - + store_path = npath[1:] + [opath[-1],] store_fname = os.path.join(*store_path) - + return { 'store_fname': store_fname } else: - raise TypeError("No %s storage" % sbro.type) + raise TypeError("No %s storage." % sbro.type) document_storage() diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml index 82919ab02cb..b631583fb27 100644 --- a/addons/document/document_view.xml +++ b/addons/document/document_view.xml @@ -1,3 +1,4 @@ +<?xml version="1.0"?> <openerp> <data> <menuitem name="Document Management" id="menu_document_management_configuration" parent="knowledge.menu_document_configuration" sequence="1"/> @@ -5,7 +6,6 @@ <record model="ir.ui.view" id="view_document_storage_form"> <field name="name">document.storage</field> <field name="model">document.storage</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Storage Media"> <group col="4"> @@ -25,7 +25,6 @@ <record model="ir.ui.view" id="view_document_storage_tree"> <field name="name">document.storage</field> <field name="model">document.storage</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Storage Media" toolbar="1"> <field name="name"/> @@ -37,11 +36,9 @@ <record id="view_document_storage_filter" model="ir.ui.view"> <field name="name">Search View: Document Storage</field> <field name="model">document.storage</field> - <field name="type">search</field> <field name="arch" type="xml"> - <search string="Search Document storage"> - <field name="name" /> - <newline/> + <search string="Search Document Storage"> + <field name="name" string="Document Storage"/> <group expand="0" string="Group By..."> <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/> </group> @@ -67,7 +64,6 @@ <record model="ir.ui.view" id="view_document_directory_form"> <field name="name">document.directory</field> <field name="model">document.directory</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Directories" col="4" version="7.0"> <group col="4"> @@ -93,7 +89,7 @@ </group> <group col="4"> <field name="ressource_parent_type_id"/> - <field name="ressource_id" select="2" readonly="1"/> + <field name="ressource_id" readonly="1"/> </group> <group col="2" attrs="{'invisible': [('type','!=','ressource'),('ressource_parent_type_id','=',False)]}"> <field name="resource_find_all"/> @@ -150,7 +146,6 @@ <record model="ir.ui.view" id="view_document_directory_tree"> <field name="name">document.directory</field> <field name="model">document.directory</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Directories" toolbar="1"> @@ -168,23 +163,18 @@ <record id="view_document_directory_filter" model="ir.ui.view"> <field name="name">Search View: Document Directory</field> <field name="model">document.directory</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Document Directory"> + <field name="name" string="Document Directory"/> <filter string="Static" domain="[('type','=','directory')]"/> <filter string="Resources" icon="terp-personal" domain="[('type','=','ressource')]"/> - <separator orientation="vertical"/> - <field name="name" /> - <field name="user_id" /> <field name="company_id" groups="base.group_multi_company"/> <field name="storage_id" /> - <newline/> + <field name="user_id" /> <group expand="0" string="Group By..."> <filter string="Owner" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> - <separator orientation="vertical"/> <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/> <filter string="Storage" domain="[]" icon="terp-accessories-archiver" context="{'group_by':'storage_id'}"/> - <separator orientation="vertical" groups="base.group_multi_company"/> <filter string="Company" domain="[]" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> </group> </search> @@ -236,70 +226,43 @@ <field name="name">ir.attachment</field> <field name="model">ir.attachment</field> <field name="priority" eval="1"/> - <field name="type">form</field> + <field name="inherit_id" ref="base.view_attachment_form"/> <field name="arch" type="xml"> - <form string="Documents" version="7.0"> - <sheet> - <group col="4"> - <field name="name"/> - <field name="parent_id"/> - <field name="user_id"/> - <field name="company_id" groups="base.group_multi_company" widget="selection"/> - </group> - <notebook colspan="4"> - <page string="Attachment"> - <group> - <group string="Data"> - <field name="type"/> - <newline /> - <field name="datas" filename="datas_fname" attrs="{'invisible':[('type','=','url')]}"/> - <field name="datas_fname" attrs="{'invisible':[('type','=','url')]}"/> - <field name="url" widget="url" attrs="{'invisible':[('type','=','binary')]}"/> - </group> - <group> - <field name="res_id" invisible="True"/> - <field name="res_model" readonly="True" invisible="True" attrs="{'invisible': [('res_id','=',0)]}"/> - <field name="res_name" readonly="1" attrs="{'invisible': [('res_id','=',0)]}"/> - <separator string="Related to" colspan="2"/> - <field name="partner_id"/> - </group> - <group groups="base.group_no_one" string="Created"> - <field name="create_uid" readonly="1"/> - <field name="create_date" readonly="1"/> - </group> - <group groups="base.group_no_one" string="Modified"> - <field name="write_uid" readonly="1"/> - <field name="write_date" readonly="1"/> - </group> - </group> - </page> - <page string="Indexed Content - experimental" groups="base.group_no_one"> - <field name="index_content"/> - </page> - <page string="Notes"> - <field name="description"/> - </page> - </notebook> - </sheet> - </form> + <field name="url" position="after"> + <field name="user_id"/> + </field> + <field name="company_id" position="before"> + <field name="parent_id"/> + <field name="partner_id"/> + </field> + <xpath expr="//div[@name='creation_div']" position='after'> + <label for="write_uid" string="Modification"/> + <div> + <field name="write_uid" readonly="1" class="oe_inline"/> on + <field name="write_date" readonly="1" class="oe_inline"/> + </div> + </xpath> + <xpath expr="//group[@name='description_group']" position='after'> + <group string="Indexed Content" colspan="4"> + <field name="index_content" nolabel="1"/> + </group> + </xpath> </field> </record> <record id="view_attach_filter_inherit0" model="ir.ui.view"> <field name="name">IR Attachment0</field> <field name="model">ir.attachment</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_attachment_search"/> <field name="arch" type="xml"> - <field name="create_uid" position="replace"> - <field name="user_id"> - <filter icon="terp-personal" - domain="[('user_id','=',uid)]" - help="Filter on my documents" /> - </field> + <xpath expr="//filter[@name='my_documents_filter']" position="replace"> + <filter name="my_documents_filter" string="My Document(s)" icon="terp-personal" domain="[('user_id','=',uid)]" help="Filter on my documents"/> + </xpath> + <xpath expr="//field[@name='create_uid']" position="replace"> + <field name="user_id"/> <field name="parent_id" /> <field name="index_content"/> - </field> + </xpath> </field> </record> @@ -308,7 +271,6 @@ <field name="name">IR Attachment2</field> <field name="model">ir.attachment</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_attachment_search"/> <field name="arch" type="xml"> <filter string="Owner" position="replace"> @@ -323,10 +285,9 @@ <record model="ir.ui.view" id="view_document_file_tree"> <field name="name">ir.attachment</field> <field name="model">ir.attachment</field> - <field name="type">tree</field> <field name="priority" eval="1"/> <field name="arch" type="xml"> - <tree colors="blue:type in ('url',)"> + <tree colors="blue:type in ('url',)" string="Attachments"> <field name="name"/> <field name="parent_id" /> <field name="user_id"/> @@ -345,7 +306,14 @@ <field name="type">ir.actions.act_window</field> <field name="res_model">ir.attachment</field> <field name="view_type">form</field> - <field name="help">The Documents repository gives you access to all attachments, such as mails, project documents, invoices etc.</field> + <field name="help" type="html"> + <p class="oe_view_nocontent_create"> + Click to create a new document. + </p><p> + The Documents repository gives you access to all attachments, such + as mails, project documents, invoices etc. + </p> + </field> </record> <menuitem name="Documents" id="menu_document_doc" parent="knowledge.menu_document" sequence="0"/> <menuitem @@ -383,12 +351,11 @@ <record model="ir.ui.view" id="view_process_node_form_inherit1"> <field name="name">process.node.form</field> <field name="model">process.node</field> - <field name="type">form</field> - <field name="inherit_id" ref="process.view_process_node_form"/> + <field name="inherit_id" ref="process.view_process_node_form"/> <field name="priority" eval="1"/> <field name="arch" type="xml"> <field name="subflow_id" position="after"> - <field name="directory_id" domain="[('ressource_type_id','=',model_id),('ressource_parent_type_id','=',False)]"/> + <field name="directory_id" string="Document Directory" domain="[('ressource_type_id','=',model_id),('ressource_parent_type_id','=',False)]"/> <newline/> </field> </field> @@ -397,8 +364,7 @@ <record model="ir.ui.view" id="view_process_form_inherit1"> <field name="name">process.process.form</field> <field name="model">process.process</field> - <field name="type">form</field> - <field name="inherit_id" ref="process.view_process_form"/> + <field name="inherit_id" ref="process.view_process_form"/> <field name="priority" eval="1"/> <field name="arch" type="xml"> <field name="subflow_id" position="after"> @@ -417,7 +383,7 @@ <act_window domain="[('parent_id', '=', active_id)]" context="{'default_parent_id': active_id}" - id="zoom_directory" name="Related Documents" + id="zoom_directory" name="Related Documents" res_model="ir.attachment" src_model="document.directory"/> </data> diff --git a/addons/document/i18n/ar.po b/addons/document/i18n/ar.po index 576cbfb70fd..49a0c9ad646 100644 --- a/addons/document/i18n/ar.po +++ b/addons/document/i18n/ar.po @@ -13,13 +13,13 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 msgid "Parent Directory" -msgstr "الوثائق" +msgstr "الدليل الأب" #. module: document #: code:addons/document/document_directory.py:276 @@ -30,22 +30,22 @@ msgstr "الدليل يحتوي علي رموز خاصة" #. module: document #: field:document.directory,resource_field:0 msgid "Name field" -msgstr "اسم الحقل" +msgstr "إسم حقل" #. module: document #: view:board.board:0 msgid "Document board" -msgstr "لوحة الوثائق" +msgstr "لوحة المستندات" #. module: document #: model:ir.model,name:document.model_process_node msgid "Process Node" -msgstr "سلسة الإجراءات" +msgstr "طرف المعالجات" #. module: document #: view:document.directory:0 msgid "Search Document Directory" -msgstr "البحث عن دليل الوثيقة" +msgstr "البحث عن دليل المستند" #. module: document #: help:document.directory,resource_field:0 @@ -59,7 +59,7 @@ msgstr "" #: view:document.directory:0 #: view:document.storage:0 msgid "Group By..." -msgstr "تجميع حسب..." +msgstr "تجميع حسب ..." #. module: document #: model:ir.model,name:document.model_document_directory_content_type @@ -150,7 +150,7 @@ msgstr "اسم الدليل يجب أن يكون فريدا" #. module: document #: view:ir.attachment:0 msgid "Filter on my documents" -msgstr "" +msgstr "ترشيح حسب الوثائق" #. module: document #: field:ir.attachment,index_content:0 @@ -381,6 +381,8 @@ msgid "" "When executing this wizard, it will configure your directories automatically " "according to modules installed." msgstr "" +"عند تنفيذ هذا الإجراء التلقائي ، سوف يتم تهيئة الأدلة الخاصة بك تلقائياً " +"بناءاً على البرامج التي تم تثبيتها." #. module: document #: field:document.directory.content,directory_id:0 @@ -666,7 +668,7 @@ msgstr "للقراءة فقط" #. module: document #: model:ir.actions.act_window,name:document.action_document_directory_form msgid "Document Directory" -msgstr "" +msgstr "مسار الوثائق" #. module: document #: sql_constraint:document.directory:0 @@ -692,6 +694,8 @@ msgid "" "attached to the document, or to print and download any report. This tool " "will create directories automatically according to modules installed." msgstr "" +"نظام إدارة الوثائق في أوبن إي أر بي دعم الربط بين الدلائل التخيلية و " +"المستندات." #. module: document #: view:board.board:0 @@ -785,7 +789,7 @@ msgstr "الشهر" #. module: document #: view:report.document.user:0 msgid "This Months Files" -msgstr "" +msgstr "ملفات الشهر" #. module: document #: model:ir.ui.menu,name:document.menu_reporting @@ -848,7 +852,7 @@ msgstr "ملفات الشريك" #. module: document #: view:ir.attachment:0 msgid "Indexed Content - experimental" -msgstr "" +msgstr "المحتويات المفهرسة - تجريبية" #. module: document #: view:report.document.user:0 @@ -863,7 +867,7 @@ msgstr "ملاحظات" #. module: document #: model:ir.model,name:document.model_document_configuration msgid "Directory Configuration" -msgstr "" +msgstr "إعدادات المسارات" #. module: document #: help:document.directory,type:0 @@ -961,7 +965,7 @@ msgstr "نوع التنسيق الملف" #. module: document #: view:report.document.user:0 msgid "All Months Files" -msgstr "" +msgstr "ملفات كل الشهور" #. module: document #: field:document.directory.content,name:0 diff --git a/addons/document/i18n/bg.po b/addons/document/i18n/bg.po index 1ec1568efdf..98952bd2806 100644 --- a/addons/document/i18n/bg.po +++ b/addons/document/i18n/bg.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/bs.po b/addons/document/i18n/bs.po index de1a6f0e572..8e9cf19c19f 100644 --- a/addons/document/i18n/bs.po +++ b/addons/document/i18n/bs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/ca.po b/addons/document/i18n/ca.po index 0e772ccc20b..075eee4906a 100644 --- a/addons/document/i18n/ca.po +++ b/addons/document/i18n/ca.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/cs.po b/addons/document/i18n/cs.po index 4239da89f64..b64f9d34d34 100644 --- a/addons/document/i18n/cs.po +++ b/addons/document/i18n/cs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" "X-Poedit-Language: Czech\n" #. module: document diff --git a/addons/document/i18n/da.po b/addons/document/i18n/da.po index ba7b38b4fd7..0478e923135 100644 --- a/addons/document/i18n/da.po +++ b/addons/document/i18n/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/de.po b/addons/document/i18n/de.po index a6b01dfdf5b..6a22cbc0e83 100644 --- a/addons/document/i18n/de.po +++ b/addons/document/i18n/de.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/el.po b/addons/document/i18n/el.po index c5161f2ad80..ff70f1473ca 100644 --- a/addons/document/i18n/el.po +++ b/addons/document/i18n/el.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/es.po b/addons/document/i18n/es.po index 5a404b40a68..7fac82bee79 100644 --- a/addons/document/i18n/es.po +++ b/addons/document/i18n/es.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/es_AR.po b/addons/document/i18n/es_AR.po index b01671a7296..4b270f1a20e 100644 --- a/addons/document/i18n/es_AR.po +++ b/addons/document/i18n/es_AR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/es_CR.po b/addons/document/i18n/es_CR.po index 9d23e6932f0..acc6bad0d78 100644 --- a/addons/document/i18n/es_CR.po +++ b/addons/document/i18n/es_CR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" "Language: \n" #. module: document diff --git a/addons/document/i18n/es_EC.po b/addons/document/i18n/es_EC.po index 079f854810d..69ed68fec0b 100644 --- a/addons/document/i18n/es_EC.po +++ b/addons/document/i18n/es_EC.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/es_PY.po b/addons/document/i18n/es_PY.po index 34ab951c369..af09dc6bc79 100644 --- a/addons/document/i18n/es_PY.po +++ b/addons/document/i18n/es_PY.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/et.po b/addons/document/i18n/et.po index a54e2043db1..60af115355c 100644 --- a/addons/document/i18n/et.po +++ b/addons/document/i18n/et.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/fi.po b/addons/document/i18n/fi.po index 1504fd1a47d..432079e9431 100644 --- a/addons/document/i18n/fi.po +++ b/addons/document/i18n/fi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/fr.po b/addons/document/i18n/fr.po index 2d8945f1f2c..11ba811195a 100644 --- a/addons/document/i18n/fr.po +++ b/addons/document/i18n/fr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/gl.po b/addons/document/i18n/gl.po index accf0c842d9..4bdcdcf1364 100644 --- a/addons/document/i18n/gl.po +++ b/addons/document/i18n/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/gu.po b/addons/document/i18n/gu.po index e69a340fbf0..81114cbb22c 100644 --- a/addons/document/i18n/gu.po +++ b/addons/document/i18n/gu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/hi.po b/addons/document/i18n/hi.po index d0547776f0a..5d8362dd745 100644 --- a/addons/document/i18n/hi.po +++ b/addons/document/i18n/hi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/hr.po b/addons/document/i18n/hr.po index c61c4fe532a..9d0fc7f18f4 100644 --- a/addons/document/i18n/hr.po +++ b/addons/document/i18n/hr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" "Language: hr\n" #. module: document diff --git a/addons/document/i18n/hu.po b/addons/document/i18n/hu.po index 2ecb04a21ca..49ac94305d0 100644 --- a/addons/document/i18n/hu.po +++ b/addons/document/i18n/hu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/id.po b/addons/document/i18n/id.po index eec61fa5c16..a12b7e28ab2 100644 --- a/addons/document/i18n/id.po +++ b/addons/document/i18n/id.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/it.po b/addons/document/i18n/it.po index 0e445a5615a..05b30fd5259 100644 --- a/addons/document/i18n/it.po +++ b/addons/document/i18n/it.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/ja.po b/addons/document/i18n/ja.po index 329dbf8aa59..e89800eccf1 100644 --- a/addons/document/i18n/ja.po +++ b/addons/document/i18n/ja.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/ko.po b/addons/document/i18n/ko.po index 3558ae497c2..3cc699fa6d1 100644 --- a/addons/document/i18n/ko.po +++ b/addons/document/i18n/ko.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/lt.po b/addons/document/i18n/lt.po index 3591df6630a..7a24ef1b7ed 100644 --- a/addons/document/i18n/lt.po +++ b/addons/document/i18n/lt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/lv.po b/addons/document/i18n/lv.po index dca89a3fb92..9c45abbf1d1 100644 --- a/addons/document/i18n/lv.po +++ b/addons/document/i18n/lv.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/mn.po b/addons/document/i18n/mn.po index e62f0b4e8e6..9696dc1f54a 100644 --- a/addons/document/i18n/mn.po +++ b/addons/document/i18n/mn.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 @@ -151,7 +151,7 @@ msgstr "Хавтасны нэр давхцахгүй!" #. module: document #: view:ir.attachment:0 msgid "Filter on my documents" -msgstr "" +msgstr "Миний баримтуудыг шүүх" #. module: document #: field:ir.attachment,index_content:0 @@ -170,7 +170,7 @@ msgstr "" #. module: document #: model:ir.actions.todo.category,name:document.category_knowledge_mgmt_config msgid "Knowledge Management" -msgstr "" +msgstr "Мэдлэгийн менежмент" #. module: document #: view:document.directory:0 @@ -214,7 +214,7 @@ msgstr "Зассан огноо" #. module: document #: view:document.configuration:0 msgid "Knowledge Application Configuration" -msgstr "" +msgstr "Мэдлэгийн Програмын Тохиргоо" #. module: document #: view:ir.attachment:0 @@ -384,6 +384,8 @@ msgid "" "When executing this wizard, it will configure your directories automatically " "according to modules installed." msgstr "" +"Энэ харилцах цонхыг ажиллуулахад таны суулгасан модулиудын дагуу " +"директоруудыг автоматаар үүсгэнэ." #. module: document #: field:document.directory.content,directory_id:0 @@ -519,7 +521,7 @@ msgstr "" #: view:document.configuration:0 #: model:ir.actions.act_window,name:document.action_config_auto_directory msgid "Configure Directories" -msgstr "" +msgstr "Директоруудыг Тохируулах" #. module: document #: field:document.directory.content,include_name:0 @@ -556,6 +558,8 @@ msgid "" "Along with Parent Model, this ID attaches this folder to a specific record " "of Parent Model." msgstr "" +"Эцэг моделийн дагуу энэ ID нь энэ фолдерийг эцэг моделийн тодорхой бичлэгт " +"хавсаргана." #. module: document #: selection:report.document.user,month:0 @@ -611,6 +615,10 @@ msgid "" "record, just like attachments. Don't put a parent directory if you select a " "parent model." msgstr "" +"Хэрэв энд обьект тавибал энэ директорын үлгэр нь энэ обьектын доод талд " +"байнга харагдана. Ийм директорууд нь тодорхой модель эсвэл бичлэгт хавсралт " +"шиг хавсрагдаж болдог. Хэрэв эцэг моделийг сонгосон бол эцэг директорыг " +"тавиад хэрэггүй." #. module: document #: view:document.directory:0 @@ -667,7 +675,7 @@ msgstr "Зөвхөн уншина" #. module: document #: model:ir.actions.act_window,name:document.action_document_directory_form msgid "Document Directory" -msgstr "" +msgstr "Баримтын Директор" #. module: document #: sql_constraint:document.directory:0 @@ -693,6 +701,10 @@ msgid "" "attached to the document, or to print and download any report. This tool " "will create directories automatically according to modules installed." msgstr "" +"OpenERP-н баримтын менежментийн систем нь баримтууд бүхий хийсвэр " +"фолдеруудын харгалзааг дэмждэг. Хийсвэр фолдерууд нь баримтанд хавсрагдсан " +"файлуудыг менеж хийх, хэвлэх, татаж авах зэрэгт хэрэглэгдэнэ. Энэ багаж нь " +"суулгасан модулиудын дагууд директоруудыг үүсгэнэ." #. module: document #: view:board.board:0 @@ -786,7 +798,7 @@ msgstr "Сар" #. module: document #: view:report.document.user:0 msgid "This Months Files" -msgstr "" +msgstr "Энэ Сарын Файлууд" #. module: document #: model:ir.ui.menu,name:document.menu_reporting @@ -851,7 +863,7 @@ msgstr "Файлууд, харилцагчаар" #. module: document #: view:ir.attachment:0 msgid "Indexed Content - experimental" -msgstr "" +msgstr "Индекслэгдсэн Агуулга - Туршилтын" #. module: document #: view:report.document.user:0 @@ -866,7 +878,7 @@ msgstr "Тэмдэглэл" #. module: document #: model:ir.model,name:document.model_document_configuration msgid "Directory Configuration" -msgstr "" +msgstr "Директорын Тохируулга" #. module: document #: help:document.directory,type:0 @@ -942,7 +954,7 @@ msgstr "Файлын тоо" #: code:addons/document/document.py:209 #, python-format msgid "(copy)" -msgstr "" +msgstr "(хуулах)" #. module: document #: view:document.directory:0 @@ -970,7 +982,7 @@ msgstr "Дүрслэх төрөл" #. module: document #: view:report.document.user:0 msgid "All Months Files" -msgstr "" +msgstr "Бүх Сарын Файлууд" #. module: document #: field:document.directory.content,name:0 diff --git a/addons/document/i18n/nl.po b/addons/document/i18n/nl.po index e91eb21080d..afdb957d360 100644 --- a/addons/document/i18n/nl.po +++ b/addons/document/i18n/nl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 @@ -750,7 +750,7 @@ msgstr "Resource ID" #. module: document #: selection:document.storage,type:0 msgid "External file storage" -msgstr "Externe opslag" +msgstr "Externe opslag (herkenbare bestandsnamen)" #. module: document #: view:board.board:0 @@ -1002,7 +1002,7 @@ msgstr "Bestandsnaam moet uniek zijn!" #. module: document #: selection:document.storage,type:0 msgid "Internal File storage" -msgstr "Interne opslag" +msgstr "Interne opslag (willekeurige bestandsnamen)" #. module: document #: sql_constraint:document.directory:0 diff --git a/addons/document/i18n/nl_BE.po b/addons/document/i18n/nl_BE.po index 142a6f820db..cc83748032f 100644 --- a/addons/document/i18n/nl_BE.po +++ b/addons/document/i18n/nl_BE.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/pl.po b/addons/document/i18n/pl.po index 8103d9a3e76..0ba8695d695 100644 --- a/addons/document/i18n/pl.po +++ b/addons/document/i18n/pl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/pt.po b/addons/document/i18n/pt.po index 64715058cfe..ce51edffd3f 100644 --- a/addons/document/i18n/pt.po +++ b/addons/document/i18n/pt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/pt_BR.po b/addons/document/i18n/pt_BR.po index 5204a1126a7..d846deb6f9c 100644 --- a/addons/document/i18n/pt_BR.po +++ b/addons/document/i18n/pt_BR.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-10 17:58+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-07-28 18:51+0000\n" +"Last-Translator: Fábio Martinelli <webmaster@guaru.net>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 @@ -385,6 +385,8 @@ msgid "" "When executing this wizard, it will configure your directories automatically " "according to modules installed." msgstr "" +"Quando executar este assistente, ele irá configurar seus diretórios " +"automaticamente de acordo com os módulos instalados." #. module: document #: field:document.directory.content,directory_id:0 @@ -558,6 +560,8 @@ msgid "" "Along with Parent Model, this ID attaches this folder to a specific record " "of Parent Model." msgstr "" +"Junto com o Modelo Parente, este ID anexa esta pasta para um registro " +"específico ou um Modelo Parente" #. module: document #: selection:report.document.user,month:0 @@ -613,6 +617,10 @@ msgid "" "record, just like attachments. Don't put a parent directory if you select a " "parent model." msgstr "" +"Se você colocar um objeto aqui, este modelo de diretório aparecerá abaixo " +"desses objetos. Alguns diretórios são \"Anexados\" a um modelo ou registro " +"específico, como anexos. Não coloque um diretório parente se você " +"selecionar um modelo parente." #. module: document #: view:document.directory:0 @@ -695,6 +703,11 @@ msgid "" "attached to the document, or to print and download any report. This tool " "will create directories automatically according to modules installed." msgstr "" +"O sistema de controle de documentos do OpenErp suporta mapear pastas " +"virtuais com documentos. A pasta virtual de um documento pode ser usada para " +"gerenciar os arquivos anexados ao documento, os para exibir ou fazer " +"download de qualquer relatório. Esta ferramenta irá criar diretórios " +"automaticamente de acordo com os módulos instalados." #. module: document #: view:board.board:0 @@ -744,12 +757,12 @@ msgstr "Armazenamento externo de arquivo" #: model:ir.actions.act_window,name:document.action_view_wall #: view:report.document.wall:0 msgid "Wall of Shame" -msgstr "" +msgstr "Mural da Vergonha" #. module: document #: help:document.storage,path:0 msgid "For file storage, the root path of the storage" -msgstr "" +msgstr "Para armazenamento de arquivos, o caminho raiz do armazenamento" #. module: document #: model:ir.model,name:document.model_report_files_partner @@ -764,7 +777,7 @@ msgstr "Campo" #. module: document #: model:ir.model,name:document.model_document_directory_dctx msgid "Directory Dynamic Context" -msgstr "" +msgstr "Diretório Dinâmico" #. module: document #: field:document.directory,ressource_parent_type_id:0 @@ -814,7 +827,7 @@ msgstr "Todos Arquivos do Usuário" #. module: document #: model:ir.model,name:document.model_report_document_wall msgid "Users that did not inserted documents since one month" -msgstr "" +msgstr "Usuários não inseriram documentos a mais de um mês" #. module: document #: model:ir.actions.act_window,help:document.action_document_file_form @@ -822,11 +835,13 @@ msgid "" "The Documents repository gives you access to all attachments, such as mails, " "project documents, invoices etc." msgstr "" +"O repositório de documentos lhe dá acesso a todos os anexos, como emails, " +"documentos de projetos, faturas, etc" #. module: document #: view:document.directory:0 msgid "For each entry here, virtual files will appear in this folder." -msgstr "" +msgstr "Para cada entrada aqui, arquivos virtuais irão aparecer nesta pasta" #. module: document #: model:ir.model,name:document.model_ir_attachment @@ -851,7 +866,7 @@ msgstr "Arquivos Por Parceiro" #. module: document #: view:ir.attachment:0 msgid "Indexed Content - experimental" -msgstr "" +msgstr "Conteúdo Indexado - experimental" #. module: document #: view:report.document.user:0 @@ -877,6 +892,11 @@ msgid "" "resources automatically possess sub-directories for each of resource types " "defined in the parent directory." msgstr "" +"Cada diretório pode ter o tipo Estático ou ser anexado a um outro recurso. " +"Um diretório estático, como em sistemas operacionais, é o formato clássico " +"que contém um conjunto de arquivos. Os diretórios anexados em recursos de " +"sistema automaticamente possuem sub-diretórios para cada tipo de recurso " +"definido no diretório pai" #. module: document #: selection:report.document.user,month:0 @@ -896,6 +916,8 @@ msgid "" "The name of the field. Note that the prefix \"dctx_\" will be prepended to " "what is typed here." msgstr "" +"Nome do campo. Note que o prefixo \"dctx_\" será preposto ao que for " +"digitado aqui." #. module: document #: field:document.directory,name:0 @@ -951,6 +973,8 @@ msgid "" "These groups, however, do NOT apply to children directories, which must " "define their own groups." msgstr "" +"Estes grupos, no entanto, NÃO se aplicam a diretórios filhos, que precisam " +"definir seus próprios grupos." #. module: document #: field:document.directory.content.type,mimetype:0 @@ -960,7 +984,7 @@ msgstr "Mime Type" #. module: document #: view:report.document.user:0 msgid "All Months Files" -msgstr "" +msgstr "Arquivos de todos os meses" #. module: document #: field:document.directory.content,name:0 @@ -982,7 +1006,7 @@ msgstr "Armazenamento interno de arquivo" #. module: document #: sql_constraint:document.directory:0 msgid "Directory must have a parent or a storage" -msgstr "" +msgstr "O diretório precisa ter um pai ou um armazenamento" #. module: document #: model:ir.actions.act_window,name:document.action_document_directory_tree diff --git a/addons/document/i18n/ro.po b/addons/document/i18n/ro.po index acc678adcff..2d377ccddc2 100644 --- a/addons/document/i18n/ro.po +++ b/addons/document/i18n/ro.po @@ -13,13 +13,13 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 msgid "Parent Directory" -msgstr "Director părinte" +msgstr "Director principal" #. module: document #: code:addons/document/document_directory.py:276 @@ -30,12 +30,12 @@ msgstr "Numele directorului contine caractere speciale!" #. module: document #: field:document.directory,resource_field:0 msgid "Name field" -msgstr "Nume câmp" +msgstr "Nume camp" #. module: document #: view:board.board:0 msgid "Document board" -msgstr "Panoul documente" +msgstr "Panou documente" #. module: document #: model:ir.model,name:document.model_process_node @@ -60,7 +60,7 @@ msgstr "" #: view:document.directory:0 #: view:document.storage:0 msgid "Group By..." -msgstr "Grupează după..." +msgstr "Grupeaza dupa..." #. module: document #: model:ir.model,name:document.model_document_directory_content_type @@ -76,18 +76,18 @@ msgstr "Resurse" #: field:document.directory,file_ids:0 #: view:report.document.user:0 msgid "Files" -msgstr "Fişiere" +msgstr "Fisiere" #. module: document #: view:report.files.partner:0 msgid "Files per Month" -msgstr "Fişiere pe lună" +msgstr "Fisiere pe luna" #. module: document #: selection:report.document.user,month:0 #: selection:report.files.partner,month:0 msgid "March" -msgstr "Matrie" +msgstr "Martie" #. module: document #: view:document.configuration:0 @@ -139,7 +139,7 @@ msgstr "Acest an" #. module: document #: field:document.storage,path:0 msgid "Path" -msgstr "Cale" +msgstr "Ruta" #. module: document #: code:addons/document/document_directory.py:266 @@ -151,7 +151,7 @@ msgstr "Numele directorului trebuie sa fie unic!" #. module: document #: view:ir.attachment:0 msgid "Filter on my documents" -msgstr "" +msgstr "Filtrarea documentelor" #. module: document #: field:ir.attachment,index_content:0 @@ -170,19 +170,19 @@ msgstr "" #. module: document #: model:ir.actions.todo.category,name:document.category_knowledge_mgmt_config msgid "Knowledge Management" -msgstr "" +msgstr "Managementul Cunostintelor" #. module: document #: view:document.directory:0 #: field:document.storage,dir_ids:0 #: model:ir.ui.menu,name:document.menu_document_directories msgid "Directories" -msgstr "Dosare" +msgstr "Directoare" #. module: document #: model:ir.model,name:document.model_report_document_user msgid "Files details by Users" -msgstr "Detalii fişiere după utilizator" +msgstr "Detalii fisiere dupa Utilizator" #. module: document #: code:addons/document/document_storage.py:573 @@ -209,12 +209,12 @@ msgstr "Sufix" #. module: document #: field:report.document.user,change_date:0 msgid "Modified Date" -msgstr "Data modificării" +msgstr "Data modificarii" #. module: document #: view:document.configuration:0 msgid "Knowledge Application Configuration" -msgstr "Cunostinte configurare aplicatie" +msgstr "Configurare Aplicatie Cunostinte" #. module: document #: view:ir.attachment:0 @@ -226,7 +226,7 @@ msgstr "Partener" #. module: document #: view:board.board:0 msgid "Files by Users" -msgstr "Fişiere per utilizator" +msgstr "Fisiere dupa Utilizator" #. module: document #: field:process.node,directory_id:0 @@ -241,12 +241,12 @@ msgstr "Director documente" #: code:addons/document/document_directory.py:276 #, python-format msgid "ValidateError" -msgstr "EroareValidare" +msgstr "Eroare de Validare" #. module: document #: model:ir.model,name:document.model_ir_actions_report_xml msgid "ir.actions.report.xml" -msgstr "ir.actions.report.xml" +msgstr "ir.actiuni.raport.xml" #. module: document #: model:ir.actions.act_window,name:document.action_document_file_form @@ -259,13 +259,13 @@ msgstr "Documente" #. module: document #: constraint:document.directory:0 msgid "Error! You can not create recursive Directories." -msgstr "Eroare! Nu puteți creea directoare recursive." +msgstr "Eroare! Nu puteti crea Directoare recursive." #. module: document #: view:document.directory:0 #: field:document.directory,storage_id:0 msgid "Storage" -msgstr "Stocare" +msgstr "Depozit" #. module: document #: field:document.directory,ressource_type_id:0 @@ -278,7 +278,7 @@ msgstr "Model resursa" #: field:report.document.user,file_size:0 #: field:report.files.partner,file_size:0 msgid "File Size" -msgstr "Mărime fişier" +msgstr "Dimensiunea fisierului" #. module: document #: field:document.directory.content.type,name:0 @@ -300,7 +300,7 @@ msgid "" "Select an object here and there will be one folder per record of that " "resource." msgstr "" -"Selectati un obiect aici si va exista un fisier per inregistrare a acelei " +"Selectati un obiect aici si veti avea un folder per inregistrare a acelei " "resurse." #. module: document @@ -357,7 +357,7 @@ msgstr "Extensie" #. module: document #: view:ir.attachment:0 msgid "Created" -msgstr "Creat" +msgstr "Creat(a)" #. module: document #: field:document.directory,content_ids:0 @@ -367,7 +367,7 @@ msgstr "Fisiere virtuale" #. module: document #: view:ir.attachment:0 msgid "Modified" -msgstr "Modificat" +msgstr "Modificat(a)" #. module: document #: code:addons/document/document_storage.py:639 @@ -386,6 +386,8 @@ msgid "" "When executing this wizard, it will configure your directories automatically " "according to modules installed." msgstr "" +"Atunci cand executati acest wizard, va va configura automat directoarele in " +"functie de modulele instalate." #. module: document #: field:document.directory.content,directory_id:0 @@ -426,12 +428,12 @@ msgstr "Domeniu" #: field:document.storage,write_date:0 #: field:ir.attachment,write_date:0 msgid "Date Modified" -msgstr "Data modificării" +msgstr "Data modificarii" #. module: document #: model:ir.model,name:document.model_report_document_file msgid "Files details by Directory" -msgstr "Detalii fişiere după directoare" +msgstr "Detalii fisiere dupa Director" #. module: document #: view:report.document.user:0 @@ -443,7 +445,7 @@ msgstr "Toate fisierele utilizatorilor" #: model:ir.actions.act_window,name:document.action_view_size_month #: view:report.document.file:0 msgid "File Size by Month" -msgstr "Mărime fişiere pe luni" +msgstr "Dimensiune fisier dupa Luna" #. module: document #: selection:report.document.user,month:0 @@ -464,7 +466,7 @@ msgstr "Director static" #. module: document #: field:document.directory,child_ids:0 msgid "Children" -msgstr "Descendenţi" +msgstr "Subordonati" #. module: document #: view:document.directory:0 @@ -478,8 +480,8 @@ msgstr "" msgid "" "If not checked, media is currently offline and its contents not available" msgstr "" -"Daca nu bifati, mijloacele sunt actualmente offline, iar cuprinsul lor nu " -"este disponibil" +"Daca nu bifati, mediile sunt offline in prezent, iar continutul lor nu este " +"disponibil" #. module: document #: view:document.directory:0 @@ -490,7 +492,7 @@ msgstr "" #: field:report.document.user,user_id:0 #: field:report.document.wall,user_id:0 msgid "Owner" -msgstr "Deținător" +msgstr "Proprietar" #. module: document #: view:document.directory:0 @@ -500,14 +502,14 @@ msgstr "Raport PDF" #. module: document #: view:document.directory:0 msgid "Contents" -msgstr "Conținut" +msgstr "Cuprins" #. module: document #: field:document.directory,create_date:0 #: field:document.storage,create_date:0 #: field:report.document.user,create_date:0 msgid "Date Created" -msgstr "Data creării" +msgstr "Data crearii" #. module: document #: help:document.directory.content,include_name:0 @@ -524,7 +526,7 @@ msgstr "" #: view:document.configuration:0 #: model:ir.actions.act_window,name:document.action_config_auto_directory msgid "Configure Directories" -msgstr "" +msgstr "Configurati Directoare" #. module: document #: field:document.directory.content,include_name:0 @@ -534,7 +536,7 @@ msgstr "Include Numele Inregistrarii" #. module: document #: view:ir.attachment:0 msgid "Attachment" -msgstr "Atașament" +msgstr "Atasament" #. module: document #: field:ir.actions.report.xml,model_id:0 @@ -573,7 +575,7 @@ msgstr "August" #. module: document #: sql_constraint:document.directory:0 msgid "Directory cannot be parent of itself!" -msgstr "Directorul nu poate fi parinte lui insusi" +msgstr "Directorul nu poate fi parinte lui insusi!" #. module: document #: selection:report.document.user,month:0 @@ -591,12 +593,12 @@ msgstr "Utilizator" #: field:document.directory,group_ids:0 #: field:document.storage,group_ids:0 msgid "Groups" -msgstr "Grupe" +msgstr "Grupuri" #. module: document #: field:document.directory.content.type,active:0 msgid "Active" -msgstr "Activ" +msgstr "Activ(a)" #. module: document #: selection:report.document.user,month:0 @@ -618,15 +620,15 @@ msgid "" "record, just like attachments. Don't put a parent directory if you select a " "parent model." msgstr "" -"Daca puneti un obiect aici, sablonul director va aparea sub toate aceste " -"obiecte. Asemenea directoare sunt \"atasate\" modulului sau inregistrarii " -"specific(e), ca si atasamentele. Nu puneti un director parinte daca " -"selectati un model parinte." +"Daca introduceti un obiect aici, sablonul director va aparea sub toate " +"aceste obiecte. Asemenea directoare sunt \"atasate\" modulului sau " +"inregistrarii specific(e), ca si atasamentele. Nu puneti un director parinte " +"daca selectati un model parinte." #. module: document #: view:document.directory:0 msgid "Definition" -msgstr "Definiţie" +msgstr "Definitie" #. module: document #: selection:report.document.user,month:0 @@ -642,7 +644,7 @@ msgstr "Secv." #. module: document #: selection:document.storage,type:0 msgid "Database" -msgstr "Bază de date" +msgstr "Baza de date" #. module: document #: selection:report.document.user,month:0 @@ -668,7 +670,7 @@ msgstr "Tablou de bord" #. module: document #: model:ir.actions.act_window,name:document.action_view_user_graph msgid "Files By Users" -msgstr "Fişiere după utilizatori" +msgstr "Fisiere dupa Utilizatori" #. module: document #: field:document.storage,readonly:0 @@ -678,7 +680,7 @@ msgstr "Doar citire" #. module: document #: model:ir.actions.act_window,name:document.action_document_directory_form msgid "Document Directory" -msgstr "" +msgstr "Director Documente" #. module: document #: sql_constraint:document.directory:0 @@ -694,7 +696,7 @@ msgstr "Creator" #. module: document #: field:document.directory.content,sequence:0 msgid "Sequence" -msgstr "Secvență" +msgstr "Secventa" #. module: document #: view:document.configuration:0 @@ -704,13 +706,18 @@ msgid "" "attached to the document, or to print and download any report. This tool " "will create directories automatically according to modules installed." msgstr "" +"Sistemul de Management al Documentelor OpenERP accepta maparea folderelor " +"virtuale cu documente. Folderul virtual al unui document poate fi folosit " +"pentru a gestiona fisierele atasate documentului, sau pentru a imprima si " +"descarca orice raport. Acest instrument va crea automat directoare in " +"functie de modulele instalate." #. module: document #: view:board.board:0 #: model:ir.actions.act_window,name:document.action_view_files_by_month_graph #: view:report.document.user:0 msgid "Files by Month" -msgstr "Fişiere pe luni" +msgstr "Fisiere dupa Luna" #. module: document #: selection:report.document.user,month:0 @@ -726,22 +733,22 @@ msgstr "Prefix" #. module: document #: field:report.document.wall,last:0 msgid "Last Posted Time" -msgstr "Ora ultimei postări" +msgstr "Ora ultimei postari" #. module: document #: field:report.document.user,datas_fname:0 msgid "File Name" -msgstr "Nume fișier" +msgstr "Nume fisier" #. module: document #: view:document.configuration:0 msgid "res_config_contents" -msgstr "res_config_contents" +msgstr "res_config_continuturi" #. module: document #: field:document.directory,ressource_id:0 msgid "Resource ID" -msgstr "ID resursă" +msgstr "ID resursa" #. module: document #: selection:document.storage,type:0 @@ -753,7 +760,7 @@ msgstr "Stocare fisiere externe" #: model:ir.actions.act_window,name:document.action_view_wall #: view:report.document.wall:0 msgid "Wall of Shame" -msgstr "Panoul ruşinii" +msgstr "Peretele Rusinii" #. module: document #: help:document.storage,path:0 @@ -763,12 +770,12 @@ msgstr "Pentru stocarea fisierelor, root path a stocarii" #. module: document #: model:ir.model,name:document.model_report_files_partner msgid "Files details by Partners" -msgstr "Detalii fişier după parteneri" +msgstr "Detalii fisiere dupa Parteneri" #. module: document #: field:document.directory.dctx,field:0 msgid "Field" -msgstr "Câmp" +msgstr "Camp" #. module: document #: model:ir.model,name:document.model_document_directory_dctx @@ -783,7 +790,7 @@ msgstr "Model parinte" #. module: document #: view:report.document.user:0 msgid "Files by users" -msgstr "Fişiere după utilizatori" +msgstr "Fisiere dupa Utilizatori" #. module: document #: field:report.document.file,month:0 @@ -797,7 +804,7 @@ msgstr "Luna" #. module: document #: view:report.document.user:0 msgid "This Months Files" -msgstr "" +msgstr "Fisierele din luna aceata" #. module: document #: model:ir.ui.menu,name:document.menu_reporting @@ -818,12 +825,12 @@ msgstr "Mai" #. module: document #: model:ir.actions.act_window,name:document.action_view_all_document_tree1 msgid "All Users files" -msgstr "Fişierele tuturor utilizatorilor" +msgstr "Fisierele tuturor utilizatorilor" #. module: document #: model:ir.model,name:document.model_report_document_wall msgid "Users that did not inserted documents since one month" -msgstr "Utilizatori care nu au inserat documente în ultima lună" +msgstr "Utilizatori care nu au inserat documente de o luna" #. module: document #: model:ir.actions.act_window,help:document.action_document_file_form @@ -843,12 +850,12 @@ msgstr "" #. module: document #: model:ir.model,name:document.model_ir_attachment msgid "ir.attachment" -msgstr "ir.attachment (ir.atasament)" +msgstr "ir.atasament" #. module: document #: view:board.board:0 msgid "New Files" -msgstr "Fişiere noi" +msgstr "Fisiere noi" #. module: document #: view:document.directory:0 @@ -858,17 +865,17 @@ msgstr "Static" #. module: document #: view:report.files.partner:0 msgid "Files By Partner" -msgstr "Fişiere după parteneri" +msgstr "Fisiere dupa Parteneri" #. module: document #: view:ir.attachment:0 msgid "Indexed Content - experimental" -msgstr "" +msgstr "Continut indexat - experimental" #. module: document #: view:report.document.user:0 msgid "This Month" -msgstr "Luna curentă" +msgstr "Luna curenta" #. module: document #: view:ir.attachment:0 @@ -878,7 +885,7 @@ msgstr "Note" #. module: document #: model:ir.model,name:document.model_document_configuration msgid "Directory Configuration" -msgstr "" +msgstr "Configurare Director" #. module: document #: help:document.directory,type:0 @@ -889,7 +896,7 @@ msgid "" "resources automatically possess sub-directories for each of resource types " "defined in the parent directory." msgstr "" -"Fiecare director poate avea sau tipul Static sau poate fi legat de o alta " +"Fiecare director poate fi de tipul Static sau poate fi legat de o alta " "resursa. Un director static, ca si in cazul Sistemelor de Operare, este " "directorul clasic care poate sa contina un set de fisiere. Directoarele " "legate de resursele sistemelor au automat sub-directoare pentru fiecare " @@ -905,7 +912,7 @@ msgstr "Februarie" #: model:ir.actions.act_window,name:document.open_board_document_manager1 #: model:ir.ui.menu,name:document.menu_reports_document_manager1 msgid "Statistics by User" -msgstr "Statistici per utilizator" +msgstr "Statistici per Utilizator" #. module: document #: help:document.directory.dctx,field:0 @@ -930,7 +937,7 @@ msgstr "Calea de stocare trebuie sa fie unica!" #. module: document #: view:document.directory:0 msgid "Fields" -msgstr "Câmpuri" +msgstr "Campuri" #. module: document #: help:document.storage,readonly:0 @@ -948,7 +955,7 @@ msgstr "Aprilie" #: field:report.document.user,nbr:0 #: field:report.files.partner,nbr:0 msgid "# of Files" -msgstr "Număr de fişiere" +msgstr "# Fişiere" #. module: document #: code:addons/document/document.py:209 @@ -982,7 +989,7 @@ msgstr "Tip Mime" #. module: document #: view:report.document.user:0 msgid "All Months Files" -msgstr "" +msgstr "Toate fisierele lunilor" #. module: document #: field:document.directory.content,name:0 @@ -1015,7 +1022,7 @@ msgstr "Structura directoarelor" #. module: document #: view:report.document.user:0 msgid "Files by Resource Type" -msgstr "Fişiere pe tipuri de resursă" +msgstr "Fisiere dupa Tipul Resursei" #. module: document #: field:report.document.user,name:0 @@ -1039,7 +1046,7 @@ msgstr "Cautare arhiva documente" #. module: document #: field:document.directory.content,extension:0 msgid "Document Type" -msgstr "Tip document" +msgstr "Tipul documentului" #~ msgid "" #~ "The Object name must start with x_ and not contain any special character !" @@ -1065,9 +1072,6 @@ msgstr "Tip document" #~ msgid "Configuration Progress" #~ msgstr "Configurare procese" -#~ msgid "Attached To" -#~ msgstr "Anexează la" - #~ msgid "Product" #~ msgstr "Produs" @@ -1132,3 +1136,6 @@ msgstr "Tip document" #~ msgid "Auto Directory Configuration" #~ msgstr "Configurare auto Director" + +#~ msgid "Attached To" +#~ msgstr "Anexeaza la" diff --git a/addons/document/i18n/ru.po b/addons/document/i18n/ru.po index 3b86d16fbd8..217f3c830e8 100644 --- a/addons/document/i18n/ru.po +++ b/addons/document/i18n/ru.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/sk.po b/addons/document/i18n/sk.po index 1aa71f8a8fd..674774572ab 100644 --- a/addons/document/i18n/sk.po +++ b/addons/document/i18n/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/sl.po b/addons/document/i18n/sl.po index 5a0061c176c..4f43506b6b9 100644 --- a/addons/document/i18n/sl.po +++ b/addons/document/i18n/sl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/sq.po b/addons/document/i18n/sq.po index ea3df382fbf..f6c02e85169 100644 --- a/addons/document/i18n/sq.po +++ b/addons/document/i18n/sq.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/sr.po b/addons/document/i18n/sr.po index f5e9fd484be..9e8ec311227 100644 --- a/addons/document/i18n/sr.po +++ b/addons/document/i18n/sr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/sr@latin.po b/addons/document/i18n/sr@latin.po index d504dc2aaeb..49d06f208a4 100644 --- a/addons/document/i18n/sr@latin.po +++ b/addons/document/i18n/sr@latin.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/sv.po b/addons/document/i18n/sv.po index 89954476d96..9c3ec2c2f29 100644 --- a/addons/document/i18n/sv.po +++ b/addons/document/i18n/sv.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/tlh.po b/addons/document/i18n/tlh.po index ccaf50dd132..1b7ecdf8204 100644 --- a/addons/document/i18n/tlh.po +++ b/addons/document/i18n/tlh.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/tr.po b/addons/document/i18n/tr.po index 59d7dd176bb..b828a9c0961 100644 --- a/addons/document/i18n/tr.po +++ b/addons/document/i18n/tr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 @@ -385,6 +385,8 @@ msgid "" "When executing this wizard, it will configure your directories automatically " "according to modules installed." msgstr "" +"Bu sihirbazı yürütürken, dizinlerinizi otomatikmen kurulu bulunan modüllere " +"göre yapılandıracaktır." #. module: document #: field:document.directory.content,directory_id:0 @@ -697,6 +699,11 @@ msgid "" "attached to the document, or to print and download any report. This tool " "will create directories automatically according to modules installed." msgstr "" +"OpenERP Belge Yönetim Sistemi sanal klasörlerin belgelerle " +"eşleştirilmelerini destekler. Bir belgenin sanal klasörü belgelere ekli " +"dosyaların yönetilmesi ya da herhangi bir raporu yazdırmak ve indirmek için " +"kullanılır. Bu araç, kurulu bulunan modüllere göre dizinleri otomatikmen " +"oluşturacaktır." #. module: document #: view:board.board:0 @@ -881,6 +888,10 @@ msgid "" "resources automatically possess sub-directories for each of resource types " "defined in the parent directory." msgstr "" +"Her dizin hem Statik türde hem de başka bir kaynağa bağlantılı olabilir. Bir " +"statik dizin, İşletim Sisteminde olduğu gibi, bir takım dosyaların bulunduğu " +"klasik dizindir. Sistem kaynaklarına bağlantılı dizinler, ana dizinde " +"tanımlanan her kaynak türü için otomatikman alt dizinlere sahiptir." #. module: document #: selection:report.document.user,month:0 diff --git a/addons/document/i18n/uk.po b/addons/document/i18n/uk.po index ce2244506f8..f1104ea53c7 100644 --- a/addons/document/i18n/uk.po +++ b/addons/document/i18n/uk.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/vi.po b/addons/document/i18n/vi.po index ddacf15eb5f..7709b3f5536 100644 --- a/addons/document/i18n/vi.po +++ b/addons/document/i18n/vi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/zh_CN.po b/addons/document/i18n/zh_CN.po index 52d2f2b7cff..0de55fdab5a 100644 --- a/addons/document/i18n/zh_CN.po +++ b/addons/document/i18n/zh_CN.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" -"X-Generator: Launchpad (build 15376)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/zh_HK.po b/addons/document/i18n/zh_HK.po index 84603c49686..2c4fc1ddbef 100644 --- a/addons/document/i18n/zh_HK.po +++ b/addons/document/i18n/zh_HK.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/i18n/zh_TW.po b/addons/document/i18n/zh_TW.po index ee32681e5c2..116ad3e0868 100644 --- a/addons/document/i18n/zh_TW.po +++ b/addons/document/i18n/zh_TW.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n" +"X-Generator: Launchpad (build 15761)\n" #. module: document #: field:document.directory,parent_id:0 diff --git a/addons/document/nodes.py b/addons/document/nodes.py index ee89f3d4c6c..f1c3c71a8e6 100644 --- a/addons/document/nodes.py +++ b/addons/document/nodes.py @@ -41,12 +41,11 @@ from StringIO import StringIO # file: objct = ir.attachement # root: if we are at the first directory of a ressource # - -logger = logging.getLogger('doc2.nodes') +_logger = logging.getLogger(__name__) def _str2time(cre): """ Convert a string with time representation (from db) into time (float) - + Note: a place to fix if datetime is used in db. """ if not cre: @@ -63,7 +62,7 @@ def get_node_context(cr, uid, context): class node_context(object): """ This is the root node, representing access to some particular context - + A context is a set of persistent data, which may influence the structure of the nodes. All other transient information during a data query should be passed down with function arguments. @@ -100,7 +99,7 @@ class node_context(object): def __ne__(self, other): return not self.__eq__(other) - + def get(self, name, default=None): return self.context.get(name, default) @@ -120,7 +119,7 @@ class node_context(object): """Create (or locate) a node for a directory @param dbro a browse object of document.directory """ - + fullpath = dbro.get_full_path(context=self.context) klass = dbro.get_node_class(dbro, context=self.context) return klass(fullpath, None ,self, dbro) @@ -184,7 +183,7 @@ class node_descriptor(object): def __nonzero__(self): """ Ensure that a node_descriptor will never equal False - + Since we do define __len__ and __iter__ for us, we must avoid being regarded as non-true objects. """ @@ -245,7 +244,7 @@ class node_class(object): else: s.append(self.path) return s #map(lambda x: '/' +x, s) - + def __repr__(self): return "%s@/%s" % (self.our_type, '/'.join(self.full_path())) @@ -272,7 +271,7 @@ class node_class(object): return False def get_data(self,cr): - raise TypeError('no data for %s'% self.type) + raise TypeError('No data for %s.'% self.type) def open_data(self, cr, mode): """ Open a node_descriptor object for this node. @@ -286,10 +285,10 @@ class node_class(object): For this class, there is no data, so no implementation. Each child class that has data should override this. """ - raise TypeError('no data for %s' % self.type) + raise TypeError('No data for %s.' % self.type) def _get_storage(self,cr): - raise RuntimeError("no storage for base class") + raise RuntimeError("No storage for base class.") def get_etag(self,cr): """ Get a tag, unique per object + modification. @@ -324,11 +323,11 @@ class node_class(object): def get_dav_eprop(self, cr, ns, prop): if not self.DAV_M_NS: return None - + if self.DAV_M_NS.has_key(ns): prefix = self.DAV_M_NS[ns] else: - logger.debug('No namespace: %s ("%s")',ns, prop) + _logger.debug('No namespace: %s ("%s").',ns, prop) return None mname = prefix + "_" + prop.replace('-','_') @@ -341,12 +340,12 @@ class node_class(object): r = m(cr) return r except AttributeError: - logger.debug('Property %s not supported' % prop, exc_info=True) + _logger.debug('The property %s is not supported.' % prop, exc_info=True) return None def get_dav_resourcetype(self, cr): """ Get the DAV resource type. - + Is here because some nodes may exhibit special behaviour, like CalDAV/GroupDAV collections """ @@ -376,7 +375,7 @@ class node_class(object): could do various things. Should also consider node<->content, dir<->dir moves etc. - Move operations, as instructed from APIs (eg. request from DAV) could + Move operations, as instructed from APIs (e.g. request from DAV) could use this function. """ raise NotImplementedError(repr(self)) @@ -384,14 +383,14 @@ class node_class(object): def create_child(self, cr, path, data=None): """ Create a regular file under this node """ - logger.warning("Attempted to create a file under %r, not possible.", self) - raise IOError(errno.EPERM, "Not allowed to create files here") - + _logger.warning("Attempted to create a file under %r, not possible.", self) + raise IOError(errno.EPERM, "Not allowed to create file(s) here.") + def create_child_collection(self, cr, objname): """ Create a child collection (directory) under self """ - logger.warning("Attempted to create a collection under %r, not possible.", self) - raise IOError(errno.EPERM, "Not allowed to create folders here") + _logger.warning("Attempted to create a collection under %r, not possible.", self) + raise IOError(errno.EPERM, "Not allowed to create folder(s) here.") def rm(self, cr): raise NotImplementedError(repr(self)) @@ -405,7 +404,7 @@ class node_class(object): def check_perms(self, perms): """ Check the permissions of the current node. - + @param perms either an integers of the bits to check, or a string with the permission letters @@ -415,7 +414,7 @@ class node_class(object): 4, r : allow read of file, or listing of dir contents 8, u : allow remove (unlink) """ - + if isinstance(perms, str): pe2 = 0 chars = { 'x': 1, 'w': 2, 'r': 4, 'u': 8 } @@ -424,10 +423,10 @@ class node_class(object): perms = pe2 elif isinstance(perms, int): if perms < 0 or perms > 15: - raise ValueError("Invalid permission bits") + raise ValueError("Invalid permission bits.") else: - raise ValueError("Invalid permission attribute") - + raise ValueError("Invalid permission attribute.") + return ((self.uidperms & perms) == perms) class node_database(node_class): @@ -464,9 +463,9 @@ class node_database(node_class): is_allowed = self.check_perms(1) else: is_allowed = self.check_perms(5) - + if not is_allowed: - raise IOError(errno.EPERM, "Permission into directory denied") + raise IOError(errno.EPERM, "Permission into directory denied.") if domain: where = where + domain @@ -494,7 +493,7 @@ def mkdosname(company_name, default='noname'): for c in company_name[:8]: n += (c in badchars and '_') or c return n - + def _uid2unixperms(perms, has_owner): """ Convert the uidperms and the owner flag to full unix bits @@ -544,7 +543,7 @@ class node_dir(node_database): try: self.dctx['dctx_' + dfld.field] = safe_eval(dfld.expr,dc2) except Exception,e: - print "Cannot eval %s" % dfld.expr + print "Cannot eval %s." % dfld.expr print e pass @@ -567,10 +566,10 @@ class node_dir(node_database): def _file_get(self, cr, nodename=False): res = super(node_dir,self)._file_get(cr, nodename) - + is_allowed = self.check_perms(nodename and 1 or 5) if not is_allowed: - raise IOError(errno.EPERM, "Permission into directory denied") + raise IOError(errno.EPERM, "Permission into directory denied.") cntobj = self.context._dirobj.pool.get('document.directory.content') uid = self.context.uid @@ -584,7 +583,7 @@ class node_dir(node_database): res.extend(res3) return res - + def _child_get(self, cr, name=None, domain=None): dirobj = self.context._dirobj uid = self.context.uid @@ -596,9 +595,9 @@ class node_dir(node_database): is_allowed = self.check_perms(1) else: is_allowed = self.check_perms(5) - + if not is_allowed: - raise IOError(errno.EPERM, "Permission into directory denied") + raise IOError(errno.EPERM, "Permission into directory denied.") if not domain: domain = [] @@ -634,20 +633,20 @@ class node_dir(node_database): if not directory: raise OSError(2, 'Not such file or directory.') if not self.check_perms('u'): - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") if directory._table_name=='document.directory': if self.children(cr): raise OSError(39, 'Directory not empty.') res = self.context._dirobj.unlink(cr, uid, [directory.id]) else: - raise OSError(1, 'Operation not permited.') + raise OSError(1, 'Operation is not permitted.') return res def create_child_collection(self, cr, objname): object2 = False if not self.check_perms(2): - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") dirobj = self.context._dirobj uid = self.context.uid @@ -655,7 +654,7 @@ class node_dir(node_database): ctx.update(self.dctx) obj = dirobj.browse(cr, uid, self.dir_id) if obj and (obj.type == 'ressource') and not object2: - raise OSError(1, 'Operation not permited.') + raise OSError(1, 'Operation is not permitted.') #objname = uri2[-1] val = { @@ -673,7 +672,7 @@ class node_dir(node_database): Return the node_* created """ if not self.check_perms(2): - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") dirobj = self.context._dirobj uid = self.context.uid @@ -703,10 +702,10 @@ class node_dir(node_database): Note /may/ be called with ndir_node = None, to rename the document root. """ if ndir_node and (ndir_node.context != self.context): - raise NotImplementedError("Cannot move directories between contexts") + raise NotImplementedError("Cannot move directories between contexts.") if (not self.check_perms('u')) or (not ndir_node.check_perms('w')): - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") dir_obj = self.context._dirobj if not fil_obj: @@ -725,13 +724,13 @@ class node_dir(node_database): assert self.parent if self.parent != ndir_node: - logger.debug('Cannot move dir %r from %r to %r', self, self.parent, ndir_node) - raise NotImplementedError('Cannot move dir to another dir') + _logger.debug('Cannot move dir %r from %r to %r.', self, self.parent, ndir_node) + raise NotImplementedError('Cannot move dir to another dir.') ret = {} if new_name and (new_name != dbro.name): if ndir_node.child(cr, new_name): - raise IOError(errno.EEXIST, "Destination path already exists") + raise IOError(errno.EEXIST, "Destination path already exists.") ret['name'] = new_name del dbro @@ -833,7 +832,7 @@ class node_res_dir(node_class): elif isinstance(app, tuple): where.append(app) else: - raise RuntimeError("incorrect domain expr: %s" % self.domain) + raise RuntimeError("Incorrect domain expr: %s." % self.domain) if self.resm_id: where.append(('id','=',self.resm_id)) @@ -846,7 +845,7 @@ class node_res_dir(node_class): is_allowed = self.check_perms(5) if not is_allowed: - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") # print "Where clause for %s" % self.res_model, where if self.ressource_tree: @@ -865,10 +864,10 @@ class node_res_dir(node_class): if not res_name: continue # Yes! we can't do better but skip nameless records. - + # Escape the name for characters not supported in filenames res_name = res_name.replace('/','_') # any other weird char? - + if name and (res_name != ustr(name)): # we have matched _ to any character, but we only meant to match # the special ones. @@ -924,7 +923,7 @@ class node_res_obj(node_class): try: self.dctx[fld] = safe_eval(expr, dc2) except Exception,e: - print "Cannot eval %s for %s" % (expr, fld) + print "Cannot eval %s for %s." % (expr, fld) print e pass else: @@ -963,7 +962,7 @@ class node_res_obj(node_class): res = [] is_allowed = self.check_perms((nodename and 1) or 5) if not is_allowed: - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") cntobj = self.context._dirobj.pool.get('document.directory.content') uid = self.context.uid @@ -998,7 +997,7 @@ class node_res_obj(node_class): def get_dav_eprop_DEPR(self, cr, ns, prop): # Deprecated! if ns != 'http://groupdav.org/' or prop != 'resourcetype': - logger.warning("Who asked for %s:%s?" % (ns, prop)) + _logger.warning("Who asks for %s:%s?" % (ns, prop)) return None cntobj = self.context._dirobj.pool.get('document.directory.content') uid = self.context.uid @@ -1017,7 +1016,7 @@ class node_res_obj(node_class): is_allowed = self.check_perms((name and 1) or 5) if not is_allowed: - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") uid = self.context.uid ctx = self.context.context.copy() @@ -1058,7 +1057,7 @@ class node_res_obj(node_class): where2 = where + [('parent_id','=',self.dir_id) ] ids = dirobj.search(cr, uid, where2, context=ctx) bo = obj.browse(cr, uid, self.res_id, context=ctx) - + for dirr in dirobj.browse(cr, uid, ids, context=ctx): if name and (name != dirr.name): continue @@ -1104,7 +1103,7 @@ class node_res_obj(node_class): dirobj = self.context._dirobj is_allowed = self.check_perms(2) if not is_allowed: - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") uid = self.context.uid ctx = self.context.context.copy() @@ -1115,7 +1114,7 @@ class node_res_obj(node_class): obj = dirobj.browse(cr, uid, self.dir_id) if obj and (obj.type == 'ressource') and not object2: - raise OSError(1, 'Operation not permited.') + raise OSError(1, 'Operation is not permitted.') val = { @@ -1136,7 +1135,7 @@ class node_res_obj(node_class): """ is_allowed = self.check_perms(2) if not is_allowed: - raise IOError(errno.EPERM,"Permission denied") + raise IOError(errno.EPERM,"Permission denied.") dirobj = self.context._dirobj uid = self.context.uid @@ -1178,14 +1177,14 @@ class node_file(node_class): self.write_date = fil.write_date or fil.create_date self.content_length = fil.file_size self.displayname = fil.name - + self.uidperms = 14 if parent: if not parent.check_perms('x'): self.uidperms = 0 elif not parent.check_perms('w'): self.uidperms = 4 - + try: self.uuser = (fil.user_id and fil.user_id.login) or 'nobody' except Exception: @@ -1214,9 +1213,9 @@ class node_file(node_class): def open_data(self, cr, mode): stor = self.storage_id - assert stor, "No storage for file #%s" % self.file_id + assert stor, "No storage for file #%s." % self.file_id if not self.check_perms(4): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") # If storage is not set properly, we are just screwed here, don't # try to get it from default. @@ -1226,7 +1225,7 @@ class node_file(node_class): def rm(self, cr): uid = self.context.uid if not self.check_perms(8): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") document_obj = self.context._dirobj.pool.get('ir.attachment') if self.type in ('collection','database'): return False @@ -1272,7 +1271,7 @@ class node_file(node_class): stor = self.storage_id assert stor, "No storage for file #%s" % self.file_id if not self.check_perms(4): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") # If storage is not set properly, we are just screwed here, don't # try to get it from default. @@ -1295,7 +1294,7 @@ class node_file(node_class): stor = self.storage_id assert stor, "No storage for file #%s" % self.file_id if not self.check_perms(2): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") stobj = self.context._dirobj.pool.get('document.storage') return stobj.set_data(cr, self.context.uid,stor, self, data, self.context.context, fil_obj) @@ -1305,31 +1304,31 @@ class node_file(node_class): def move_to(self, cr, ndir_node, new_name=False, fil_obj=None, ndir_obj=None, in_write=False): if ndir_node and ndir_node.context != self.context: - raise NotImplementedError("Cannot move files between contexts") + raise NotImplementedError("Cannot move files between contexts.") if (not self.check_perms(8)) and ndir_node.check_perms(2): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") doc_obj = self.context._dirobj.pool.get('ir.attachment') if not fil_obj: dbro = doc_obj.browse(cr, self.context.uid, self.file_id, context=self.context.context) else: dbro = fil_obj - assert dbro.id == self.file_id, "%s != %s for %r" % (dbro.id, self.file_id, self) + assert dbro.id == self.file_id, "%s != %s for %r." % (dbro.id, self.file_id, self) if not dbro: - raise IndexError("Cannot locate doc %d", self.file_id) + raise IndexError("Cannot locate doc %d.", self.file_id) if (not self.parent): # there *must* be a parent node for this one self.parent = self.context.get_dir_node(cr, dbro.parent_id) assert self.parent - + ret = {} if ndir_node and self.parent != ndir_node: if not (isinstance(self.parent, node_dir) and isinstance(ndir_node, node_dir)): - logger.debug('Cannot move file %r from %r to %r', self, self.parent, ndir_node) - raise NotImplementedError('Cannot move files between dynamic folders') + _logger.debug('Cannot move file %r from %r to %r.', self, self.parent, ndir_node) + raise NotImplementedError('Cannot move files between dynamic folders.') if not ndir_obj: ndir_obj = self.context._dirobj.browse(cr, self.context.uid, \ @@ -1344,7 +1343,7 @@ class node_file(node_class): if new_name and (new_name != dbro.name): if len(ret): - raise NotImplementedError("Cannot rename and move") # TODO + raise NotImplementedError("Cannot rename and move.") # TODO stobj = self.context._dirobj.pool.get('document.storage') r2 = stobj.simple_rename(cr, self.context.uid, self, new_name, self.context.context) ret.update(r2) @@ -1374,7 +1373,7 @@ class node_content(node_class): self.uidperms = parent.uidperms & 14 self.uuser = parent.uuser self.ugroup = parent.ugroup - + self.extension = cnt.extension self.report_id = cnt.report_id and cnt.report_id.id #self.mimetype = cnt.extension. @@ -1400,7 +1399,7 @@ class node_content(node_class): def get_data(self, cr, fil_obj = None): cntobj = self.context._dirobj.pool.get('document.directory.content') if not self.check_perms(4): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") ctx = self.context.context.copy() ctx.update(self.dctx) @@ -1417,14 +1416,14 @@ class node_content(node_class): elif mode in ('r+', 'w+'): cperms = 'rw' else: - raise IOError(errno.EINVAL, "Cannot open at mode %s" % mode) - + raise IOError(errno.EINVAL, "Cannot open at mode %s." % mode) + if not self.check_perms(cperms): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") ctx = self.context.context.copy() ctx.update(self.dctx) - + return nodefd_content(self, cr, mode, ctx) def get_data_len(self, cr, fil_obj = None): @@ -1439,7 +1438,7 @@ class node_content(node_class): def set_data(self, cr, data, fil_obj = None): cntobj = self.context._dirobj.pool.get('document.directory.content') if not self.check_perms(2): - raise IOError(errno.EPERM, "Permission denied") + raise IOError(errno.EPERM, "Permission denied.") ctx = self.context.context.copy() ctx.update(self.dctx) @@ -1452,6 +1451,7 @@ class node_content(node_class): return '' class nodefd_content(StringIO, node_descriptor): + """ A descriptor to content nodes """ def __init__(self, parent, cr, mode, ctx): @@ -1473,8 +1473,8 @@ class nodefd_content(StringIO, node_descriptor): elif mode == 'a': StringIO.__init__(self, None) else: - logging.getLogger('document.content').error("Incorrect mode %s specified", mode) - raise IOError(errno.EINVAL, "Invalid file mode") + _logger.error("Incorrect mode %s is specified.", mode) + raise IOError(errno.EINVAL, "Invalid file mode.") self.mode = mode def size(self): @@ -1499,13 +1499,14 @@ class nodefd_content(StringIO, node_descriptor): raise NotImplementedError cr.commit() except Exception: - logging.getLogger('document.content').exception('Cannot update db content #%d for close:', par.cnt_id) + _logger.exception('Cannot update db content #%d for close.', par.cnt_id) raise finally: cr.close() StringIO.close(self) class nodefd_static(StringIO, node_descriptor): + """ A descriptor to nodes with static data. """ def __init__(self, parent, cr, mode, ctx=None): @@ -1526,8 +1527,8 @@ class nodefd_static(StringIO, node_descriptor): elif mode == 'a': StringIO.__init__(self, None) else: - logging.getLogger('document.nodes').error("Incorrect mode %s specified", mode) - raise IOError(errno.EINVAL, "Invalid file mode") + _logger.error("Incorrect mode %s is specified.", mode) + raise IOError(errno.EINVAL, "Invalid file mode.") self.mode = mode def size(self): @@ -1551,7 +1552,7 @@ class nodefd_static(StringIO, node_descriptor): raise NotImplementedError cr.commit() except Exception: - logging.getLogger('document.nodes').exception('Cannot update db content #%d for close:', par.cnt_id) + _logger.exception('Cannot update db content #%d for close.', par.cnt_id) raise finally: cr.close() diff --git a/addons/document/report/document_report.py b/addons/document/report/document_report.py index 34b61f01c01..92e33c13746 100644 --- a/addons/document/report/document_report.py +++ b/addons/document/report/document_report.py @@ -32,7 +32,7 @@ class report_document_user(osv.osv): 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True), 'user_id':fields.integer('Owner', readonly=True), - 'user':fields.char('User',size=64,readonly=True), + 'user': fields.related('user_id', 'name', type='char', size=64, readonly=True), 'directory': fields.char('Directory',size=64,readonly=True), 'datas_fname': fields.char('File Name',size=64,readonly=True), 'create_date': fields.datetime('Date Created', readonly=True), @@ -50,7 +50,6 @@ class report_document_user(osv.osv): to_char(f.create_date, 'YYYY') as name, to_char(f.create_date, 'MM') as month, f.user_id as user_id, - u.name as user, count(*) as nbr, d.name as directory, f.datas_fname as datas_fname, @@ -60,45 +59,11 @@ class report_document_user(osv.osv): f.write_date as change_date FROM ir_attachment f left join document_directory d on (f.parent_id=d.id and d.name<>'') - inner join res_users u on (f.user_id=u.id) - group by to_char(f.create_date, 'YYYY'), to_char(f.create_date, 'MM'),d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,u.name,d.type,f.write_date,f.datas_fname + group by to_char(f.create_date, 'YYYY'), to_char(f.create_date, 'MM'),d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,d.type,f.write_date,f.datas_fname ) """) -report_document_user() - -class report_files_partner(osv.osv): - _name = "report.files.partner" - _description = "Files details by Partners" - _auto = False - _columns = { - 'name': fields.char('Year',size=64,required=False, readonly=True), - 'file_size': fields.integer('File Size', readonly=True), - 'nbr':fields.integer('# of Files', readonly=True), - 'partner':fields.char('Partner',size=64,readonly=True), - 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'), - ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True), - } - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_files_partner') - cr.execute(""" - CREATE VIEW report_files_partner as ( - SELECT min(f.id) AS id, - COUNT(*) AS nbr, - to_char(date_trunc('month', f.create_date),'YYYY') AS name, - to_char(date_trunc('month', f.create_date),'MM') AS month, - SUM(f.file_size) AS file_size, - p.name AS partner - - FROM ir_attachment f - LEFT JOIN res_partner p ON (f.partner_id=p.id) - WHERE f.datas_fname IS NOT NULL - GROUP BY p.name, date_trunc('month', f.create_date) - ) - """) -report_files_partner() - class report_document_file(osv.osv): _name = "report.document.file" _description = "Files details by Directory" @@ -122,37 +87,5 @@ class report_document_file(osv.osv): ) """) -report_document_file() - -class report_document_wall(osv.osv): - _name = "report.document.wall" - _description = "Users that did not inserted documents since one month" - _auto = False - _columns = { - 'name': fields.date('Month', readonly=True), - 'user_id':fields.many2one('res.users', 'Owner',readonly=True), - 'user':fields.char('User',size=64,readonly=True), - 'month': fields.char('Month', size=24,readonly=True), - 'last':fields.datetime('Last Posted Time', readonly=True), - } - - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_document_wall') - cr.execute(""" - create or replace view report_document_wall as ( - select max(f.id) as id, - to_char(min(f.create_date),'YYYY-MM-DD HH24:MI:SS') as last, - f.user_id as user_id, f.user_id as user, - to_char(f.create_date,'Month') as month - from ir_attachment f - where f.create_date in ( - select max(i.create_date) - from ir_attachment i - inner join res_users u on (i.user_id=u.id) - group by i.user_id) group by f.user_id,f.create_date - having (CURRENT_DATE - to_date(to_char(f.create_date,'YYYY-MM-DD'),'YYYY-MM-DD')) > 30 - ) - """) -report_document_wall() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/document/report/document_report_view.xml b/addons/document/report/document_report_view.xml index e6e1847cd56..2a8b9f34ddf 100644 --- a/addons/document/report/document_report_view.xml +++ b/addons/document/report/document_report_view.xml @@ -4,13 +4,12 @@ <record model="ir.ui.view" id="view_document_user_form"> <field name="name">report.document.user.form</field> <field name="model">report.document.user</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Files"> - <field name="name" select="1"/> - <field name="user" select="1"/> - <field name="directory" select="1"/> - <field name="datas_fname" select="1"/> + <field name="name"/> + <field name="user"/> + <field name="directory"/> + <field name="datas_fname"/> <field name="file_size"/> <field name="create_date"/> </form> @@ -21,13 +20,12 @@ <record model="ir.ui.view" id="view_document_user_tree"> <field name="name">report.document.user.tree</field> <field name="model">report.document.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Files"> - <field name="name" select="1"/> - <field name="month" select="1"/> - <field name="user" select="1" invisible="1"/> - <field name="directory" select="1" invisible="1"/> + <field name="name"/> + <field name="month"/> + <field name="user" invisible="1"/> + <field name="directory" invisible="1"/> <field name="file_size" invisible="1"/> <field name="create_date" invisible="1"/> <field name="nbr"/> @@ -38,25 +36,14 @@ <record id="view_report_document_user_search" model="ir.ui.view"> <field name="name">report.document.user.search</field> <field name="model">report.document.user</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="All users files"> - <group> - <separator orientation="vertical"/> - <filter icon="terp-go-year" string="This Year" domain="[('name','=',time.localtime()[0])]" help="All Months Files"/> - <filter icon="terp-go-month" string="This Month" domain="[('month','=',time.localtime()[1])]" help="This Months Files"/> - <separator orientation="vertical"/> - <field name="name"/> - <field name="month"/> - <field name="user"/> - <field name="directory"/> - </group> + <field name="name" filter_domain="['|', '|',('name','ilike',self), ('user','ilike',self), ('directory','ilike',self)]" string="Users File"/> + <field name="month"/> </search> </field> </record> - <!-- <menuitem name="Document Management" id="menu_action_view_my_document"/> - <menuitem name="Reporting" id="menu_action_view_my_document_report" parent="menu_action_view_my_document"/>--> <record model="ir.actions.act_window" id="action_view_all_document_tree1"> <field name="name">All Users files</field> @@ -67,77 +54,21 @@ <field name="search_view_id" ref="view_report_document_user_search"/> </record> - <!-- <menuitem name="All Users files" id="menu_action_view_my_document_report_all_userfile" parent="menu_action_view_my_document_report" action="action_view_all_document_tree1"/>--> - -<!-- --> - <record model="ir.ui.view" id="view_document_wall_form"> - <field name="name">report.document.wall.form</field> - <field name="model">report.document.wall</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <form string="Wall of Shame"> - <field name="user_id" select="1"/> - <field name="month" select="1"/> - <field name="last"/> - </form> - </field> - </record> - - <record model="ir.ui.view" id="view_document_wall_tree"> - <field name="name">report.document.wall.tree</field> - <field name="model">report.document.wall</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Wall of Shame"> - <field name="user_id" select="1"/> - <field name="month" select="1"/> - <field name="last"/> - </tree> - </field> - </record> - - <record model="ir.actions.act_window" id="action_view_wall"> - <field name="name">Wall of Shame</field> - <field name="res_model">report.document.wall</field> - <field name="view_type">form</field> - <field name="view_mode">tree,form</field> - </record> - - <!--<menuitem name="Wall of Shame" id="menu_action_view_my_document_report_shame" parent="menu_action_view_my_document_report" action="action_view_wall"/>--> - -<!--***************************************************************************************--> - - <record model="ir.ui.view" id="view_document_by_resourcetype_graph"> - <field name="name">report.document.resource.graph</field> - <field name="model">report.document.user</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Files by Resource Type" type="pie"> - <field name="type" /> - <field name="nbr" operator="+"/> - </graph> - </field> - </record> - - -<!--***************************************************************************************--> - <record model="ir.ui.view" id="view_size_month"> + <record model="ir.ui.view" id="view_size_month"> <field name="name">report.document.user.graph</field> <field name="model">report.document.file</field> - <field name="type">graph</field> <field name="arch" type="xml"> - <graph string="File Size by Month" type="bar"> + <graph string="File Size by Month" type="line"> <field name="month"/> <field name="file_size" operator="+"/> </graph> </field> - </record> + </record> - <record model="ir.ui.view" id="view_size_month_tree"> + <record model="ir.ui.view" id="view_size_month_tree"> <field name="name">report.document.user.tree</field> <field name="model">report.document.file</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="File Size by Month"> <field name="month" /> @@ -145,6 +76,7 @@ </tree> </field> </record> + <record model="ir.actions.act_window" id="action_view_size_month"> <field name="name">File Size by Month</field> <field name="res_model">report.document.file</field> @@ -153,20 +85,14 @@ <field name="view_mode">tree</field> </record> -<!--***************************************************************************************--> - - <record model="ir.ui.view" id="view_files_by_month_graph"> + <record model="ir.ui.view" id="view_files_by_month_graph"> <field name="name">report.file.month.graph</field> <field name="model">report.document.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> - <graph string="Files by Month" type="bar"> + <graph string="Files by Month" type="pie"> <field name="month" /> <field name="nbr" operator="+"/> -<!-- <field name="name" operator="+"/>--> -<!-- <field name="file_size" operator="+"/>--> - </graph> </field> </record> @@ -174,7 +100,6 @@ <record model="ir.ui.view" id="view_files_by_month_tree"> <field name="name">report.file.month.tree</field> <field name="model">report.document.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Files by Month"> <field name="name"/> @@ -184,87 +109,32 @@ </field> </record> - <record model="ir.actions.act_window" id="action_view_files_by_month_graph"> - <field name="name">Files by Month</field> - <field name="res_model">report.document.user</field> - <field name="view_id" ref="view_files_by_month_graph"></field> - <field name="view_type">form</field> - <field name="view_mode">tree</field> - </record> - - -<!--***************************************************************************************--> - - <record model="ir.ui.view" id="view_user_graph"> - <field name="name">report.document.user.graph</field> + <record model="ir.ui.view" id="view_files_by_user_graph"> + <field name="name">report.file.user.graph</field> <field name="model">report.document.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> - <graph string="Files by users" type="bar"> + <graph string="Files by User" type="pie"> <field name="user" /> <field name="nbr" operator="+"/> </graph> </field> </record> - <record model="ir.actions.act_window" id="action_view_user_graph"> - <field name="name">Files By Users</field> + <record model="ir.actions.act_window" id="action_view_files_by_user_graph"> + <field name="name">Files by User</field> <field name="res_model">report.document.user</field> - <field name="view_id" ref="view_user_graph"></field> + <field name="view_id" ref="view_files_by_user_graph"></field> <field name="view_type">form</field> <field name="view_mode">tree</field> </record> - -<!--***************************************************************************************--> - - <record model="ir.ui.view" id="view_files_by_partner_graph"> - <field name="name">view.files.partner.graph</field> - <field name="model">report.files.partner</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Files By Partner" type="bar"> - <field name="partner"/> - <field name="nbr"/> - - </graph> - </field> - </record> - - <record model="ir.ui.view" id="view_files_by_partner_tree"> - <field name="name">view.files.partner.tree</field> - <field name="model">report.files.partner</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Files per Month"> - <field name="name"/> - <field name="month"/> - <field name="partner"/> - <field name="nbr"/> - </tree> - </field> - </record> - - <record model="ir.ui.view" id="view_files_by_partner_form"> - <field name="name">view.files.partner.form</field> - <field name="model">report.files.partner</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <tree string="Files per Month"> - <field name="name" select="1"/> - <field name="month" select="1"/> - <field name="partner"/> - <field name="nbr"/> - </tree> - </field> - </record> - - <record model="ir.actions.act_window" id="action_view_files_by_partner"> - <field name="name">Files Per Partner</field> - <field name="res_model">report.files.partner</field> - <field name="view_id" ref="view_files_by_partner_graph"></field> + <record model="ir.actions.act_window" id="action_view_files_by_month_graph"> + <field name="name">Files by Month</field> + <field name="res_model">report.document.user</field> + <field name="view_id" ref="view_files_by_month_graph"></field> <field name="view_type">form</field> <field name="view_mode">tree</field> </record> - </data> - </openerp> + + </data> +</openerp> diff --git a/addons/document/security/ir.model.access.csv b/addons/document/security/ir.model.access.csv index 36f0aa86dff..a82b9acd838 100644 --- a/addons/document/security/ir.model.access.csv +++ b/addons/document/security/ir.model.access.csv @@ -15,11 +15,6 @@ access_res_partner_group_user,res.partner user,base.model_res_partner,base.group access_document_directory_dctx_all,document.directory.dctx all,model_document_directory_dctx,,1,0,0,0
access_document_directory_dctx_group_document_manager,document.directory.dctx document manager,model_document_directory_dctx,base.group_system,1,1,1,1
access_report_document_user_group_document_manager,report.document.user document manager,model_report_document_user,base.group_system,1,0,0,0
-access_report_files_partner_group_document_manager,report.files.partner document manager,model_report_files_partner,base.group_system,1,0,0,0
access_report_document_file_group_document_manager,report.document.file document manager,model_report_document_file,base.group_system,1,0,0,0
-access_report_document_wall_group_document_manager,report.document.wall document manager,model_report_document_wall,base.group_system,1,0,0,0
-access_report_document_wall_group_system,report.document.wall group system,model_report_document_wall,base.group_system,1,0,0,0
-access_report_files_partner_group_document,report.files.partner document manager,model_report_files_partner,base.group_document_user,1,0,0,0
access_report_document_file_group_document,report.document.file document manager,model_report_document_file,base.group_document_user,1,0,0,0
-access_report_document_wall_group_document,report.document.wall document manager,model_report_document_wall,base.group_document_user,1,0,0,0
access_report_document_user_knowledgeuser,report.document.user knowledgeuser,document.model_report_document_user,base.group_document_user,1,0,0,0
diff --git a/addons/document/std_index.py b/addons/document/std_index.py index e153d018bf0..422590e127f 100644 --- a/addons/document/std_index.py +++ b/addons/document/std_index.py @@ -25,6 +25,7 @@ import StringIO import odt2txt import sys, zipfile, xml.dom.minidom import logging +_logger = logging.getLogger(__name__) def _to_unicode(s): try: @@ -101,9 +102,9 @@ class DocIndex(indexer): (data, _) = pop.communicate() return _to_unicode(data) except OSError: - logger = logging.getLogger('document.DocIndex') - logger.warn("Failed attempt to execute antiword (MS Word reader). Antiword is necessary to index the file %s of MIME type %s. Detailed error available at DEBUG level.", fname, self._getMimeTypes()[0]) - logger.debug("Trace of the failed file indexing attempt: ", exc_info=True) + + _logger.warn("Failed attempt to execute antiword (MS Word reader). Antiword is necessary to index the file %s of MIME type %s. Detailed error available at DEBUG level.", fname, self._getMimeTypes()[0]) + _logger.debug("Trace of the failed file indexing attempt.", exc_info=True) return False cntIndex.register(DocIndex()) diff --git a/addons/document/wizard/document_configuration_view.xml b/addons/document/wizard/document_configuration_view.xml index 4a2f131d42a..48b41f94500 100644 --- a/addons/document/wizard/document_configuration_view.xml +++ b/addons/document/wizard/document_configuration_view.xml @@ -1,9 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> <openerp> <data> <record id="view_auto_config_form" model="ir.ui.view"> <field name="name">Auto Configure Directories</field> <field name="model">document.configuration</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_view_base"/> <field name="arch" type="xml"> <data> @@ -16,7 +16,6 @@ <label align="0.0" string="When executing this wizard, it will configure your directories automatically according to modules installed."/> </group> </group> - <xpath expr="//button[@name='action_skip']" position="replace"/> </data> </field> </record> @@ -30,15 +29,9 @@ <field name="view_mode">form</field> <field name="target">new</field> </record> - - <record id="category_knowledge_mgmt_config" model="ir.actions.todo.category"> - <field name="name">Knowledge Management</field> - <field name="sequence">5</field> - </record> <record model="ir.actions.todo" id="config_auto_directory"> <field name="action_id" ref="action_config_auto_directory"/> - <field name="category_id" ref="category_knowledge_mgmt_config"/> <field name="type">automatic</field> </record> </data> |
