summaryrefslogtreecommitdiff
path: root/addons/document
diff options
context:
space:
mode:
authorRavish Murari (OpenERP) <rmu@tinyerp.com>2012-08-23 17:16:08 +0530
committerRavish Murari (OpenERP) <rmu@tinyerp.com>2012-08-23 17:16:08 +0530
commit05acae2e2fe8b72d7b1523fa0dd91a8e7d2ea09f (patch)
tree337084f7e348d9a84e2530c2eb8362a5c966d024 /addons/document
parentc5f7f6ecdf710985f29cc73e310ea1f3852b468d (diff)
parent79224ea6722e0f2644239b582d86346f32021c0a (diff)
[merge] with latest addons
bzr revid: rmu@tinyerp.com-20120823114608-zerb6vg7l1ckf5mi
Diffstat (limited to 'addons/document')
-rw-r--r--addons/document/__openerp__.py16
-rw-r--r--addons/document/board_document_view.xml75
-rw-r--r--addons/document/content_index.py25
-rw-r--r--addons/document/custom_report.xml6
-rw-r--r--addons/document/document.py15
-rw-r--r--addons/document/document_data.xml1
-rw-r--r--addons/document/document_directory.py23
-rw-r--r--addons/document/document_storage.py182
-rw-r--r--addons/document/document_view.xml124
-rw-r--r--addons/document/i18n/ar.po32
-rw-r--r--addons/document/i18n/bg.po4
-rw-r--r--addons/document/i18n/bs.po4
-rw-r--r--addons/document/i18n/ca.po4
-rw-r--r--addons/document/i18n/cs.po4
-rw-r--r--addons/document/i18n/da.po4
-rw-r--r--addons/document/i18n/de.po4
-rw-r--r--addons/document/i18n/el.po4
-rw-r--r--addons/document/i18n/es.po4
-rw-r--r--addons/document/i18n/es_AR.po4
-rw-r--r--addons/document/i18n/es_CR.po4
-rw-r--r--addons/document/i18n/es_EC.po4
-rw-r--r--addons/document/i18n/es_PY.po4
-rw-r--r--addons/document/i18n/et.po4
-rw-r--r--addons/document/i18n/fi.po4
-rw-r--r--addons/document/i18n/fr.po4
-rw-r--r--addons/document/i18n/gl.po4
-rw-r--r--addons/document/i18n/gu.po4
-rw-r--r--addons/document/i18n/hi.po4
-rw-r--r--addons/document/i18n/hr.po4
-rw-r--r--addons/document/i18n/hu.po4
-rw-r--r--addons/document/i18n/id.po4
-rw-r--r--addons/document/i18n/it.po4
-rw-r--r--addons/document/i18n/ja.po4
-rw-r--r--addons/document/i18n/ko.po4
-rw-r--r--addons/document/i18n/lt.po4
-rw-r--r--addons/document/i18n/lv.po4
-rw-r--r--addons/document/i18n/mn.po36
-rw-r--r--addons/document/i18n/nl.po8
-rw-r--r--addons/document/i18n/nl_BE.po4
-rw-r--r--addons/document/i18n/pl.po4
-rw-r--r--addons/document/i18n/pt.po4
-rw-r--r--addons/document/i18n/pt_BR.po48
-rw-r--r--addons/document/i18n/ro.po159
-rw-r--r--addons/document/i18n/ru.po4
-rw-r--r--addons/document/i18n/sk.po4
-rw-r--r--addons/document/i18n/sl.po4
-rw-r--r--addons/document/i18n/sq.po4
-rw-r--r--addons/document/i18n/sr.po4
-rw-r--r--addons/document/i18n/sr@latin.po4
-rw-r--r--addons/document/i18n/sv.po4
-rw-r--r--addons/document/i18n/tlh.po4
-rw-r--r--addons/document/i18n/tr.po15
-rw-r--r--addons/document/i18n/uk.po4
-rw-r--r--addons/document/i18n/vi.po4
-rw-r--r--addons/document/i18n/zh_CN.po4
-rw-r--r--addons/document/i18n/zh_HK.po4
-rw-r--r--addons/document/i18n/zh_TW.po4
-rw-r--r--addons/document/nodes.py171
-rw-r--r--addons/document/report/document_report.py71
-rw-r--r--addons/document/report/document_report_view.xml190
-rw-r--r--addons/document/security/ir.model.access.csv5
-rw-r--r--addons/document/std_index.py7
-rw-r--r--addons/document/wizard/document_configuration_view.xml9
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>