[MERGE] from trunk
authorFrédéric van der Essen <fva@openerp.com>
Wed, 26 Mar 2014 13:12:29 +0000 (14:12 +0100)
committerFrédéric van der Essen <fva@openerp.com>
Wed, 26 Mar 2014 13:12:29 +0000 (14:12 +0100)
bzr revid: fva@openerp.com-20140326131229-euztmx4puq02pz1z

126 files changed:
addons/document_ftp/__init__.py [deleted file]
addons/document_ftp/__openerp__.py [deleted file]
addons/document_ftp/ftpserver/__init__.py [deleted file]
addons/document_ftp/ftpserver/abstracted_fs.py [deleted file]
addons/document_ftp/ftpserver/authorizer.py [deleted file]
addons/document_ftp/ftpserver/ftpserver.py [deleted file]
addons/document_ftp/i18n/ar.po [deleted file]
addons/document_ftp/i18n/bg.po [deleted file]
addons/document_ftp/i18n/ca.po [deleted file]
addons/document_ftp/i18n/cs.po [deleted file]
addons/document_ftp/i18n/da.po [deleted file]
addons/document_ftp/i18n/de.po [deleted file]
addons/document_ftp/i18n/document_ftp.pot [deleted file]
addons/document_ftp/i18n/el.po [deleted file]
addons/document_ftp/i18n/en_GB.po [deleted file]
addons/document_ftp/i18n/es.po [deleted file]
addons/document_ftp/i18n/es_CR.po [deleted file]
addons/document_ftp/i18n/es_EC.po [deleted file]
addons/document_ftp/i18n/es_MX.po [deleted file]
addons/document_ftp/i18n/es_PY.po [deleted file]
addons/document_ftp/i18n/es_VE.po [deleted file]
addons/document_ftp/i18n/et.po [deleted file]
addons/document_ftp/i18n/fi.po [deleted file]
addons/document_ftp/i18n/fr.po [deleted file]
addons/document_ftp/i18n/gl.po [deleted file]
addons/document_ftp/i18n/hr.po [deleted file]
addons/document_ftp/i18n/hu.po [deleted file]
addons/document_ftp/i18n/it.po [deleted file]
addons/document_ftp/i18n/ja.po [deleted file]
addons/document_ftp/i18n/mk.po [deleted file]
addons/document_ftp/i18n/mn.po [deleted file]
addons/document_ftp/i18n/nb.po [deleted file]
addons/document_ftp/i18n/nl.po [deleted file]
addons/document_ftp/i18n/pl.po [deleted file]
addons/document_ftp/i18n/pt.po [deleted file]
addons/document_ftp/i18n/pt_BR.po [deleted file]
addons/document_ftp/i18n/ro.po [deleted file]
addons/document_ftp/i18n/ru.po [deleted file]
addons/document_ftp/i18n/sk.po [deleted file]
addons/document_ftp/i18n/sl.po [deleted file]
addons/document_ftp/i18n/sr.po [deleted file]
addons/document_ftp/i18n/sr@latin.po [deleted file]
addons/document_ftp/i18n/sv.po [deleted file]
addons/document_ftp/i18n/tr.po [deleted file]
addons/document_ftp/i18n/vi.po [deleted file]
addons/document_ftp/i18n/zh_CN.po [deleted file]
addons/document_ftp/i18n/zh_TW.po [deleted file]
addons/document_ftp/res_config.py [deleted file]
addons/document_ftp/res_config_view.xml [deleted file]
addons/document_ftp/security/ir.model.access.csv [deleted file]
addons/document_ftp/test/document_ftp_test.yml [deleted file]
addons/document_ftp/test/document_ftp_test2.yml [deleted file]
addons/document_ftp/test/document_ftp_test3.yml [deleted file]
addons/document_ftp/test/document_ftp_test4.yml [deleted file]
addons/document_ftp/test/document_ftp_test5.yml [deleted file]
addons/document_ftp/test_easyftp.py [deleted file]
addons/document_ftp/wizard/__init__.py [deleted file]
addons/document_ftp/wizard/ftp_browse.py [deleted file]
addons/document_ftp/wizard/ftp_browse_view.xml [deleted file]
addons/document_ftp/wizard/ftp_configuration.py [deleted file]
addons/document_ftp/wizard/ftp_configuration_view.xml [deleted file]
addons/document_webdav/__init__.py [deleted file]
addons/document_webdav/__openerp__.py [deleted file]
addons/document_webdav/cache.py [deleted file]
addons/document_webdav/dav_fs.py [deleted file]
addons/document_webdav/doc/well-known.rst [deleted file]
addons/document_webdav/document_webdav.py [deleted file]
addons/document_webdav/i18n/ar.po [deleted file]
addons/document_webdav/i18n/bg.po [deleted file]
addons/document_webdav/i18n/ca.po [deleted file]
addons/document_webdav/i18n/cs.po [deleted file]
addons/document_webdav/i18n/da.po [deleted file]
addons/document_webdav/i18n/de.po [deleted file]
addons/document_webdav/i18n/document_webdav.pot [deleted file]
addons/document_webdav/i18n/el.po [deleted file]
addons/document_webdav/i18n/en_GB.po [deleted file]
addons/document_webdav/i18n/es.po [deleted file]
addons/document_webdav/i18n/es_CR.po [deleted file]
addons/document_webdav/i18n/es_EC.po [deleted file]
addons/document_webdav/i18n/es_MX.po [deleted file]
addons/document_webdav/i18n/es_PY.po [deleted file]
addons/document_webdav/i18n/es_VE.po [deleted file]
addons/document_webdav/i18n/et.po [deleted file]
addons/document_webdav/i18n/eu.po [deleted file]
addons/document_webdav/i18n/fi.po [deleted file]
addons/document_webdav/i18n/fr.po [deleted file]
addons/document_webdav/i18n/gl.po [deleted file]
addons/document_webdav/i18n/gu.po [deleted file]
addons/document_webdav/i18n/hr.po [deleted file]
addons/document_webdav/i18n/hu.po [deleted file]
addons/document_webdav/i18n/id.po [deleted file]
addons/document_webdav/i18n/it.po [deleted file]
addons/document_webdav/i18n/ja.po [deleted file]
addons/document_webdav/i18n/mk.po [deleted file]
addons/document_webdav/i18n/mn.po [deleted file]
addons/document_webdav/i18n/nb.po [deleted file]
addons/document_webdav/i18n/nl.po [deleted file]
addons/document_webdav/i18n/pl.po [deleted file]
addons/document_webdav/i18n/pt.po [deleted file]
addons/document_webdav/i18n/pt_BR.po [deleted file]
addons/document_webdav/i18n/ro.po [deleted file]
addons/document_webdav/i18n/ru.po [deleted file]
addons/document_webdav/i18n/sl.po [deleted file]
addons/document_webdav/i18n/sr.po [deleted file]
addons/document_webdav/i18n/sr@latin.po [deleted file]
addons/document_webdav/i18n/sv.po [deleted file]
addons/document_webdav/i18n/tr.po [deleted file]
addons/document_webdav/i18n/zh_CN.po [deleted file]
addons/document_webdav/i18n/zh_TW.po [deleted file]
addons/document_webdav/nodes.py [deleted file]
addons/document_webdav/public_html/index.html [deleted file]
addons/document_webdav/redirect.py [deleted file]
addons/document_webdav/security/ir.model.access.csv [deleted file]
addons/document_webdav/test/webdav_test1.yml [deleted file]
addons/document_webdav/test_davclient.py [deleted file]
addons/document_webdav/webdav.py [deleted file]
addons/document_webdav/webdav_demo.xml [deleted file]
addons/document_webdav/webdav_server.py [deleted file]
addons/document_webdav/webdav_setup.xml [deleted file]
addons/document_webdav/webdav_view.xml [deleted file]
addons/knowledge/res_config.py
addons/knowledge/res_config_view.xml
addons/mail/mail_group.py
addons/website_mail/models/mail_message.py
addons/website_mail_group/controllers/main.py
addons/website_mail_group/views/website_mail_group.xml

diff --git a/addons/document_ftp/__init__.py b/addons/document_ftp/__init__.py
deleted file mode 100644 (file)
index e7e4a64..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#    
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
-#
-##############################################################################
-
-import ftpserver
-import wizard
-import res_config
-
-post_load = ftpserver.start_server
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/__openerp__.py b/addons/document_ftp/__openerp__.py
deleted file mode 100644 (file)
index 23ff8f1..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-{
-    'name': 'Shared Repositories (FTP)',
-    'version': '1.99',
-    'category': 'Knowledge Management',
-    'description': """
-This is a support FTP Interface with document management system.
-================================================================
-
-With this module you would not only be able to access documents through OpenERP
-but you would also be able to connect with them through the file system using the
-FTP client.
-""",
-    'author': 'OpenERP SA',
-    'website': 'http://www.openerp.com',
-    'depends': ['base', 'document'],
-    'data': [
-        'wizard/ftp_configuration_view.xml',
-        'wizard/ftp_browse_view.xml',
-        'security/ir.model.access.csv',
-        'res_config_view.xml',
-    ],
-    'demo': [],
-    'test': [
-        'test/document_ftp_test2.yml',
-        'test/document_ftp_test4.yml',
-    ],
-    'installable': True,
-    'auto_install': False,
-    'images': ['images/1_configure_ftp.jpeg','images/2_document_browse.jpeg','images/3_document_ftp.jpeg'],
-    'post_load': 'post_load',
-}
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/ftpserver/__init__.py b/addons/document_ftp/ftpserver/__init__.py
deleted file mode 100644 (file)
index 6474def..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#    
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
-#
-##############################################################################
-
-import threading
-import logging
-
-import authorizer
-import abstracted_fs
-import ftpserver
-
-import openerp
-from openerp.tools import config
-_logger = logging.getLogger(__name__)
-
-def start_server():
-    if openerp.multi_process:
-        _logger.info("FTP disabled in multiprocess mode")
-        return
-    if openerp.evented:
-        _logger.info("FTP disabled in evented mode")
-        return
-    HOST = config.get('ftp_server_host', '127.0.0.1')
-    PORT = int(config.get('ftp_server_port', '8021'))
-    PASSIVE_PORTS = None
-    pps = config.get('ftp_server_passive_ports', '').split(':')
-    if len(pps) == 2:
-        PASSIVE_PORTS = int(pps[0]), int(pps[1])
-
-    class ftp_server(threading.Thread):
-        
-        def run(self):
-            autho = authorizer.authorizer()
-            ftpserver.FTPHandler.authorizer = autho
-            ftpserver.max_cons = 300
-            ftpserver.max_cons_per_ip = 50
-            ftpserver.FTPHandler.abstracted_fs = abstracted_fs.abstracted_fs
-            if PASSIVE_PORTS:
-                ftpserver.FTPHandler.passive_ports = PASSIVE_PORTS
-
-            ftpserver.log = lambda msg: _logger.info(msg)
-            ftpserver.logline = lambda msg: None
-            ftpserver.logerror = lambda msg: _logger.error(msg)
-
-            ftpd = ftpserver.FTPServer((HOST, PORT), ftpserver.FTPHandler)
-            ftpd.serve_forever()
-
-    if HOST.lower() == 'none':
-        _logger.info("\n Server FTP Not Started\n")
-    else:
-        _logger.info("\n Serving FTP on %s:%s\n" % (HOST, PORT))
-        ds = ftp_server()
-        ds.daemon = True
-        ds.start()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/document_ftp/ftpserver/abstracted_fs.py b/addons/document_ftp/ftpserver/abstracted_fs.py
deleted file mode 100644 (file)
index 514ba10..0000000
+++ /dev/null
@@ -1,665 +0,0 @@
-# -*- encoding: utf-8 -*-
-
-import os
-import time
-from tarfile import filemode
-import logging
-import errno
-
-import glob
-import fnmatch
-
-import openerp
-from openerp import sql_db
-import openerp.service
-from openerp.service import security
-from openerp.osv import osv
-
-from openerp.addons.document.document import get_node_context
-
-def _get_month_name(month):
-    month=int(month)
-    if month==1:return 'Jan'
-    elif month==2:return 'Feb'
-    elif month==3:return 'Mar'
-    elif month==4:return 'Apr'
-    elif month==5:return 'May'
-    elif month==6:return 'Jun'
-    elif month==7:return 'Jul'
-    elif month==8:return 'Aug'
-    elif month==9:return 'Sep'
-    elif month==10:return 'Oct'
-    elif month==11:return 'Nov'
-    elif month==12:return 'Dec'
-
-from ftpserver import _to_decode, _to_unicode
-
-
-class abstracted_fs(object):
-    """A class used to interact with the file system, providing a high
-    level, cross-platform interface compatible with both Windows and
-    UNIX style filesystems.
-
-    It provides some utility methods and some wraps around operations
-    involved in file creation and file system operations like moving
-    files or removing directories.
-
-    Instance attributes:
-     - (str) root: the user home directory.
-     - (str) cwd: the current working directory.
-     - (str) rnfr: source file to be renamed.
-
-    """
-
-    def __init__(self):
-        self.root = None
-        self.cwd = '/'
-        self.cwd_node = None
-        self.rnfr = None
-        self._log = logging.getLogger(__name__)
-
-    # Ok
-    def db_list(self):
-        """Get the list of available databases, with FTPd support
-        """
-        s = openerp.service.db
-        result = s.exp_list(document=True)
-        self.db_name_list = []
-        for db_name in result:
-            db, cr = None, None
-            try:
-                try:
-                    db = sql_db.db_connect(db_name)
-                    cr = db.cursor()
-                    cr.execute("SELECT 1 FROM pg_class WHERE relkind = 'r' AND relname = 'ir_module_module'")
-                    if not cr.fetchone():
-                        continue
-
-                    cr.execute("SELECT id FROM ir_module_module WHERE name = 'document_ftp' AND state IN ('installed', 'to install', 'to upgrade') ")
-                    res = cr.fetchone()
-                    if res and len(res):
-                        self.db_name_list.append(db_name)
-                    cr.commit()
-                except Exception:
-                    self._log.warning('Cannot use db "%s".', db_name)
-            finally:
-                if cr is not None:
-                    cr.close()
-        return self.db_name_list
-
-    def ftpnorm(self, ftppath):
-        """Normalize a "virtual" ftp pathname (tipically the raw string
-        coming from client).
-
-        Pathname returned is relative!.
-        """
-        p = os.path.normpath(ftppath)
-        # normalize string in a standard web-path notation having '/'
-        # as separator. xrg: is that really in the spec?
-        p = p.replace("\\", "/")
-        # os.path.normpath supports UNC paths (e.g. "//a/b/c") but we
-        # don't need them.  In case we get an UNC path we collapse
-        # redundant separators appearing at the beginning of the string
-        while p[:2] == '//':
-            p = p[1:]
-        if p == '.':
-            return ''
-        return p
-
-    def get_cwd(self):
-        """ return the cwd, decoded in utf"""
-        return _to_decode(self.cwd)
-
-    def ftp2fs(self, path_orig, data):
-        raise DeprecationWarning()
-
-    def fs2ftp(self, node):
-        """ Return the string path of a node, in ftp form
-        """
-        res='/'
-        if node:
-            paths = node.full_path()
-            res = '/' + node.context.dbname + '/' +  \
-                _to_decode(os.path.join(*paths))
-
-        return res
-
-    def validpath(self, path):
-        """Check whether the path belongs to user's home directory.
-        Expected argument is a datacr tuple
-        """
-        # TODO: are we called for "/" ?
-        return isinstance(path, tuple) and path[1] and True or False
-
-    # --- Wrapper methods around open() and tempfile.mkstemp
-
-    def create(self, datacr, objname, mode):
-        """ Create a children file-node under node, open it
-            @return open node_descriptor of the created node
-        """
-        objname = _to_unicode(objname)
-        cr , node, rem = datacr
-        try:
-            child = node.child(cr, objname)
-            if child:
-                if child.type not in ('file','content'):
-                    raise OSError(1, 'Operation is not permitted.')
-
-                ret = child.open_data(cr, mode)
-                cr.commit()
-                assert ret, "Cannot create descriptor for %r: %r." % (child, ret)
-                return ret
-        except EnvironmentError:
-            raise
-        except Exception:
-            self._log.exception('Cannot locate item %s at node %s.', objname, repr(node))
-            pass
-
-        try:
-            child = node.create_child(cr, objname, data=None)
-            ret = child.open_data(cr, mode)
-            assert ret, "Cannot create descriptor for %r." % child
-            cr.commit()
-            return ret
-        except EnvironmentError:
-            raise
-        except Exception:
-            self._log.exception('Cannot create item %s at node %s.', objname, repr(node))
-            raise OSError(1, 'Operation is not permitted.')
-
-    def open(self, datacr, mode):
-        if not (datacr and datacr[1]):
-            raise OSError(1, 'Operation is not permitted.')
-        # Reading operation
-        cr, node, rem = datacr
-        try:
-            res = node.open_data(cr, mode)
-            cr.commit()
-        except TypeError:
-            raise IOError(errno.EINVAL, "No data.")
-        return res
-
-    # ok, but need test more
-
-    def mkstemp(self, suffix='', prefix='', dir=None, mode='wb'):
-        """A wrap around tempfile.mkstemp creating a file with a unique
-        name.  Unlike mkstemp it returns an object with a file-like
-        interface.
-        """
-        raise NotImplementedError # TODO
-
-        text = not 'b' in mode
-        # for unique file , maintain version if duplicate file
-        if dir:
-            cr = dir.cr
-            uid = dir.uid
-            pool = openerp.registry(node.context.dbname)
-            object=dir and dir.object or False
-            object2=dir and dir.object2 or False
-            res=pool.get('ir.attachment').search(cr,uid,[('name','like',prefix),('parent_id','=',object and object.type in ('directory','ressource') and object.id or False),('res_id','=',object2 and object2.id or False),('res_model','=',object2 and object2._name or False)])
-            if len(res):
-                pre = prefix.split('.')
-                prefix=pre[0] + '.v'+str(len(res))+'.'+pre[1]
-        return self.create(dir,suffix+prefix,text)
-
-
-
-    # Ok
-    def chdir(self, datacr):
-        if (not datacr) or datacr == (None, None, None):
-            self.cwd = '/'
-            self.cwd_node = None
-            return None
-        if not datacr[1]:
-            raise OSError(1, 'Operation is not permitted.')
-        if datacr[1].type not in  ('collection','database'):
-            raise OSError(2, 'Path is not a directory.')
-        self.cwd = '/'+datacr[1].context.dbname + '/'
-        self.cwd += '/'.join(datacr[1].full_path())
-        self.cwd_node = datacr[1]
-
-    # Ok
-    def mkdir(self, datacr, basename):
-        """Create the specified directory."""
-        cr, node, rem = datacr or (None, None, None)
-        if not node:
-            raise OSError(1, 'Operation is not permitted.')
-
-        try:
-            basename =_to_unicode(basename)
-            cdir = node.create_child_collection(cr, basename)
-            self._log.debug("Created child dir: %r", cdir)
-            cr.commit()
-        except Exception:
-            self._log.exception('Cannot create dir "%s" at node %s.', basename, repr(node))
-            raise OSError(1, 'Operation is not permitted.')
-
-    def close_cr(self, data):
-        if data and data[0]:
-            data[0].close()
-        return True
-
-    def get_cr(self, pathname):
-        raise DeprecationWarning()
-
-    def get_crdata(self, line, mode='file'):
-        """ Get database cursor, node and remainder data, for commands
-
-        This is the helper function that will prepare the arguments for
-        any of the subsequent commands.
-        It returns a tuple in the form of:
-        @code        ( cr, node, rem_path=None )
-
-        @param line An absolute or relative ftp path, as passed to the cmd.
-        @param mode A word describing the mode of operation, so that this
-                    function behaves properly in the different commands.
-        """
-        path = self.ftpnorm(line)
-        if self.cwd_node is None:
-            if not os.path.isabs(path):
-                path = os.path.join(self.root, path)
-
-        if path == '/' and mode in ('list', 'cwd'):
-            return (None, None, None )
-
-        if path == '..': path = self.cwd + '/..'
-        path = _to_unicode(os.path.normpath(path)) # again, for '/db/../ss'
-        if path == '.': path = ''
-
-        if os.path.isabs(path) and self.cwd_node is not None \
-                and path.startswith(self.cwd):
-            # make relative, so that cwd_node is used again
-            path = path[len(self.cwd):]
-            if path.startswith('/'):
-                path = path[1:]
-
-        p_parts = path.split(os.sep)
-
-        assert '..' not in p_parts
-
-        rem_path = None
-        if mode in ('create',):
-            rem_path = p_parts[-1]
-            p_parts = p_parts[:-1]
-
-        if os.path.isabs(path):
-            # we have to start from root, again
-            while p_parts and p_parts[0] == '':
-                p_parts = p_parts[1:]
-            # self._log.debug("Path parts: %r ", p_parts)
-            if not p_parts:
-                raise IOError(errno.EPERM, 'Cannot perform operation at root directory.')
-            dbname = p_parts[0]
-            if dbname not in self.db_list():
-                raise IOError(errno.ENOENT,'Invalid database path: %s.' % dbname)
-            try:
-                db = openerp.registry(dbname).db
-            except Exception:
-                raise OSError(1, 'Database cannot be used.')
-            cr = db.cursor()
-            try:
-                uid = security.login(dbname, self.username, self.password)
-            except Exception:
-                cr.close()
-                raise
-            if not uid:
-                cr.close()
-                raise OSError(2, 'Authentification required.')
-            n = get_node_context(cr, uid, {})
-            node = n.get_uri(cr, p_parts[1:])
-            return (cr, node, rem_path)
-        else:
-            # we never reach here if cwd_node is not set
-            if p_parts and p_parts[-1] == '':
-                p_parts = p_parts[:-1]
-            cr, uid = self.get_node_cr_uid(self.cwd_node)
-            if p_parts:
-                node = self.cwd_node.get_uri(cr, p_parts)
-            else:
-                node = self.cwd_node
-            if node is False and mode not in ('???'):
-                cr.close()
-                raise IOError(errno.ENOENT, 'Path does not exist.')
-            return (cr, node, rem_path)
-
-    def get_node_cr_uid(self, node):
-        """ Get cr, uid, pool from a node
-        """
-        assert node
-        db = openerp.registry(node.context.dbname).db
-        return db.cursor(), node.context.uid
-
-    def get_node_cr(self, node):
-        """ Get the cursor for the database of a node
-
-        The cursor is the only thing that a node will not store
-        persistenly, so we have to obtain a new one for each call.
-        """
-        return self.get_node_cr_uid(node)[0]
-
-    def listdir(self, datacr):
-        """List the content of a directory."""
-        class false_node(object):
-            write_date = 0.0
-            create_date = 0.0
-            unixperms = 040550
-            content_length = 0L
-            uuser = 'root'
-            ugroup = 'root'
-            type = 'database'
-
-            def __init__(self, db):
-                self.path = db
-
-        if datacr[1] is None:
-            result = []
-            for db in self.db_list():
-                try:
-                    result.append(false_node(db))
-                except osv.except_osv:
-                    pass
-            return result
-        cr, node, rem = datacr
-        res = node.children(cr)
-        return res
-
-    def rmdir(self, datacr):
-        """Remove the specified directory."""
-        cr, node, rem = datacr
-        assert node
-        node.rmcol(cr)
-        cr.commit()
-
-    def remove(self, datacr):
-        assert datacr[1]
-        if datacr[1].type == 'collection':
-            return self.rmdir(datacr)
-        elif datacr[1].type == 'file':
-            return self.rmfile(datacr)
-        raise OSError(1, 'Operation is not permitted.')
-
-    def rmfile(self, datacr):
-        """Remove the specified file."""
-        assert datacr[1]
-        cr = datacr[0]
-        datacr[1].rm(cr)
-        cr.commit()
-
-    def rename(self, src, datacr):
-        """ Renaming operation, the effect depends on the src:
-            * A file: read, create and remove
-            * A directory: change the parent and reassign children to ressource
-        """
-        cr = datacr[0]
-        try:
-            nname = _to_unicode(datacr[2])
-            ret = src.move_to(cr, datacr[1], new_name=nname)
-            # API shouldn't wait for us to write the object
-            assert (ret is True) or (ret is False)
-            cr.commit()
-        except EnvironmentError:
-            raise
-        except Exception:
-            self._log.exception('Cannot rename "%s" to "%s" at "%s".', src, datacr[2], datacr[1])
-            raise OSError(1,'Operation is not permitted.')
-
-    def stat(self, node):
-        raise NotImplementedError()
-
-    # --- Wrapper methods around os.path.*
-
-    # Ok
-    def isfile(self, node):
-        if node and (node.type in ('file','content')):
-            return True
-        return False
-
-    # Ok
-    def islink(self, path):
-        """Return True if path is a symbolic link."""
-        return False
-
-    def isdir(self, node):
-        """Return True if path is a directory."""
-        if node is None:
-            return True
-        if node and (node.type in ('collection','database')):
-            return True
-        return False
-
-    def getsize(self, datacr):
-        """Return the size of the specified file in bytes."""
-        if not (datacr and datacr[1]):
-            raise IOError(errno.ENOENT, "No such file or directory.")
-        if datacr[1].type in ('file', 'content'):
-            return datacr[1].get_data_len(datacr[0]) or 0L
-        return 0L
-
-    # Ok
-    def getmtime(self, datacr):
-        """Return the last modified time as a number of seconds since
-        the epoch."""
-
-        node = datacr[1]
-        if node.write_date or node.create_date:
-            dt = (node.write_date or node.create_date)[:19]
-            result = time.mktime(time.strptime(dt, '%Y-%m-%d %H:%M:%S'))
-        else:
-            result = time.mktime(time.localtime())
-        return result
-
-    # Ok
-    def realpath(self, path):
-        """Return the canonical version of path eliminating any
-        symbolic links encountered in the path (if they are
-        supported by the operating system).
-        """
-        return path
-
-    # Ok
-    def lexists(self, path):
-        """Return True if path refers to an existing path, including
-        a broken or circular symbolic link.
-        """
-        raise DeprecationWarning()
-        return path and True or False
-
-    exists = lexists
-
-    # Ok, can be improved
-    def glob1(self, dirname, pattern):
-        """Return a list of files matching a dirname pattern
-        non-recursively.
-
-        Unlike glob.glob1 raises exception if os.listdir() fails.
-        """
-        names = self.listdir(dirname)
-        if pattern[0] != '.':
-            names = filter(lambda x: x.path[0] != '.', names)
-        return fnmatch.filter(names, pattern)
-
-    # --- Listing utilities
-
-    # note: the following operations are no more blocking
-
-    def get_list_dir(self, datacr):
-        """"Return an iterator object that yields a directory listing
-        in a form suitable for LIST command.
-        """
-        if not datacr:
-            return None
-        elif self.isdir(datacr[1]):
-            listing = self.listdir(datacr)
-            return self.format_list(datacr[0], datacr[1], listing)
-        # if path is a file or a symlink we return information about it
-        elif self.isfile(datacr[1]):
-            par = datacr[1].parent
-            return self.format_list(datacr[0], par, [datacr[1]])
-
-    def get_stat_dir(self, rawline, datacr):
-        """Return an iterator object that yields a list of files
-        matching a dirname pattern non-recursively in a form
-        suitable for STAT command.
-
-         - (str) rawline: the raw string passed by client as command
-         argument.
-        """
-        ftppath = self.ftpnorm(rawline)
-        if not glob.has_magic(ftppath):
-            return self.get_list_dir(self.ftp2fs(rawline, datacr))
-        else:
-            basedir, basename = os.path.split(ftppath)
-            if glob.has_magic(basedir):
-                return iter(['Directory recursion not supported.\r\n'])
-            else:
-                basedir = self.ftp2fs(basedir, datacr)
-                listing = self.glob1(basedir, basename)
-                if listing:
-                    listing.sort()
-                return self.format_list(basedir, listing)
-
-    def format_list(self, cr, parent_node, listing, ignore_err=True):
-        """Return an iterator object that yields the entries of given
-        directory emulating the "/bin/ls -lA" UNIX command output.
-
-         - (str) basedir: the parent directory node. Can be None
-         - (list) listing: a list of nodes
-         - (bool) ignore_err: when False raise exception if os.lstat()
-         call fails.
-
-        On platforms which do not support the pwd and grp modules (such
-        as Windows), ownership is printed as "owner" and "group" as a
-        default, and number of hard links is always "1". On UNIX
-        systems, the actual owner, group, and number of links are
-        printed.
-
-        This is how output appears to client:
-
-        -rw-rw-rw-   1 owner   group    7045120 Sep 02  3:47 music.mp3
-        drwxrwxrwx   1 owner   group          0 Aug 31 18:50 e-books
-        -rw-rw-rw-   1 owner   group        380 Sep 02  3:40 module.py
-        """
-        for node in listing:
-            perms = filemode(node.unixperms)  # permissions
-            nlinks = 1
-            size = node.content_length or 0L
-            uname = _to_decode(node.uuser)
-            gname = _to_decode(node.ugroup)
-            # stat.st_mtime could fail (-1) if last mtime is too old
-            # in which case we return the local time as last mtime
-            try:
-                st_mtime = node.write_date or 0.0
-                if isinstance(st_mtime, basestring):
-                    st_mtime = time.strptime(st_mtime, '%Y-%m-%d %H:%M:%S')
-                elif isinstance(st_mtime, float):
-                    st_mtime = time.localtime(st_mtime)
-                mname=_get_month_name(time.strftime("%m", st_mtime ))
-                mtime = mname+' '+time.strftime("%d %H:%M", st_mtime)
-            except ValueError:
-                mname=_get_month_name(time.strftime("%m"))
-                mtime = mname+' '+time.strftime("%d %H:%M")
-            fpath = node.path
-            if isinstance(fpath, (list, tuple)):
-                fpath = fpath[-1]
-            # formatting is matched with proftpd ls output
-            path=_to_decode(fpath)
-            yield "%s %3s %-8s %-8s %8s %s %s\r\n" %(perms, nlinks, uname, gname,
-                                                     size, mtime, path)
-
-    # Ok
-    def format_mlsx(self, cr, basedir, listing, perms, facts, ignore_err=True):
-        """Return an iterator object that yields the entries of a given
-        directory or of a single file in a form suitable with MLSD and
-        MLST commands.
-
-        Every entry includes a list of "facts" referring the listed
-        element.  See RFC-3659, chapter 7, to see what every single
-        fact stands for.
-
-         - (str) basedir: the absolute dirname.
-         - (list) listing: the names of the entries in basedir
-         - (str) perms: the string referencing the user permissions.
-         - (str) facts: the list of "facts" to be returned.
-         - (bool) ignore_err: when False raise exception if os.stat()
-         call fails.
-
-        Note that "facts" returned may change depending on the platform
-        and on what user specified by using the OPTS command.
-
-        This is how output could appear to the client issuing
-        a MLSD request:
-
-        type=file;size=156;perm=r;modify=20071029155301;unique=801cd2; music.mp3
-        type=dir;size=0;perm=el;modify=20071127230206;unique=801e33; ebooks
-        type=file;size=211;perm=r;modify=20071103093626;unique=801e32; module.py
-        """
-        permdir = ''.join([x for x in perms if x not in 'arw'])
-        permfile = ''.join([x for x in perms if x not in 'celmp'])
-        if ('w' in perms) or ('a' in perms) or ('f' in perms):
-            permdir += 'c'
-        if 'd' in perms:
-            permdir += 'p'
-        type = size = perm = modify = create = unique = mode = uid = gid = ""
-        for node in listing:
-            # type + perm
-            if self.isdir(node):
-                if 'type' in facts:
-                    type = 'type=dir;'
-                if 'perm' in facts:
-                    perm = 'perm=%s;' %permdir
-            else:
-                if 'type' in facts:
-                    type = 'type=file;'
-                if 'perm' in facts:
-                    perm = 'perm=%s;' %permfile
-            if 'size' in facts:
-                size = 'size=%s;' % (node.content_length or 0L)
-            # last modification time
-            if 'modify' in facts:
-                try:
-                    st_mtime = node.write_date or 0.0
-                    if isinstance(st_mtime, basestring):
-                        st_mtime = time.strptime(st_mtime, '%Y-%m-%d %H:%M:%S')
-                    elif isinstance(st_mtime, float):
-                        st_mtime = time.localtime(st_mtime)
-                    modify = 'modify=%s;' %time.strftime("%Y%m%d%H%M%S", st_mtime)
-                except ValueError:
-                    # stat.st_mtime could fail (-1) if last mtime is too old
-                    modify = ""
-            if 'create' in facts:
-                # on Windows we can provide also the creation time
-                try:
-                    st_ctime = node.create_date or 0.0
-                    if isinstance(st_ctime, basestring):
-                        st_ctime = time.strptime(st_ctime, '%Y-%m-%d %H:%M:%S')
-                    elif isinstance(st_mtime, float):
-                        st_ctime = time.localtime(st_ctime)
-                    create = 'create=%s;' %time.strftime("%Y%m%d%H%M%S",st_ctime)
-                except ValueError:
-                    create = ""
-            # UNIX only
-            if 'unix.mode' in facts:
-                mode = 'unix.mode=%s;' %oct(node.unixperms & 0777)
-            if 'unix.uid' in facts:
-                uid = 'unix.uid=%s;' % _to_decode(node.uuser)
-            if 'unix.gid' in facts:
-                gid = 'unix.gid=%s;' % _to_decode(node.ugroup)
-            # We provide unique fact (see RFC-3659, chapter 7.5.2) on
-            # posix platforms only; we get it by mixing st_dev and
-            # st_ino values which should be enough for granting an
-            # uniqueness for the file listed.
-            # The same approach is used by pure-ftpd.
-            # Implementors who want to provide unique fact on other
-            # platforms should use some platform-specific method (e.g.
-            # on Windows NTFS filesystems MTF records could be used).
-            # if 'unique' in facts: todo
-            #    unique = "unique=%x%x;" %(st.st_dev, st.st_ino)
-            path = node.path
-            if isinstance (path, (list, tuple)):
-                path = path[-1]
-            path=_to_decode(path)
-            yield "%s%s%s%s%s%s%s%s%s %s\r\n" %(type, size, perm, modify, create,
-                                                mode, uid, gid, unique, path)
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/document_ftp/ftpserver/authorizer.py b/addons/document_ftp/ftpserver/authorizer.py
deleted file mode 100644 (file)
index e863eeb..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- encoding: utf-8 -*-
-
-class authorizer:
-    read_perms = "elr"
-    write_perms = "adfmw"
-
-    def __init__(self):
-        self.password = ''
-
-    def validate_authentication(self, username, password):
-        """Return True if the supplied username and password match the
-        stored credentials."""
-        self.password = password
-        return True
-
-    def impersonate_user(self, username, password):
-        """Impersonate another user (noop).
-
-        It is always called before accessing the filesystem.
-        By default it does nothing.  The subclass overriding this
-        method is expected to provide a mechanism to change the
-        current user.
-        """
-
-    def terminate_impersonation(self):
-        """Terminate impersonation (noop).
-
-        It is always called after having accessed the filesystem.
-        By default it does nothing.  The subclass overriding this
-        method is expected to provide a mechanism to switch back
-        to the original user.
-        """
-
-    def has_user(self, username):
-        """Whether the username exists in the virtual users table."""
-        if username=='anonymous':
-            return False
-        return True
-
-    def has_perm(self, username, perm, path=None):
-        """Whether the user has permission over path (an absolute
-        pathname of a file or a directory).
-
-        Expected perm argument is one of the following letters:
-        "elradfmw".
-        """
-        paths = path.split('/')
-        if not len(paths)>2:
-            return True
-        db_name = paths[1]
-        res = security.login(db_name, username, self.password)
-        return bool(res)
-
-    def get_perms(self, username):
-        """Return current user permissions."""
-        return 'elr'
-
-    def get_home_dir(self, username):
-        """Return the user's home directory."""
-        return '/'
-
-    def get_msg_login(self, username):
-        """Return the user's login message."""
-        return 'Welcome on OpenERP document management system.'
-
-    def get_msg_quit(self, username):
-        """Return the user's quitting message."""
-        return 'Bye.'
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/ftpserver/ftpserver.py b/addons/document_ftp/ftpserver/ftpserver.py
deleted file mode 100755 (executable)
index 1e8b8d8..0000000
+++ /dev/null
@@ -1,3047 +0,0 @@
-#!/usr/bin/env python
-# -*- encoding: utf-8 -*-
-# ftpserver.py
-#
-#  pyftpdlib is released under the MIT license, reproduced below:
-#  ======================================================================
-#  Copyright (C) 2007 Giampaolo Rodola' <g.rodola@gmail.com>
-#  Hacked by Fabien Pinckaers (C) 2008 <fp@openerp.com>
-#
-#                         All Rights Reserved
-#
-#  Permission to use, copy, modify, and distribute this software and
-#  its documentation for any purpose and without fee is hereby
-#  granted, provided that the above copyright notice appear in all
-#  copies and that both that copyright notice and this permission
-#  notice appear in supporting documentation, and that the name of
-#  Giampaolo Rodola' not be used in advertising or publicity pertaining to
-#  distribution of the software without specific, written prior
-#  permission.
-#
-#  Giampaolo Rodola' DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
-#  NO EVENT Giampaolo Rodola' BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-#  OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-#  NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-#  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#  ======================================================================
-
-
-"""pyftpdlib: RFC-959 asynchronous FTP server.
-
-pyftpdlib implements a fully functioning asynchronous FTP server as
-defined in RFC-959.  A hierarchy of classes outlined below implement
-the backend functionality for the FTPd:
-
-    [FTPServer] - the base class for the backend.
-
-    [FTPHandler] - a class representing the server-protocol-interpreter
-    (server-PI, see RFC-959). Each time a new connection occurs
-    FTPServer will create a new FTPHandler instance to handle the
-    current PI session.
-
-    [ActiveDTP], [PassiveDTP] - base classes for active/passive-DTP
-    backends.
-
-    [DTPHandler] - this class handles processing of data transfer
-    operations (server-DTP, see RFC-959).
-
-    [DummyAuthorizer] - an "authorizer" is a class handling FTPd
-    authentications and permissions. It is used inside FTPHandler class
-    to verify user passwords, to get user's home directory and to get
-    permissions when a filesystem read/write occurs. "DummyAuthorizer"
-    is the base authorizer class providing a platform independent
-    interface for managing virtual users.
-
-    [AbstractedFS] - class used to interact with the file system,
-    providing a high level, cross-platform interface compatible
-    with both Windows and UNIX style filesystems.
-
-    [AuthorizerError] - base class for authorizers exceptions.
-
-
-pyftpdlib also provides 3 different logging streams through 3 functions
-which can be overridden to allow for custom logging.
-
-    [log] - the main logger that logs the most important messages for
-    the end user regarding the FTPd.
-
-    [logline] - this function is used to log commands and responses
-    passing through the control FTP channel.
-
-    [logerror] - log traceback outputs occurring in case of errors.
-
-
-Usage example:
-
->>> from pyftpdlib import ftpserver
->>> authorizer = ftpserver.DummyAuthorizer()
->>> authorizer.add_user('user', 'password', '/home/user', perm='elradfmw')
->>> authorizer.add_anonymous('/home/nobody')
->>> ftp_handler = ftpserver.FTPHandler
->>> ftp_handler.authorizer = authorizer
->>> address = ("127.0.0.1", 21)
->>> ftpd = ftpserver.FTPServer(address, ftp_handler)
->>> ftpd.serve_forever()
-Serving FTP on 127.0.0.1:21
-[]127.0.0.1:2503 connected.
-127.0.0.1:2503 ==> 220 Ready.
-127.0.0.1:2503 <== USER anonymous
-127.0.0.1:2503 ==> 331 Username ok, send password.
-127.0.0.1:2503 <== PASS ******
-127.0.0.1:2503 ==> 230 Login successful.
-[anonymous]@127.0.0.1:2503 User anonymous logged in.
-127.0.0.1:2503 <== TYPE A
-127.0.0.1:2503 ==> 200 Type set to: ASCII.
-127.0.0.1:2503 <== PASV
-127.0.0.1:2503 ==> 227 Entering passive mode (127,0,0,1,9,201).
-127.0.0.1:2503 <== LIST
-127.0.0.1:2503 ==> 150 File status okay. About to open data connection.
-[anonymous]@127.0.0.1:2503 OK LIST "/". Transfer starting.
-127.0.0.1:2503 ==> 226 Transfer complete.
-[anonymous]@127.0.0.1:2503 Transfer complete. 706 bytes transmitted.
-127.0.0.1:2503 <== QUIT
-127.0.0.1:2503 ==> 221 Goodbye.
-[anonymous]@127.0.0.1:2503 Disconnected.
-"""
-
-
-import asyncore
-import asynchat
-import socket
-import os
-import sys
-import traceback
-import errno
-import time
-import glob
-import fnmatch
-import tempfile
-import warnings
-import random
-import stat
-from collections import deque
-from tarfile import filemode
-
-LOG_ACTIVE = True
-
-__all__ = ['proto_cmds', 'Error', 'log', 'logline', 'logerror', 'DummyAuthorizer',
-           'FTPHandler', 'FTPServer', 'PassiveDTP', 'ActiveDTP', 'DTPHandler',
-           'FileProducer', 'IteratorProducer', 'BufferedIteratorProducer',
-           'AbstractedFS',]
-
-
-__pname__   = 'Python FTP server library (pyftpdlib)'
-__ver__     = '0.4.0'
-__date__    = '2008-05-16'
-__author__  = "Giampaolo Rodola' <g.rodola@gmail.com>"
-__web__     = 'http://code.google.com/p/pyftpdlib/'
-
-
-proto_cmds = {
-    'ABOR': 'Syntax: ABOR (abort transfer).',
-    'ALLO': 'Syntax: ALLO <SP> bytes (obsolete; allocate storage).',
-    'APPE': 'Syntax: APPE <SP> file-name (append data to an existent file).',
-    'CDUP': 'Syntax: CDUP (go to parent directory).',
-    'CWD' : 'Syntax: CWD <SP> dir-name (change current working directory).',
-    'DELE': 'Syntax: DELE <SP> file-name (delete file).',
-    'EPRT': 'Syntax: EPRT <SP> |proto|ip|port| (set server in extended active mode).',
-    'EPSV': 'Syntax: EPSV [<SP> proto/"ALL"] (set server in extended passive mode).',
-    'FEAT': 'Syntax: FEAT (list all new features supported).',
-    'HELP': 'Syntax: HELP [<SP> cmd] (show help).',
-    'LIST': 'Syntax: LIST [<SP> path-name] (list files).',
-    'MDTM': 'Syntax: MDTM <SP> file-name (get last modification time).',
-    'MLSD': 'Syntax: MLSD [<SP> dir-name] (list files in a machine-processable form)',
-    'MLST': 'Syntax: MLST [<SP> path-name] (show a path in a machine-processable form)',
-    'MODE': 'Syntax: MODE <SP> mode (obsolete; set data transfer mode).',
-    'MKD' : 'Syntax: MDK <SP> dir-name (create directory).',
-    'NLST': 'Syntax: NLST [<SP> path-name] (list files in a compact form).',
-    'NOOP': 'Syntax: NOOP (just do nothing).',
-    'OPTS': 'Syntax: OPTS <SP> ftp-command [<SP> option] (specify options for FTP commands)',
-    'PASS': 'Syntax: PASS <SP> user-name (set user password).',
-    'PASV': 'Syntax: PASV (set server in passive mode).',
-    'PORT': 'Syntax: PORT <sp> h1,h2,h3,h4,p1,p2 (set server in active mode).',
-    'PWD' : 'Syntax: PWD (get current working directory).',
-    'QUIT': 'Syntax: QUIT (quit current session).',
-    'REIN': 'Syntax: REIN (reinitialize / flush account).',
-    'REST': 'Syntax: REST <SP> marker (restart file position).',
-    'RETR': 'Syntax: RETR <SP> file-name (retrieve a file).',
-    'RMD' : 'Syntax: RMD <SP> dir-name (remove directory).',
-    'RNFR': 'Syntax: RNFR <SP> file-name (file renaming (source name)).',
-    'RNTO': 'Syntax: RNTO <SP> file-name (file renaming (destination name)).',
-    'SIZE': 'Syntax: HELP <SP> file-name (get file size).',
-    'STAT': 'Syntax: STAT [<SP> path name] (status information [list files]).',
-    'STOR': 'Syntax: STOR <SP> file-name (store a file).',
-    'STOU': 'Syntax: STOU [<SP> file-name] (store a file with a unique name).',
-    'STRU': 'Syntax: STRU <SP> type (obsolete; set file structure).',
-    'SYST': 'Syntax: SYST (get operating system type).',
-    'TYPE': 'Syntax: TYPE <SP> [A | I] (set transfer type).',
-    'USER': 'Syntax: USER <SP> user-name (set username).',
-    'XCUP': 'Syntax: XCUP (obsolete; go to parent directory).',
-    'XCWD': 'Syntax: XCWD <SP> dir-name (obsolete; change current directory).',
-    'XMKD': 'Syntax: XMDK <SP> dir-name (obsolete; create directory).',
-    'XPWD': 'Syntax: XPWD (obsolete; get current dir).',
-    'XRMD': 'Syntax: XRMD <SP> dir-name (obsolete; remove directory).',
-    }
-
-
-def _strerror(err):
-    """A wrap around os.strerror() which may be not available on all
-    platforms (e.g. pythonCE).
-
-     - (instance) err: an EnvironmentError or derived class instance.
-    """
-    if hasattr(os, 'strerror'):
-        return os.strerror(err.errno)
-    else:
-        return err.strerror
-
-def _to_unicode(s):
-    try:
-        return s.decode('utf-8')
-    except UnicodeError:
-        pass
-    try:
-        return s.decode('latin')
-    except UnicodeError:
-        pass
-    try:
-        return s.encode('ascii')
-    except UnicodeError:
-        return s
-
-def _to_decode(s):
-    try:
-        return s.encode('utf-8')
-    except UnicodeError:
-        pass
-    try:
-        return s.encode('latin')
-    except UnicodeError:
-        pass
-    try:
-        return s.decode('ascii')
-    except UnicodeError:
-        return s
-
-# --- library defined exceptions
-
-class Error(Exception):
-    """Base class for module exceptions."""
-
-class AuthorizerError(Error):
-    """Base class for authorizer exceptions."""
-
-
-# --- loggers
-
-def log(msg):
-    """Log messages intended for the end user."""
-    if LOG_ACTIVE:
-        print msg
-
-def logline(msg):
-    """Log commands and responses passing through the command channel."""
-    if LOG_ACTIVE:
-        print msg
-
-def logerror(msg):
-    """Log traceback outputs occurring in case of errors."""
-    sys.stderr.write(str(msg) + '\n')
-    sys.stderr.flush()
-
-
-# --- authorizers
-
-class DummyAuthorizer:
-    """Basic "dummy" authorizer class, suitable for subclassing to
-    create your own custom authorizers.
-
-    An "authorizer" is a class handling authentications and permissions
-    of the FTP server.  It is used inside FTPHandler class for verifying
-    user's password, getting users home directory, checking user
-    permissions when a file read/write event occurs and changing user
-    before accessing the filesystem.
-
-    DummyAuthorizer is the base authorizer, providing a platform
-    independent interface for managing "virtual" FTP users. System
-    dependent authorizers can by written by subclassing this base
-    class and overriding appropriate methods as necessary.
-    """
-
-    read_perms = "elr"
-    write_perms = "adfmw"
-
-    def __init__(self):
-        self.user_table = {}
-
-    def add_user(self, username, password, homedir, perm='elr',
-                    msg_login="Login successful.", msg_quit="Goodbye."):
-        """Add a user to the virtual users table.
-
-        AuthorizerError exceptions raised on error conditions such as
-        invalid permissions, missing home directory or duplicate usernames.
-
-        Optional perm argument is a string referencing the user's
-        permissions explained below:
-
-        Read permissions:
-         - "e" = change directory (CWD command)
-         - "l" = list files (LIST, NLST, MLSD commands)
-         - "r" = retrieve file from the server (RETR command)
-
-        Write permissions:
-         - "a" = append data to an existing file (APPE command)
-         - "d" = delete file or directory (DELE, RMD commands)
-         - "f" = rename file or directory (RNFR, RNTO commands)
-         - "m" = create directory (MKD command)
-         - "w" = store a file to the server (STOR, STOU commands)
-
-        Optional msg_login and msg_quit arguments can be specified to
-        provide customized response strings when user log-in and quit.
-        """
-        if self.has_user(username):
-            raise AuthorizerError('User "%s" already exists.' %username)
-        homedir = os.path.realpath(homedir)
-        if not os.path.isdir(homedir):
-            raise AuthorizerError('No such directory: "%s".' %homedir)
-        for p in perm:
-            if p not in 'elradfmw':
-                raise AuthorizerError('No such permission: "%s".' %p)
-        for p in perm:
-            if (p in self.write_perms) and (username == 'anonymous'):
-                warnings.warn("Write permissions are assigned to anonymous user.",
-                              RuntimeWarning)
-                break
-        dic = {'pwd': str(password),
-               'home': homedir,
-               'perm': perm,
-               'msg_login': str(msg_login),
-               'msg_quit': str(msg_quit)
-               }
-        self.user_table[username] = dic
-
-    def add_anonymous(self, homedir, **kwargs):
-        """Add an anonymous user to the virtual users table.
-
-        AuthorizerError exception raised on error conditions such as
-        invalid permissions, missing home directory, or duplicate
-        anonymous users.
-
-        The keyword arguments in kwargs are the same expected by
-        add_user method: "perm", "msg_login" and "msg_quit".
-
-        The optional "perm" keyword argument is a string defaulting to
-        "elr" referencing "read-only" anonymous user's permissions.
-
-        Using write permission values ("adfmw") results in a
-        RuntimeWarning.
-        """
-        DummyAuthorizer.add_user(self, 'anonymous', '', homedir, **kwargs)
-
-    def remove_user(self, username):
-        """Remove a user from the virtual users table."""
-        del self.user_table[username]
-
-    def validate_authentication(self, username, password):
-        """Return True if the supplied username and password match the
-        stored credentials."""
-        return self.user_table[username]['pwd'] == password
-
-    def impersonate_user(self, username, password):
-        """Impersonate another user (noop).
-
-        It is always called before accessing the filesystem.
-        By default it does nothing.  The subclass overriding this
-        method is expected to provide a mechanism to change the
-        current user.
-        """
-
-    def terminate_impersonation(self):
-        """Terminate impersonation (noop).
-
-        It is always called after having accessed the filesystem.
-        By default it does nothing.  The subclass overriding this
-        method is expected to provide a mechanism to switch back
-        to the original user.
-        """
-
-    def has_user(self, username):
-        """Whether the username exists in the virtual users table."""
-        return username in self.user_table
-
-    def has_perm(self, username, perm, path=None):
-        """Whether the user has permission over path (an absolute
-        pathname of a file or a directory).
-
-        Expected perm argument is one of the following letters:
-        "elradfmw".
-        """
-        return perm in self.user_table[username]['perm']
-
-    def get_perms(self, username):
-        """Return current user permissions."""
-        return self.user_table[username]['perm']
-
-    def get_home_dir(self, username):
-        """Return the user's home directory."""
-        return self.user_table[username]['home']
-
-    def get_msg_login(self, username):
-        """Return the user's login message."""
-        return self.user_table[username]['msg_login']
-
-    def get_msg_quit(self, username):
-        """Return the user's quitting message."""
-        return self.user_table[username]['msg_quit']
-
-
-# --- DTP classes
-
-class PassiveDTP(asyncore.dispatcher):
-    """This class is an asyncore.disptacher subclass.  It creates a
-    socket listening on a local port, dispatching the resultant
-    connection to DTPHandler.
-    """
-
-    def __init__(self, cmd_channel, extmode=False):
-        """Initialize the passive data server.
-
-         - (instance) cmd_channel: the command channel class instance.
-         - (bool) extmode: wheter use extended passive mode response type.
-        """
-        asyncore.dispatcher.__init__(self)
-        self.cmd_channel = cmd_channel
-
-        ip = self.cmd_channel.getsockname()[0]
-        self.create_socket(self.cmd_channel.af, socket.SOCK_STREAM)
-
-        if not self.cmd_channel.passive_ports:
-        # By using 0 as port number value we let kernel choose a free
-        # unprivileged random port.
-            self.bind((ip, 0))
-        else:
-            ports = list(self.cmd_channel.passive_ports)
-            while ports:
-                port = ports.pop(random.randint(0, len(ports) -1))
-                try:
-                    self.bind((ip, port))
-                except socket.error, why:
-                    if why[0] == errno.EADDRINUSE:  # port already in use
-                        if ports:
-                            continue
-                        # If cannot use one of the ports in the configured
-                        # range we'll use a kernel-assigned port, and log
-                        # a message reporting the issue.
-                        # By using 0 as port number value we let kernel
-                        # choose a free unprivileged random port.
-                        else:
-                            self.bind((ip, 0))
-                            self.cmd_channel.log(
-                                "Can't find a valid passive port in the "
-                                "configured range. A random kernel-assigned "
-                                "port will be used."
-                                )
-                    else:
-                        raise
-                else:
-                    break
-        self.listen(5)
-        port = self.socket.getsockname()[1]
-        if not extmode:
-            if self.cmd_channel.masquerade_address:
-                ip = self.cmd_channel.masquerade_address
-            # The format of 227 response in not standardized.
-            # This is the most expected:
-            self.cmd_channel.respond('227 Entering passive mode (%s,%d,%d).' %(
-                    ip.replace('.', ','), port / 256, port % 256))
-        else:
-            self.cmd_channel.respond('229 Entering extended passive mode '
-                                     '(|||%d|).' %port)
-
-    # --- connection / overridden
-
-    def handle_accept(self):
-        """Called when remote client initiates a connection."""
-        sock, addr = self.accept()
-
-        # Check the origin of data connection.  If not expressively
-        # configured we drop the incoming data connection if remote
-        # IP address does not match the client's IP address.
-        if (self.cmd_channel.remote_ip != addr[0]):
-            if not self.cmd_channel.permit_foreign_addresses:
-                try:
-                    sock.close()
-                except socket.error:
-                    pass
-                msg = 'Rejected data connection from foreign address %s:%s.' \
-                        %(addr[0], addr[1])
-                self.cmd_channel.respond("425 %s" %msg)
-                self.cmd_channel.log(msg)
-                # do not close listening socket: it couldn't be client's blame
-                return
-            else:
-                # site-to-site FTP allowed
-                msg = 'Established data connection with foreign address %s:%s.'\
-                        %(addr[0], addr[1])
-                self.cmd_channel.log(msg)
-        # Immediately close the current channel (we accept only one
-        # connection at time) and avoid running out of max connections
-        # limit.
-        self.close()
-        # delegate such connection to DTP handler
-        handler = self.cmd_channel.dtp_handler(sock, self.cmd_channel)
-        self.cmd_channel.data_channel = handler
-        self.cmd_channel.on_dtp_connection()
-
-    def writable(self):
-        return 0
-
-    def handle_error(self):
-        """Called to handle any uncaught exceptions."""
-        try:
-            raise
-        except (KeyboardInterrupt, SystemExit, asyncore.ExitNow):
-            raise
-        logerror(traceback.format_exc())
-        self.close()
-
-    def handle_close(self):
-        """Called on closing the data connection."""
-        self.close()
-
-
-class ActiveDTP(asyncore.dispatcher):
-    """This class is an asyncore.disptacher subclass. It creates a
-    socket resulting from the connection to a remote user-port,
-    dispatching it to DTPHandler.
-    """
-
-    def __init__(self, ip, port, cmd_channel):
-        """Initialize the active data channel attemping to connect
-        to remote data socket.
-
-         - (str) ip: the remote IP address.
-         - (int) port: the remote port.
-         - (instance) cmd_channel: the command channel class instance.
-        """
-        asyncore.dispatcher.__init__(self)
-        self.cmd_channel = cmd_channel
-        self.create_socket(self.cmd_channel.af, socket.SOCK_STREAM)
-        try:
-            self.connect((ip, port))
-        except socket.gaierror:
-            self.cmd_channel.respond("425 Cannot connect to specified address.")
-            self.close()
-
-    # --- connection / overridden
-
-    def handle_write(self):
-        """NOOP, must be overridden to prevent unhandled write event."""
-
-    def handle_connect(self):
-        """Called when connection is established."""
-        self.cmd_channel.respond('200 Active data connection has been established.')
-        # delegate such connection to DTP handler
-        handler = self.cmd_channel.dtp_handler(self.socket, self.cmd_channel)
-        self.cmd_channel.data_channel = handler
-        self.cmd_channel.on_dtp_connection()
-
-    def handle_expt(self):
-        self.cmd_channel.respond("425 Cannot connect to specified address.")
-        self.close()
-
-    def handle_error(self):
-        """Called to handle any uncaught exceptions."""
-        try:
-            raise
-        except (KeyboardInterrupt, SystemExit, asyncore.ExitNow):
-            raise
-        except socket.error:
-            pass
-        except:
-            logerror(traceback.format_exc())
-        self.cmd_channel.respond("425 Cannot connect to specified address.")
-        self.close()
-
-class DTPHandler(asyncore.dispatcher):
-    """Class handling server-data-transfer-process (server-DTP, see
-    RFC-959) managing data-transfer operations involving sending
-    and receiving data.
-
-    Instance attributes defined in this class, initialized when
-    channel is opened:
-
-     - (instance) cmd_channel: the command channel class instance.
-     - (file) file_obj: the file transferred (if any).
-     - (bool) receive: True if channel is used for receiving data.
-     - (bool) transfer_finished: True if transfer completed successfully.
-     - (int) tot_bytes_sent: the total bytes sent.
-     - (int) tot_bytes_received: the total bytes received.
-
-    DTPHandler implementation note:
-
-    When a producer is consumed and close_when_done() has been called
-    previously, refill_buffer() erroneously calls close() instead of
-    handle_close() - (see: http://bugs.python.org/issue1740572)
-
-    To avoid this problem DTPHandler is implemented as a subclass of
-    asyncore.dispatcher instead of asynchat.async_chat.
-    This implementation follows the same approach that asynchat module
-    should use in Python 2.6.
-
-    The most important change in the implementation is related to
-    producer_fifo, which is a pure deque object instead of a
-    producer_fifo instance.
-
-    Since we don't want to break backward compatibily with older python
-    versions (deque has been introduced in Python 2.4), if deque is not
-    available we use a list instead.
-    """
-
-    ac_in_buffer_size = 8192
-    ac_out_buffer_size  = 8192
-
-    def __init__(self, sock_obj, cmd_channel):
-        """Initialize the command channel.
-
-         - (instance) sock_obj: the socket object instance of the newly
-            established connection.
-         - (instance) cmd_channel: the command channel class instance.
-        """
-        asyncore.dispatcher.__init__(self, sock_obj)
-        # we toss the use of the asynchat's "simple producer" and
-        # replace it  with a pure deque, which the original fifo
-        # was a wrapping of
-        self.producer_fifo = deque()
-
-        self.cmd_channel = cmd_channel
-        self.file_obj = None
-        self.receive = False
-        self.transfer_finished = False
-        self.tot_bytes_sent = 0
-        self.tot_bytes_received = 0
-        self.data_wrapper = lambda x: x
-
-    # --- utility methods
-
-    def enable_receiving(self, type):
-        """Enable receiving of data over the channel. Depending on the
-        TYPE currently in use it creates an appropriate wrapper for the
-        incoming data.
-
-         - (str) type: current transfer type, 'a' (ASCII) or 'i' (binary).
-        """
-        if type == 'a':
-            self.data_wrapper = lambda x: x.replace('\r\n', os.linesep)
-        elif type == 'i':
-            self.data_wrapper = lambda x: x
-        else:
-            raise TypeError, "Unsupported type."
-        self.receive = True
-
-    def get_transmitted_bytes(self):
-        "Return the number of transmitted bytes."
-        return self.tot_bytes_sent + self.tot_bytes_received
-
-    def transfer_in_progress(self):
-        "Return True if a transfer is in progress, else False."
-        return self.get_transmitted_bytes() != 0
-
-    # --- connection
-
-    def handle_read(self):
-        """Called when there is data waiting to be read."""
-        try:
-            chunk = self.recv(self.ac_in_buffer_size)
-        except socket.error:
-            self.handle_error()
-        else:
-            self.tot_bytes_received += len(chunk)
-            if not chunk:
-                self.transfer_finished = True
-                #self.close()  # <-- asyncore.recv() already do that...
-                return
-            # while we're writing on the file an exception could occur
-            # in case  that filesystem gets full;  if this happens we
-            # let handle_error() method handle this exception, providing
-            # a detailed error message.
-            self.file_obj.write(self.data_wrapper(chunk))
-
-    def handle_write(self):
-        """Called when data is ready to be written, initiates send."""
-        self.initiate_send()
-
-    def push(self, data):
-        """Push data onto the deque and initiate send."""
-        sabs = self.ac_out_buffer_size
-        if len(data) > sabs:
-            for i in xrange(0, len(data), sabs):
-                self.producer_fifo.append(data[i:i+sabs])
-        else:
-            self.producer_fifo.append(data)
-        self.initiate_send()
-
-    def push_with_producer(self, producer):
-        """Push data using a producer and initiate send."""
-        self.producer_fifo.append(producer)
-        self.initiate_send()
-
-    def readable(self):
-        """Predicate for inclusion in the readable for select()."""
-        return self.receive
-
-    def writable(self):
-        """Predicate for inclusion in the writable for select()."""
-        return self.producer_fifo or (not self.connected)
-
-    def close_when_done(self):
-        """Automatically close this channel once the outgoing queue is empty."""
-        self.producer_fifo.append(None)
-
-    def initiate_send(self):
-        """Attempt to send data in fifo order."""
-        while self.producer_fifo and self.connected:
-            first = self.producer_fifo[0]
-            # handle empty string/buffer or None entry
-            if not first:
-                del self.producer_fifo[0]
-                if first is None:
-                    self.transfer_finished = True
-                    self.handle_close()
-                    return
-
-            # handle classic producer behavior
-            obs = self.ac_out_buffer_size
-            try:
-                data = buffer(first, 0, obs)
-            except TypeError:
-                data = first.more()
-                if data:
-                    self.producer_fifo.appendleft(data)
-                else:
-                    del self.producer_fifo[0]
-                continue
-
-            # send the data
-            try:
-                num_sent = self.send(data)
-            except socket.error:
-                self.handle_error()
-                return
-
-            if num_sent:
-                self.tot_bytes_sent += num_sent
-                if num_sent < len(data) or obs < len(first):
-                    self.producer_fifo[0] = first[num_sent:]
-                else:
-                    del self.producer_fifo[0]
-            # we tried to send some actual data
-            return
-
-    def handle_expt(self):
-        """Called on "exceptional" data events."""
-        self.cmd_channel.respond("426 Connection error; transfer aborted.")
-        self.close()
-
-    def handle_error(self):
-        """Called when an exception is raised and not otherwise handled."""
-        try:
-            raise
-        except (KeyboardInterrupt, SystemExit, asyncore.ExitNow):
-            raise
-        except socket.error, err:
-            # fix around asyncore bug (http://bugs.python.org/issue1736101)
-            if err[0] in (errno.ECONNRESET, errno.ENOTCONN, errno.ESHUTDOWN, \
-                          errno.ECONNABORTED):
-                self.handle_close()
-                return
-            else:
-                error = str(err[1])
-        # an error could occur in case we fail reading / writing
-        # from / to file (e.g. file system gets full)
-        except EnvironmentError, err:
-            error = _strerror(err)
-        except:
-            # some other exception occurred;  we don't want to provide
-            # confidential error messages
-            logerror(traceback.format_exc())
-            error = "Internal error."
-        self.cmd_channel.respond("426 %s; transfer aborted." %error)
-        self.close()
-
-    def handle_close(self):
-        """Called when the socket is closed."""
-        # If we used channel for receiving we assume that transfer is
-        # finished when client close connection , if we used channel
-        # for sending we have to check that all data has been sent
-        # (responding with 226) or not (responding with 426).
-        if self.receive:
-            self.transfer_finished = True
-            action = 'received'
-        else:
-            action = 'sent'
-        if self.transfer_finished:
-            self.cmd_channel.respond("226 Transfer complete.")
-            if self.file_obj:
-                fname = self.file_obj.name
-                self.cmd_channel.log('"%s" %s.' %(fname, action))
-        else:
-            tot_bytes = self.get_transmitted_bytes()
-            msg = "Transfer aborted; %d bytes transmitted." %tot_bytes
-            self.cmd_channel.respond("426 " + msg)
-            self.cmd_channel.log(msg)
-        self.close()
-
-    def close(self):
-        """Close the data channel, first attempting to close any remaining
-        file handles."""
-        if self.file_obj and not self.file_obj.closed:
-            self.file_obj.close()
-        asyncore.dispatcher.close(self)
-        self.cmd_channel.on_dtp_close()
-
-
-# --- producers
-
-class FileProducer:
-    """Producer wrapper for file[-like] objects."""
-
-    buffer_size = 65536
-
-    def __init__(self, file, type):
-        """Initialize the producer with a data_wrapper appropriate to TYPE.
-
-         - (file) file: the file[-like] object.
-         - (str) type: the current TYPE, 'a' (ASCII) or 'i' (binary).
-        """
-        self.done = False
-        self.file = file
-        if type == 'a':
-            self.data_wrapper = lambda x: x.replace(os.linesep, '\r\n')
-        elif type == 'i':
-            self.data_wrapper = lambda x: x
-        else:
-            raise TypeError, "Unsupported type."
-
-    def more(self):
-        """Attempt a chunk of data of size self.buffer_size."""
-        if self.done:
-            return ''
-        data = self.data_wrapper(self.file.read(self.buffer_size))
-        if not data:
-            self.done = True
-            if not self.file.closed:
-                self.file.close()
-        return data
-
-
-class IteratorProducer:
-    """Producer for iterator objects."""
-
-    def __init__(self, iterator):
-        self.iterator = iterator
-
-    def more(self):
-        """Attempt a chunk of data from iterator by calling its next()
-        method.
-        """
-        try:
-            return self.iterator.next()
-        except StopIteration:
-            return ''
-
-
-class BufferedIteratorProducer:
-    """Producer for iterator objects with buffer capabilities."""
-    # how many times iterator.next() will be called before
-    # returning some data
-    loops = 20
-
-    def __init__(self, iterator):
-        self.iterator = iterator
-
-    def more(self):
-        """Attempt a chunk of data from iterator by calling
-        its next() method different times.
-        """
-        buffer = []
-        for x in xrange(self.loops):
-            try:
-                buffer.append(self.iterator.next())
-            except StopIteration:
-                break
-        return ''.join(buffer)
-
-
-# --- filesystem
-
-class AbstractedFS:
-    """A class used to interact with the file system, providing a high
-    level, cross-platform interface compatible with both Windows and
-    UNIX style filesystems.
-
-    It provides some utility methods and some wraps around operations
-    involved in file creation and file system operations like moving
-    files or removing directories.
-
-    Instance attributes:
-     - (str) root: the user home directory.
-     - (str) cwd: the current working directory.
-     - (str) rnfr: source file to be renamed.
-    """
-
-    def __init__(self):
-        self.root = None
-        self.cwd = '/'
-        self.rnfr = None
-
-    # --- Pathname / conversion utilities
-
-    def ftpnorm(self, ftppath):
-        """Normalize a "virtual" ftp pathname (tipically the raw string
-        coming from client) depending on the current working directory.
-
-        Example (having "/foo" as current working directory):
-        'x' -> '/foo/x'
-
-        Note: directory separators are system independent ("/").
-        Pathname returned is always absolutized.
-        """
-        if os.path.isabs(ftppath):
-            p = os.path.normpath(ftppath)
-        else:
-            p = os.path.normpath(os.path.join(self.cwd, ftppath))
-        # normalize string in a standard web-path notation having '/'
-        # as separator.
-        p = p.replace("\\", "/")
-        # os.path.normpath supports UNC paths (e.g. "//a/b/c") but we
-        # don't need them.  In case we get an UNC path we collapse
-        # redundant separators appearing at the beginning of the string
-        while p[:2] == '//':
-            p = p[1:]
-        # Anti path traversal: don't trust user input, in the event
-        # that self.cwd is not absolute, return "/" as a safety measure.
-        # This is for extra protection, maybe not really necessary.
-        if not os.path.isabs(p):
-            p = "/"
-        return p
-
-    def ftp2fs(self, ftppath):
-        """Translate a "virtual" ftp pathname (tipically the raw string
-        coming from client) into equivalent absolute "real" filesystem
-        pathname.
-
-        Example (having "/home/user" as root directory):
-        'x' -> '/home/user/x'
-
-        Note: directory separators are system dependent.
-        """
-        # as far as I know, it should always be path traversal safe...
-        if os.path.normpath(self.root) == os.sep:
-            return os.path.normpath(self.ftpnorm(ftppath))
-        else:
-            p = self.ftpnorm(ftppath)[1:]
-            return os.path.normpath(os.path.join(self.root, p))
-
-    def fs2ftp(self, fspath):
-        """Translate a "real" filesystem pathname into equivalent
-        absolute "virtual" ftp pathname depending on the user's
-        root directory.
-
-        Example (having "/home/user" as root directory):
-        '/home/user/x' -> '/x'
-
-        As for ftpnorm, directory separators are system independent
-        ("/") and pathname returned is always absolutized.
-
-        On invalid pathnames escaping from user's root directory
-        (e.g. "/home" when root is "/home/user") always return "/".
-        """
-        if os.path.isabs(fspath):
-            p = os.path.normpath(fspath)
-        else:
-            p = os.path.normpath(os.path.join(self.root, fspath))
-        if not self.validpath(p):
-            return '/'
-        p = p.replace(os.sep, "/")
-        p = p[len(self.root):]
-        if not p.startswith('/'):
-            p = '/' + p
-        return p
-
-    # alias for backward compatibility with 0.2.0
-    normalize = ftpnorm
-    translate = ftp2fs
-
-    def validpath(self, path):
-        """Check whether the path belongs to user's home directory.
-        Expected argument is a "real" filesystem pathname.
-
-        If path is a symbolic link it is resolved to check its real
-        destination.
-
-        Pathnames escaping from user's root directory are considered
-        not valid.
-        """
-        root = self.realpath(self.root)
-        path = self.realpath(path)
-        if not self.root.endswith(os.sep):
-            root = self.root + os.sep
-        if not path.endswith(os.sep):
-            path = path + os.sep
-        if path[0:len(root)] == root:
-            return True
-        return False
-
-    # --- Wrapper methods around open() and tempfile.mkstemp
-
-    def open(self, filename, mode):
-        """Open a file returning its handler."""
-        return open(filename, mode)
-
-    def mkstemp(self, suffix='', prefix='', dir=None, mode='wb'):
-        """A wrap around tempfile.mkstemp creating a file with a unique
-        name.  Unlike mkstemp it returns an object with a file-like
-        interface.
-        """
-        class FileWrapper:
-            def __init__(self, fd, name):
-                self.file = fd
-                self.name = name
-            def __getattr__(self, attr):
-                return getattr(self.file, attr)
-
-        text = not 'b' in mode
-        # max number of tries to find out a unique file name
-        tempfile.TMP_MAX = 50
-        fd, name = tempfile.mkstemp(suffix, prefix, dir, text=text)
-        file = os.fdopen(fd, mode)
-        return FileWrapper(file, name)
-
-    # --- Wrapper methods around os.*
-
-    def chdir(self, path):
-        """Change the current directory."""
-        # temporarily join the specified directory to see if we have
-        # permissions to do so
-        basedir = os.getcwd()
-        try:
-            os.chdir(path)
-        except os.error:
-            raise
-        else:
-            os.chdir(basedir)
-            self.cwd = self.fs2ftp(path)
-
-    def mkdir(self, path, basename):
-        """Create the specified directory."""
-        os.mkdir(os.path.join(path, basename))
-
-    def listdir(self, path):
-        """List the content of a directory."""
-        return os.listdir(path)
-
-    def rmdir(self, path):
-        """Remove the specified directory."""
-        os.rmdir(path)
-
-    def remove(self, path):
-        """Remove the specified file."""
-        os.remove(path)
-
-    def rename(self, src, dst):
-        """Rename the specified src file to the dst filename."""
-        os.rename(src, dst)
-
-    def stat(self, path):
-        """Perform a stat() system call on the given path."""
-        return os.stat(path)
-
-    def lstat(self, path):
-        """Like stat but does not follow symbolic links."""
-        return os.lstat(path)
-
-    if not hasattr(os, 'lstat'):
-        lstat = stat
-
-    # --- Wrapper methods around os.path.*
-
-    def isfile(self, path):
-        """Return True if path is a file."""
-        return os.path.isfile(path)
-
-    def islink(self, path):
-        """Return True if path is a symbolic link."""
-        return os.path.islink(path)
-
-    def isdir(self, path):
-        """Return True if path is a directory."""
-        return os.path.isdir(path)
-
-    def getsize(self, path):
-        """Return the size of the specified file in bytes."""
-        return os.path.getsize(path)
-
-    def getmtime(self, path):
-        """Return the last modified time as a number of seconds since
-        the epoch."""
-        return os.path.getmtime(path)
-
-    def realpath(self, path):
-        """Return the canonical version of path eliminating any
-        symbolic links encountered in the path (if they are
-        supported by the operating system).
-        """
-        return os.path.realpath(path)
-
-    def lexists(self, path):
-        """Return True if path refers to an existing path, including
-        a broken or circular symbolic link.
-        """
-        if hasattr(os.path, 'lexists'):
-            return os.path.lexists(path)
-        # grant backward compatibility with python 2.3
-        elif hasattr(os, 'lstat'):
-            try:
-                os.lstat(path)
-            except os.error:
-                return False
-            return True
-        # fallback
-        else:
-            return os.path.exists(path)
-
-    exists = lexists  # alias for backward compatibility with 0.2.0
-
-    def glob1(self, dirname, pattern):
-        """Return a list of files matching a dirname pattern
-        non-recursively.
-
-        Unlike glob.glob1 raises exception if os.listdir() fails.
-        """
-        names = self.listdir(dirname)
-        if pattern[0] != '.':
-            names = filter(lambda x: x[0] != '.', names)
-        return fnmatch.filter(names, pattern)
-
-    # --- Listing utilities
-
-    # note: the following operations are no more blocking
-
-    def get_list_dir(self, datacr):
-        """"Return an iterator object that yields a directory listing
-        in a form suitable for LIST command.
-        """
-        raise DeprecationWarning()
-
-    def get_stat_dir(self, rawline):
-        """Return an iterator object that yields a list of files
-        matching a dirname pattern non-recursively in a form
-        suitable for STAT command.
-
-         - (str) rawline: the raw string passed by client as command
-         argument.
-        """
-        ftppath = self.ftpnorm(rawline)
-        if not glob.has_magic(ftppath):
-            return self.get_list_dir(self.ftp2fs(rawline))
-        else:
-            basedir, basename = os.path.split(ftppath)
-            if glob.has_magic(basedir):
-                return iter(['Directory recursion not supported.\r\n'])
-            else:
-                basedir = self.ftp2fs(basedir)
-                listing = self.glob1(basedir, basename)
-                if listing:
-                    listing.sort()
-                return self.format_list(basedir, listing)
-
-    def format_list(self, basedir, listing, ignore_err=True):
-        """Return an iterator object that yields the entries of given
-        directory emulating the "/bin/ls -lA" UNIX command output.
-
-         - (str) basedir: the absolute dirname.
-         - (list) listing: the names of the entries in basedir
-         - (bool) ignore_err: when False raise exception if os.lstat()
-         call fails.
-
-        On platforms which do not support the pwd and grp modules (such
-        as Windows), ownership is printed as "owner" and "group" as a
-        default, and number of hard links is always "1". On UNIX
-        systems, the actual owner, group, and number of links are
-        printed.
-
-        This is how output appears to client:
-
-        -rw-rw-rw-   1 owner   group    7045120 Sep 02  3:47 music.mp3
-        drwxrwxrwx   1 owner   group          0 Aug 31 18:50 e-books
-        -rw-rw-rw-   1 owner   group        380 Sep 02  3:40 module.py
-        """
-        for basename in listing:
-            file = os.path.join(basedir, basename)
-            try:
-                st = self.lstat(file)
-            except os.error:
-                if ignore_err:
-                    continue
-                raise
-            perms = filemode(st.st_mode)  # permissions
-            nlinks = st.st_nlink  # number of links to inode
-            if not nlinks:  # non-posix system, let's use a bogus value
-                nlinks = 1
-            size = st.st_size  # file size
-            uname = st.st_uid or "owner"
-            gname = st.st_gid or "group"
-
-            # stat.st_mtime could fail (-1) if last mtime is too old
-            # in which case we return the local time as last mtime
-            try:
-                mtime = time.strftime("%b %d %H:%M", time.localtime(st.st_mtime))
-            except ValueError:
-                mtime = time.strftime("%b %d %H:%M")
-            # if the file is a symlink, resolve it, e.g. "symlink -> realfile"
-            if stat.S_ISLNK(st.st_mode):
-                basename = basename + " -> " + os.readlink(file)
-
-            # formatting is matched with proftpd ls output
-            yield "%s %3s %-8s %-8s %8s %s %s\r\n" %(perms, nlinks, uname, gname,
-                                                     size, mtime, basename)
-
-    def format_mlsx(self, basedir, listing, perms, facts, ignore_err=True):
-        """Return an iterator object that yields the entries of a given
-        directory or of a single file in a form suitable with MLSD and
-        MLST commands.
-
-        Every entry includes a list of "facts" referring the listed
-        element.  See RFC-3659, chapter 7, to see what every single
-        fact stands for.
-
-         - (str) basedir: the absolute dirname.
-         - (list) listing: the names of the entries in basedir
-         - (str) perms: the string referencing the user permissions.
-         - (str) facts: the list of "facts" to be returned.
-         - (bool) ignore_err: when False raise exception if os.stat()
-         call fails.
-
-        Note that "facts" returned may change depending on the platform
-        and on what user specified by using the OPTS command.
-
-        This is how output could appear to the client issuing
-        a MLSD request:
-
-        type=file;size=156;perm=r;modify=20071029155301;unique=801cd2; music.mp3
-        type=dir;size=0;perm=el;modify=20071127230206;unique=801e33; ebooks
-        type=file;size=211;perm=r;modify=20071103093626;unique=801e32; module.py
-        """
-        permdir = ''.join([x for x in perms if x not in 'arw'])
-        permfile = ''.join([x for x in perms if x not in 'celmp'])
-        if ('w' in perms) or ('a' in perms) or ('f' in perms):
-            permdir += 'c'
-        if 'd' in perms:
-            permdir += 'p'
-        type = size = perm = modify = create = unique = mode = uid = gid = ""
-        for basename in listing:
-            file = os.path.join(basedir, basename)
-            try:
-                st = self.stat(file)
-            except OSError:
-                if ignore_err:
-                    continue
-                raise
-            # type + perm
-            if stat.S_ISDIR(st.st_mode):
-                if 'type' in facts:
-                    if basename == '.':
-                        type = 'type=cdir;'
-                    elif basename == '..':
-                        type = 'type=pdir;'
-                    else:
-                        type = 'type=dir;'
-                if 'perm' in facts:
-                    perm = 'perm=%s;' %permdir
-            else:
-                if 'type' in facts:
-                    type = 'type=file;'
-                if 'perm' in facts:
-                    perm = 'perm=%s;' %permfile
-            if 'size' in facts:
-                size = 'size=%s;' %st.st_size  # file size
-            # last modification time
-            if 'modify' in facts:
-                try:
-                    modify = 'modify=%s;' %time.strftime("%Y%m%d%H%M%S",
-                                           time.localtime(st.st_mtime))
-                except ValueError:
-                    # stat.st_mtime could fail (-1) if last mtime is too old
-                    modify = ""
-            if 'create' in facts:
-                # on Windows we can provide also the creation time
-                try:
-                    create = 'create=%s;' %time.strftime("%Y%m%d%H%M%S",
-                                           time.localtime(st.st_ctime))
-                except ValueError:
-                    create = ""
-            # UNIX only
-            if 'unix.mode' in facts:
-                mode = 'unix.mode=%s;' %oct(st.st_mode & 0777)
-            if 'unix.uid' in facts:
-                uid = 'unix.uid=%s;' %st.st_uid
-            if 'unix.gid' in facts:
-                gid = 'unix.gid=%s;' %st.st_gid
-            # We provide unique fact (see RFC-3659, chapter 7.5.2) on
-            # posix platforms only; we get it by mixing st_dev and
-            # st_ino values which should be enough for granting an
-            # uniqueness for the file listed.
-            # The same approach is used by pure-ftpd.
-            # Implementors who want to provide unique fact on other
-            # platforms should use some platform-specific method (e.g.
-            # on Windows NTFS filesystems MTF records could be used).
-            if 'unique' in facts:
-                unique = "unique=%x%x;" %(st.st_dev, st.st_ino)
-
-            yield "%s%s%s%s%s%s%s%s%s %s\r\n" %(type, size, perm, modify, create,
-                                                mode, uid, gid, unique, basename)
-
-
-# --- FTP
-
-class FTPExceptionSent(Exception):
-    """An FTP exception that FTPHandler has processed
-    """
-    pass
-
-class FTPHandler(asynchat.async_chat):
-    """Implements the FTP server Protocol Interpreter (see RFC-959),
-    handling commands received from the client on the control channel.
-
-    All relevant session information is stored in class attributes
-    reproduced below and can be modified before instantiating this
-    class.
-
-     - (str) banner: the string sent when client connects.
-
-     - (int) max_login_attempts:
-        the maximum number of wrong authentications before disconnecting
-        the client (default 3).
-
-     - (bool)permit_foreign_addresses:
-        FTP site-to-site transfer feature: also referenced as "FXP" it
-        permits for transferring a file between two remote FTP servers
-        without the transfer going through the client's host (not
-        recommended for security reasons as described in RFC-2577).
-        Having this attribute set to False means that all data
-        connections from/to remote IP addresses which do not match the
-        client's IP address will be dropped (defualt False).
-
-     - (bool) permit_privileged_ports:
-        set to True if you want to permit active data connections (PORT)
-        over privileged ports (not recommended, defaulting to False).
-
-     - (str) masquerade_address:
-        the "masqueraded" IP address to provide along PASV reply when
-        pyftpdlib is running behind a NAT or other types of gateways.
-        When configured pyftpdlib will hide its local address and
-        instead use the public address of your NAT (default None).
-
-     - (list) passive_ports:
-        what ports ftpd will use for its passive data transfers.
-        Value expected is a list of integers (e.g. range(60000, 65535)).
-        When configured pyftpdlib will no longer use kernel-assigned
-        random ports (default None).
-
-
-    All relevant instance attributes initialized when client connects
-    are reproduced below.  You may be interested in them in case you
-    want to subclass the original FTPHandler.
-
-     - (bool) authenticated: True if client authenticated himself.
-     - (str) username: the name of the connected user (if any).
-     - (int) attempted_logins: number of currently attempted logins.
-     - (str) current_type: the current transfer type (default "a")
-     - (int) af: the address family (IPv4/IPv6)
-     - (instance) server: the FTPServer class instance.
-     - (instance) data_server: the data server instance (if any).
-     - (instance) data_channel: the data channel instance (if any).
-    """
-    # these are overridable defaults
-
-    # default classes
-    authorizer = DummyAuthorizer()
-    active_dtp = ActiveDTP
-    passive_dtp = PassiveDTP
-    dtp_handler = DTPHandler
-    abstracted_fs = AbstractedFS
-
-    # session attributes (explained in the docstring)
-    banner = "pyftpdlib %s ready." %__ver__
-    max_login_attempts = 3
-    permit_foreign_addresses = False
-    permit_privileged_ports = False
-    masquerade_address = None
-    passive_ports = None
-
-    def __init__(self, conn, server):
-        """Initialize the command channel.
-
-         - (instance) conn: the socket object instance of the newly
-            established connection.
-         - (instance) server: the ftp server class instance.
-        """
-        try:
-            asynchat.async_chat.__init__(self, conn=conn) # python2.5
-        except TypeError:
-            asynchat.async_chat.__init__(self, sock=conn) # python2.6
-        self.server = server
-        self.remote_ip, self.remote_port = self.socket.getpeername()[:2]
-        self.in_buffer = []
-        self.in_buffer_len = 0
-        self.set_terminator("\r\n")
-
-        # session attributes
-        self.fs = self.abstracted_fs()
-        self.authenticated = False
-        self.username = ""
-        self.password = ""
-        self.attempted_logins = 0
-        self.current_type = 'a'
-        self.restart_position = 0
-        self.quit_pending = False
-        self._epsvall = False
-        self.__in_dtp_queue = None
-        self.__out_dtp_queue = None
-
-        self.__errno_responses = {
-                errno.EPERM: 553,
-                errno.EINVAL: 504,
-                errno.ENOENT: 550,
-                errno.EREMOTE: 450,
-                errno.EEXIST: 521,
-                }
-
-        # mlsx facts attributes
-        self.current_facts = ['type', 'perm', 'size', 'modify']
-        self.current_facts.append('unique')
-        self.available_facts = self.current_facts[:]
-        self.available_facts += ['unix.mode', 'unix.uid', 'unix.gid']
-        self.available_facts.append('create')
-
-        # dtp attributes
-        self.data_server = None
-        self.data_channel = None
-
-        if hasattr(self.socket, 'family'):
-            self.af = self.socket.family
-        else:  # python < 2.5
-            ip, port = self.socket.getsockname()[:2]
-            self.af = socket.getaddrinfo(ip, port, socket.AF_UNSPEC,
-                                         socket.SOCK_STREAM)[0][0]
-
-    def handle(self):
-        """Return a 220 'Ready' response to the client over the command
-        channel.
-        """
-        if len(self.banner) <= 75:
-            self.respond("220 %s" %str(self.banner))
-        else:
-            self.push('220-%s\r\n' %str(self.banner))
-            self.respond('220 ')
-
-    def handle_max_cons(self):
-        """Called when limit for maximum number of connections is reached."""
-        msg = "Too many connections. Service temporary unavailable."
-        self.respond("421 %s" %msg)
-        self.log(msg)
-        # If self.push is used, data could not be sent immediately in
-        # which case a new "loop" will occur exposing us to the risk of
-        # accepting new connections.  Since this could cause asyncore to
-        # run out of fds (...and exposes the server to DoS attacks), we
-        # immediately close the channel by using close() instead of
-        # close_when_done(). If data has not been sent yet client will
-        # be silently disconnected.
-        self.close()
-
-    def handle_max_cons_per_ip(self):
-        """Called when too many clients are connected from the same IP."""
-        msg = "Too many connections from the same IP address."
-        self.respond("421 %s" %msg)
-        self.log(msg)
-        self.close_when_done()
-
-    # --- asyncore / asynchat overridden methods
-
-    def readable(self):
-        # if there's a quit pending we stop reading data from socket
-        return not self.quit_pending
-
-    def collect_incoming_data(self, data):
-        """Read incoming data and append to the input buffer."""
-        self.in_buffer.append(data)
-        self.in_buffer_len += len(data)
-        # Flush buffer if it gets too long (possible DoS attacks).
-        # RFC-959 specifies that a 500 response could be given in
-        # such cases
-        buflimit = 2048
-        if self.in_buffer_len > buflimit:
-            self.respond('500 Command too long.')
-            self.log('Command has been received exceeds buffer limit of %s.' %(buflimit))
-            self.in_buffer = []
-            self.in_buffer_len = 0
-
-    # commands accepted before authentication
-    unauth_cmds = ('FEAT','HELP','NOOP','PASS','QUIT','STAT','SYST','USER')
-
-    # commands needing an argument
-    arg_cmds = ('ALLO','APPE','DELE','EPRT','MDTM','MODE','MKD','OPTS','PORT',
-                'REST','RETR','RMD','RNFR','RNTO','SIZE', 'STOR','STRU',
-                'TYPE','USER','XMKD','XRMD')
-
-    # commands needing no argument
-    unarg_cmds = ('ABOR','CDUP','FEAT','NOOP','PASV','PWD','QUIT','REIN',
-                  'SYST','XCUP','XPWD')
-
-    def found_terminator(self):
-        r"""Called when the incoming data stream matches the \r\n
-        terminator.
-
-        Depending on the command received it calls the command's
-        corresponding method (e.g. for received command "MKD pathname",
-        ftp_MKD() method is called with "pathname" as the argument).
-        """
-        line = ''.join(self.in_buffer)
-        self.in_buffer = []
-        self.in_buffer_len = 0
-
-        cmd = line.split(' ')[0].upper()
-        space = line.find(' ')
-        if space != -1:
-            arg = line[space + 1:]
-        else:
-            arg = ""
-
-        if cmd != 'PASS':
-            self.logline("<== %s" %line)
-        else:
-            self.logline("<== %s %s" %(line.split(' ')[0], '*' * 6))
-
-        # let's check if user provided an argument for those commands
-        # needing one
-        if not arg and cmd in self.arg_cmds:
-            self.respond("501 Syntax error! Command needs an argument.")
-            return
-
-        # let's do the same for those commands requiring no argument.
-        elif arg and cmd in self.unarg_cmds:
-            self.respond("501 Syntax error! Command does not accept arguments.")
-            return
-
-        # provide a limited set of commands if user isn't
-        # authenticated yet
-        if (not self.authenticated):
-            if cmd in self.unauth_cmds:
-                # we permit STAT during this phase but we don't want
-                # STAT to return a directory LISTing if the user is
-                # not authenticated yet (this could happen if STAT
-                # is used with an argument)
-                if (cmd == 'STAT') and arg:
-                    self.respond("530 Log in with USER and PASS first.")
-                else:
-                    method = getattr(self, 'ftp_' + cmd)
-                    method(arg)  # call the proper ftp_* method
-            elif cmd in proto_cmds:
-                self.respond("530 Log in with USER and PASS first.")
-            else:
-                self.respond('500 Command "%s" not understood.' %line)
-
-        # provide full command set
-        elif (self.authenticated) and (cmd in proto_cmds):
-            if not (self.__check_path(arg, arg)): # and self.__check_perm(cmd, arg)):
-                return
-            method = getattr(self, 'ftp_' + cmd)
-            method(arg)  # call the proper ftp_* method
-
-        else:
-            # recognize those commands having "special semantics"
-            if 'ABOR' in cmd:
-                self.ftp_ABOR("")
-            elif 'STAT' in cmd:
-                self.ftp_STAT("")
-            # unknown command
-            else:
-                self.respond('500 Command "%s" not understood.' %line)
-
-    def __check_path(self, cmd, line):
-        """Check whether a path is valid."""
-
-        # Always true, we will only check later, once we have a cursor
-        return True
-
-    def __check_perm(self, cmd, line, datacr):
-        """Check permissions depending on issued command."""
-        map = {'CWD':'e', 'XCWD':'e', 'CDUP':'e', 'XCUP':'e',
-               'LIST':'l', 'NLST':'l', 'MLSD':'l', 'STAT':'l',
-               'RETR':'r',
-               'APPE':'a',
-               'DELE':'d', 'RMD':'d', 'XRMD':'d',
-               'RNFR':'f',
-               'MKD':'m', 'XMKD':'m',
-               'STOR':'w'}
-        raise NotImplementedError
-        if cmd in map:
-            if cmd == 'STAT' and not line:
-                return True
-            perm = map[cmd]
-            if not line and (cmd in ('LIST','NLST','MLSD')):
-                path = self.fs.ftp2fs(self.fs.cwd, datacr)
-            else:
-                path = self.fs.ftp2fs(line, datacr)
-            if not self.authorizer.has_perm(self.username, perm, path):
-                self.log('FAIL %s "%s". Not enough privileges.' \
-                         %(cmd, self.fs.ftpnorm(line)))
-                self.respond("550 Can't %s. Not enough privileges." %cmd)
-                return False
-        return True
-
-    def handle_expt(self):
-        """Called when there is out of band (OOB) data for the socket
-        connection.  This could happen in case of such commands needing
-        "special action" (typically STAT and ABOR) in which case we
-        append OOB data to incoming buffer.
-        """
-        if hasattr(socket, 'MSG_OOB'):
-            try:
-                data = self.socket.recv(1024, socket.MSG_OOB)
-            except socket.error:
-                pass
-            else:
-                self.in_buffer.append(data)
-                return
-        self.log("Cannot handle OOB data.")
-        self.close()
-
-    def handle_error(self):
-        try:
-            raise
-        except (KeyboardInterrupt, SystemExit, asyncore.ExitNow):
-            raise
-        except socket.error, err:
-            # fix around asyncore bug (http://bugs.python.org/issue1736101)
-            if err[0] in (errno.ECONNRESET, errno.ENOTCONN, errno.ESHUTDOWN, \
-                          errno.ECONNABORTED):
-                self.handle_close()
-                return
-            else:
-                logerror(traceback.format_exc())
-        except:
-            logerror(traceback.format_exc())
-        self.close()
-
-    def handle_close(self):
-        self.close()
-
-    _closed = False
-    def close(self):
-        """Close the current channel disconnecting the client."""
-        if not self._closed:
-            self._closed = True
-            if self.data_server:
-                self.data_server.close()
-                del self.data_server
-
-            if self.data_channel:
-                self.data_channel.close()
-                del self.data_channel
-
-            del self.__out_dtp_queue
-            del self.__in_dtp_queue
-
-            # remove client IP address from ip map
-            self.server.ip_map.remove(self.remote_ip)
-            asynchat.async_chat.close(self)
-            self.log("Disconnected.")
-
-    # --- callbacks
-
-    def on_dtp_connection(self):
-        """Called every time data channel connects (either active or
-        passive).
-
-        Incoming and outgoing queues are checked for pending data.
-        If outbound data is pending, it is pushed into the data channel.
-        If awaiting inbound data, the data channel is enabled for
-        receiving.
-        """
-        if self.data_server:
-            self.data_server.close()
-        self.data_server = None
-
-        # check for data to send
-        if self.__out_dtp_queue:
-            data, isproducer, file = self.__out_dtp_queue
-            if file:
-                self.data_channel.file_obj = file
-            if not isproducer:
-                self.data_channel.push(data)
-            else:
-                self.data_channel.push_with_producer(data)
-            if self.data_channel:
-                self.data_channel.close_when_done()
-            self.__out_dtp_queue = None
-
-        # check for data to receive
-        elif self.__in_dtp_queue:
-            self.data_channel.file_obj = self.__in_dtp_queue
-            self.data_channel.enable_receiving(self.current_type)
-            self.__in_dtp_queue = None
-
-    def on_dtp_close(self):
-        """Called every time the data channel is closed."""
-        self.data_channel = None
-        if self.quit_pending:
-            self.close_when_done()
-
-    # --- utility
-
-    def respond(self, resp):
-        """Send a response to the client using the command channel."""
-        self.push(resp + '\r\n')
-        self.logline('==> %s' % resp)
-
-    def push_dtp_data(self, data, isproducer=False, file=None):
-        """Pushes data into the data channel.
-
-        It is usually called for those commands requiring some data to
-        be sent over the data channel (e.g. RETR).
-        If data channel does not exist yet, it queues the data to send
-        later; data will then be pushed into data channel when
-        on_dtp_connection() will be called.
-
-         - (str/classobj) data: the data to send which may be a string
-            or a producer object).
-         - (bool) isproducer: whether treat data as a producer.
-         - (file) file: the file[-like] object to send (if any).
-        """
-        if self.data_channel:
-            self.respond("125 Data connection already open. Transfer starting.")
-            if file:
-                self.data_channel.file_obj = file
-            if not isproducer:
-                self.data_channel.push(data)
-            else:
-                self.data_channel.push_with_producer(data)
-            if self.data_channel:
-                self.data_channel.close_when_done()
-        else:
-            self.respond("150 File status okay. About to open data connection.")
-            self.__out_dtp_queue = (data, isproducer, file)
-
-    def log(self, msg):
-        """Log a message, including additional identifying session data."""
-        log("[%s]@%s:%s %s" %(self.username, self.remote_ip,
-                              self.remote_port, msg))
-
-    def logline(self, msg):
-        """Log a line including additional indentifying session data."""
-        logline("%s:%s %s" %(self.remote_ip, self.remote_port, msg))
-
-    def flush_account(self):
-        """Flush account information by clearing attributes that need
-        to be reset on a REIN or new USER command.
-        """
-        if self.data_channel:
-            if not self.data_channel.transfer_in_progress():
-                self.data_channel.close()
-                self.data_channel = None
-        if self.data_server:
-            self.data_server.close()
-            self.data_server = None
-
-        self.fs.rnfr = None
-        self.authenticated = False
-        self.username = ""
-        self.password = ""
-        self.attempted_logins = 0
-        self.current_type = 'a'
-        self.restart_position = 0
-        self.quit_pending = False
-        self.__in_dtp_queue = None
-        self.__out_dtp_queue = None
-
-    def run_as_current_user(self, function, *args, **kwargs):
-        """Execute a function impersonating the current logged-in user."""
-        self.authorizer.impersonate_user(self.username, self.password)
-        try:
-            return function(*args, **kwargs)
-        finally:
-            self.authorizer.terminate_impersonation()
-
-        # --- connection
-
-    def try_as_current_user(self, function, args=None, kwargs=None, line=None, errno_resp=None):
-        """run function as current user, auto-respond in exceptions
-           @param args,kwargs the arguments, in list and dict respectively
-           @param errno_resp a dictionary of responses to IOError, OSError
-        """
-        if errno_resp:
-            eresp = self.__errno_responses.copy()
-            eresp.update(errno_resp)
-        else:
-            eresp = self.__errno_responses
-
-        uline = ''
-        if line:
-            uline = ' "%s"' % _to_unicode(line)
-        try:
-            if args is None:
-                args = ()
-            if kwargs is None:
-                kwargs = {}
-            return self.run_as_current_user(function, *args, **kwargs)
-        except NotImplementedError, err:
-            cmdname = function.__name__
-            why = err.args[0] or 'Not implemented'
-            self.log('FAIL %s() is not implemented:  %s.' %(cmdname, why))
-            self.respond('502 %s.' %why)
-            raise FTPExceptionSent(why)
-        except EnvironmentError, err:
-            cmdname = function.__name__
-            try:
-                logline(traceback.format_exc())
-            except Exception:
-                pass
-            ret_code = eresp.get(err.errno, '451')
-            why = (err.strerror) or 'Error in command.'
-            self.log('FAIL %s() %s errno=%s:  %s.' %(cmdname, uline, err.errno, why))
-            self.respond('%s %s.' % (str(ret_code), why))
-
-            raise FTPExceptionSent(why)
-        except Exception, err:
-            cmdname = function.__name__
-            try:
-                logerror(traceback.format_exc())
-            except Exception:
-                pass
-            why = (err.args and err.args[0]) or 'Exception'
-            self.log('FAIL %s() %s Exception:  %s.' %(cmdname, uline, why))
-            self.respond('451 %s.' % why)
-            raise FTPExceptionSent(why)
-
-    def get_crdata2(self, *args, **kwargs):
-        return self.try_as_current_user(self.fs.get_crdata, args, kwargs, line=args[0])
-
-    def _make_eport(self, ip, port):
-        """Establish an active data channel with remote client which
-        issued a PORT or EPRT command.
-        """
-        # FTP bounce attacks protection: according to RFC-2577 it's
-        # recommended to reject PORT if IP address specified in it
-        # does not match client IP address.
-        if not self.permit_foreign_addresses:
-            if ip != self.remote_ip:
-                self.log("Rejected data connection to foreign address %s:%s."
-                         %(ip, port))
-                self.respond("501 Cannot connect to a foreign address.")
-                return
-
-        # ...another RFC-2577 recommendation is rejecting connections
-        # to privileged ports (< 1024) for security reasons.
-        if not self.permit_privileged_ports:
-            if port < 1024:
-                self.log('PORT against the privileged port "%s" has been refused.' %port)
-                self.respond("501 Cannot connect over a privileged port.")
-                return
-
-        # close existent DTP-server instance, if any.
-        if self.data_server:
-            self.data_server.close()
-            self.data_server = None
-        if self.data_channel:
-            self.data_channel.close()
-            self.data_channel = None
-
-        # make sure we are not hitting the max connections limit
-        if self.server.max_cons:
-            if len(self._map) >= self.server.max_cons:
-                msg = "Too many connections. Can't open data channel."
-                self.respond("425 %s" %msg)
-                self.log(msg)
-                return
-
-        # open data channel
-        self.active_dtp(ip, port, self)
-
-    def _make_epasv(self, extmode=False):
-        """Initialize a passive data channel with remote client which
-        issued a PASV or EPSV command.
-        If extmode argument is False we assume that client issued EPSV in
-        which case extended passive mode will be used (see RFC-2428).
-        """
-        # close existing DTP-server instance, if any
-        if self.data_server:
-            self.data_server.close()
-            self.data_server = None
-
-        if self.data_channel:
-            self.data_channel.close()
-            self.data_channel = None
-
-        # make sure we are not hitting the max connections limit
-        if self.server.max_cons:
-            if len(self._map) >= self.server.max_cons:
-                msg = "Too many connections. Cannot open data channel."
-                self.respond("425 %s" %msg)
-                self.log(msg)
-                return
-
-        # open data channel
-        self.data_server = self.passive_dtp(self, extmode)
-
-    def ftp_PORT(self, line):
-        """Start an active data channel by using IPv4."""
-        if self._epsvall:
-            self.respond("501 PORT not allowed after EPSV ALL.")
-            return
-        if self.af != socket.AF_INET:
-            self.respond("425 You cannot use PORT on IPv6 connections. "
-                         "Use EPRT instead.")
-            return
-        # Parse PORT request for getting IP and PORT.
-        # Request comes in as:
-        # > h1,h2,h3,h4,p1,p2
-        # ...where the client's IP address is h1.h2.h3.h4 and the TCP
-        # port number is (p1 * 256) + p2.
-        try:
-            addr = map(int, line.split(','))
-            assert len(addr) == 6
-            for x in addr[:4]:
-                assert 0 <= x <= 255
-            ip = '%d.%d.%d.%d' %tuple(addr[:4])
-            port = (addr[4] * 256) + addr[5]
-            assert 0 <= port <= 65535
-        except (AssertionError, ValueError, OverflowError):
-            self.respond("501 Invalid PORT format.")
-            return
-        self._make_eport(ip, port)
-
-    def ftp_EPRT(self, line):
-        """Start an active data channel by choosing the network protocol
-        to use (IPv4/IPv6) as defined in RFC-2428.
-        """
-        if self._epsvall:
-            self.respond("501 EPRT not allowed after EPSV ALL.")
-            return
-        # Parse EPRT request for getting protocol, IP and PORT.
-        # Request comes in as:
-        # # <d>proto<d>ip<d>port<d>
-        # ...where <d> is an arbitrary delimiter character (usually "|") and
-        # <proto> is the network protocol to use (1 for IPv4, 2 for IPv6).
-        try:
-            af, ip, port = line.split(line[0])[1:-1]
-            port = int(port)
-            assert 0 <= port <= 65535
-        except (AssertionError, ValueError, IndexError, OverflowError):
-            self.respond("501 Invalid EPRT format.")
-            return
-
-        if af == "1":
-            if self.af != socket.AF_INET:
-                self.respond('522 Network protocol not supported (use 2).')
-            else:
-                try:
-                    octs = map(int, ip.split('.'))
-                    assert len(octs) == 4
-                    for x in octs:
-                        assert 0 <= x <= 255
-                except (AssertionError, ValueError, OverflowError):
-                    self.respond("501 Invalid EPRT format.")
-                else:
-                    self._make_eport(ip, port)
-        elif af == "2":
-            if self.af == socket.AF_INET:
-                self.respond('522 Network protocol not supported (use 1).')
-            else:
-                self._make_eport(ip, port)
-        else:
-            if self.af == socket.AF_INET:
-                self.respond('501 Unknown network protocol (use 1).')
-            else:
-                self.respond('501 Unknown network protocol (use 2).')
-
-    def ftp_PASV(self, line):
-        """Start a passive data channel by using IPv4."""
-        if self._epsvall:
-            self.respond("501 PASV not allowed after EPSV ALL.")
-            return
-        if self.af != socket.AF_INET:
-            self.respond("425 You cannot use PASV on IPv6 connections. "
-                         "Use EPSV instead.")
-        else:
-            self._make_epasv(extmode=False)
-
-    def ftp_EPSV(self, line):
-        """Start a passive data channel by using IPv4 or IPv6 as defined
-        in RFC-2428.
-        """
-        # RFC-2428 specifies that if an optional parameter is given,
-        # we have to determine the address family from that otherwise
-        # use the same address family used on the control connection.
-        # In such a scenario a client may use IPv4 on the control channel
-        # and choose to use IPv6 for the data channel.
-        # But how could we use IPv6 on the data channel without knowing
-        # which IPv6 address to use for binding the socket?
-        # Unfortunately RFC-2428 does not provide satisfing information
-        # on how to do that.  The assumption is that we don't have any way
-        # to know which address to use, hence we just use the same address
-        # family used on the control connection.
-        if not line:
-            self._make_epasv(extmode=True)
-        elif line == "1":
-            if self.af != socket.AF_INET:
-                self.respond('522 Network protocol not supported (use 2).')
-            else:
-                self._make_epasv(extmode=True)
-        elif line == "2":
-            if self.af == socket.AF_INET:
-                self.respond('522 Network protocol not supported (use 1).')
-            else:
-                self._make_epasv(extmode=True)
-        elif line.lower() == 'all':
-            self._epsvall = True
-            self.respond('220 Other commands other than EPSV are now disabled.')
-        else:
-            if self.af == socket.AF_INET:
-                self.respond('501 Unknown network protocol (use 1).')
-            else:
-                self.respond('501 Unknown network protocol (use 2).')
-
-    def ftp_QUIT(self, line):
-        """Quit the current session."""
-        # From RFC-959:
-        # This command terminates a USER and if file transfer is not
-        # in progress, the server closes the control connection.
-        # If file transfer is in progress, the connection will remain
-        # open for result response and the server will then close it.
-        if self.authenticated:
-            msg_quit = self.authorizer.get_msg_quit(self.username)
-        else:
-            msg_quit = "Goodbye."
-        if len(msg_quit) <= 75:
-            self.respond("221 %s" %msg_quit)
-        else:
-            self.push("221-%s\r\n" %msg_quit)
-            self.respond("221 ")
-
-        if not self.data_channel:
-            self.close_when_done()
-        else:
-            # tell the cmd channel to stop responding to commands.
-            self.quit_pending = True
-
-
-        # --- data transferring
-
-    def ftp_LIST(self, line):
-        """Return a list of files in the specified directory to the
-        client.
-        """
-        # - If no argument, fall back on cwd as default.
-        # - Some older FTP clients erroneously issue /bin/ls-like LIST
-        #   formats in which case we fall back on cwd as default.
-        if not line or line.lower() in ('-a', '-l', '-al', '-la'):
-            line = ''
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='list')
-            iterator = self.try_as_current_user(self.fs.get_list_dir, (datacr,))
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-
-        try:
-            self.log('OK LIST "%s". Transfer starting.' % line)
-            producer = BufferedIteratorProducer(iterator)
-            self.push_dtp_data(producer, isproducer=True)
-        finally:
-            self.fs.close_cr(datacr)
-
-
-    def ftp_NLST(self, line):
-        """Return a list of files in the specified directory in a
-        compact form to the client.
-        """
-        if not line:
-            line = ''
-
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='list')
-            if not datacr:
-                datacr = ( None, None, None )
-            if self.fs.isdir(datacr[1]):
-                nodelist = self.try_as_current_user(self.fs.listdir, (datacr,))
-            else:
-                # if path is a file we just list its name
-                nodelist = [datacr[1],]
-
-            listing = []
-            for nl in nodelist:
-                if isinstance(nl.path, (list, tuple)):
-                    listing.append(nl.path[-1])
-                else:
-                    listing.append(nl.path)    # assume string
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-
-        self.fs.close_cr(datacr)
-        data = ''
-        if listing:
-            listing.sort()
-            data =  ''.join([ _to_decode(x) + '\r\n' for x in listing ])
-        self.log('OK NLST "%s". Transfer starting.' %line)
-        self.push_dtp_data(data)
-
-        # --- MLST and MLSD commands
-
-    # The MLST and MLSD commands are intended to standardize the file and
-    # directory information returned by the server-FTP process.  These
-    # commands differ from the LIST command in that the format of the
-    # replies is strictly defined although extensible.
-
-    def ftp_MLST(self, line):
-        """Return information about a pathname in a machine-processable
-        form as defined in RFC-3659.
-        """
-        # if no argument, fall back on cwd as default
-        if not line:
-            line = ''
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='list')
-            perms = self.authorizer.get_perms(self.username)
-            iterator = self.try_as_current_user(self.fs.format_mlsx, (datacr[0], datacr[1].parent,
-                       [datacr[1],], perms, self.current_facts), {'ignore_err':False})
-            data = ''.join(iterator)
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-        else:
-            self.fs.close_cr(datacr)
-            # since TVFS is supported (see RFC-3659 chapter 6), a fully
-            # qualified pathname should be returned
-            data = data.split(' ')[0] + ' %s\r\n' %line
-            # response is expected on the command channel
-            self.push('250-Listing "%s":\r\n' %line)
-            # the fact set must be preceded by a space
-            self.push(' ' + data)
-            self.respond('250 End MLST.')
-
-    def ftp_MLSD(self, line):
-        """Return contents of a directory in a machine-processable form
-        as defined in RFC-3659.
-        """
-        # if no argument, fall back on cwd as default
-        if not line:
-            line = ''
-
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='list')
-            # RFC-3659 requires 501 response code if path is not a directory
-            if not self.fs.isdir(datacr[1]):
-                err = 'No such directory.'
-                self.log('FAIL MLSD "%s". %s.' %(line, err))
-                self.respond("501 %s." %err)
-                return
-            listing = self.try_as_current_user(self.fs.listdir, (datacr,))
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-        else:
-            self.fs.close_cr(datacr)
-            perms = self.authorizer.get_perms(self.username)
-            iterator = self.fs.format_mlsx(datacr[0], datacr[1], listing, perms,
-                       self.current_facts)
-            producer = BufferedIteratorProducer(iterator)
-            self.log('OK MLSD "%s". Transfer starting.' %line)
-            self.push_dtp_data(producer, isproducer=True)
-
-    def ftp_RETR(self, line):
-        """Retrieve the specified file (transfer from the server to the
-        client)
-        """
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='file')
-            fd = self.try_as_current_user(self.fs.open, (datacr, 'rb'))
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-
-        if self.restart_position:
-            # Make sure that the requested offset is valid (within the
-            # size of the file being resumed).
-            # According to RFC-1123 a 554 reply may result in case that
-            # the existing file cannot be repositioned as specified in
-            # the REST.
-            ok = 0
-            try:
-                assert not self.restart_position > self.fs.getsize(datacr)
-                fd.seek(self.restart_position)
-                ok = 1
-            except AssertionError:
-                why = "Invalid REST parameter."
-            except IOError, err:
-                why = _strerror(err)
-            self.restart_position = 0
-            if not ok:
-                self.respond('554 %s' %why)
-                self.log('FAIL RETR "%s". %s.' %(line, why))
-                self.fs.close_cr(datacr)
-                return
-        self.log('OK RETR "%s". Download starting.' %line)
-        producer = FileProducer(fd, self.current_type)
-        self.push_dtp_data(producer, isproducer=True, file=fd)
-        self.fs.close_cr(datacr)
-
-    def ftp_STOR(self, line, mode='w'):
-        """Store a file (transfer from the client to the server)."""
-        # A resume could occur in case of APPE or REST commands.
-        # In that case we have to open file object in different ways:
-        # STOR: mode = 'w'
-        # APPE: mode = 'a'
-        # REST: mode = 'r+' (to permit seeking on file object)
-        if 'a' in mode:
-            cmd = 'APPE'
-        else:
-            cmd = 'STOR'
-
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line,mode='create')
-            if self.restart_position:
-                mode = 'r+'
-            fd = self.try_as_current_user(self.fs.create, (datacr, datacr[2], mode + 'b'))
-            assert fd
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-
-        if self.restart_position:
-            # Make sure that the requested offset is valid (within the
-            # size of the file being resumed).
-            # According to RFC-1123 a 554 reply may result in case
-            # that the existing file cannot be repositioned as
-            # specified in the REST.
-            ok = 0
-            try:
-                assert not self.restart_position > self.fs.getsize(datacr)
-                fd.seek(self.restart_position)
-                ok = 1
-            except AssertionError:
-                why = "Invalid REST parameter."
-            except IOError, err:
-                why = _strerror(err)
-            self.restart_position = 0
-            if not ok:
-                self.fs.close_cr(datacr)
-                self.respond('554 %s' %why)
-                self.log('FAIL %s "%s". %s.' %(cmd, line, why))
-                return
-
-        self.log('OK %s "%s". Upload starting.' %(cmd, line))
-        if self.data_channel:
-            self.respond("125 Data connection already open. Transfer starting.")
-            self.data_channel.file_obj = fd
-            self.data_channel.enable_receiving(self.current_type)
-        else:
-            self.respond("150 File status okay. About to open data connection.")
-            self.__in_dtp_queue = fd
-        self.fs.close_cr(datacr)
-
-
-    def ftp_STOU(self, line):
-        """Store a file on the server with a unique name."""
-        # Note 1: RFC-959 prohibited STOU parameters, but this
-        # prohibition is obsolete.
-        # Note 2: 250 response wanted by RFC-959 has been declared
-        # incorrect in RFC-1123 that wants 125/150 instead.
-        # Note 3: RFC-1123 also provided an exact output format
-        # defined to be as follow:
-        # > 125 FILE: pppp
-        # ...where pppp represents the unique path name of the
-        # file that will be written.
-
-        # watch for STOU preceded by REST, which makes no sense.
-        if self.restart_position:
-            self.respond("450 Cannot STOU while REST request is pending.")
-            return
-
-
-        if line:
-            datacr = self.get_crdata2(line, mode='create')
-            # TODO
-        else:
-            # TODO
-            basedir = self.fs.ftp2fs(self.fs.cwd, datacr)
-            prefix = 'ftpd.'
-        try:
-            fd = self.try_as_current_user(self.fs.mkstemp, kwargs={'prefix':prefix,
-                                          'dir': basedir}, line=line )
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-        except IOError, err: # TODO
-            # hitted the max number of tries to find out file with
-            # unique name
-            if err.errno == errno.EEXIST:
-                why = 'No usable unique file name found.'
-            # something else happened
-            else:
-                why = _strerror(err)
-            self.respond("450 %s." %why)
-            self.log('FAIL STOU "%s". %s.' %(self.fs.ftpnorm(line), why))
-            self.fs.close_cr(datacr)
-            return
-
-        filename = line
-        if not self.authorizer.has_perm(self.username, 'w', filename):
-            self.log('FAIL STOU "%s". Not enough privileges.'
-                     %self.fs.ftpnorm(line))
-            self.respond("550 Cannot STOU: not enough privileges.")
-            self.fs.close_cr(datacr)
-            return
-
-        # now just acts like STOR except that restarting isn't allowed
-        self.log('OK STOU "%s". Upload starting.' %filename)
-        if self.data_channel:
-            self.respond("125 FILE: %s" %filename)
-            self.data_channel.file_obj = fd
-            self.data_channel.enable_receiving(self.current_type)
-        else:
-            self.respond("150 FILE: %s" %filename)
-            self.__in_dtp_queue = fd
-        self.fs.close_cr(datacr)
-
-
-    def ftp_APPE(self, line):
-        """Append data to an existing file on the server."""
-        # watch for APPE preceded by REST, which makes no sense.
-        if self.restart_position:
-            self.respond("550 Cannot APPE while REST request is pending.")
-        else:
-            self.ftp_STOR(line, mode='a')
-
-    def ftp_REST(self, line):
-        """Restart a file transfer from a previous mark."""
-        try:
-            marker = int(line)
-            if marker < 0:
-                raise ValueError
-        except (ValueError, OverflowError):
-            self.respond("501 Invalid parameter.")
-        else:
-            self.respond("350 Restarting at position %s. " \
-                        "Now use RETR/STOR for resuming." %marker)
-            self.log("OK REST %s." %marker)
-            self.restart_position = marker
-
-    def ftp_ABOR(self, line):
-        """Abort the current data transfer."""
-
-        # ABOR received while no data channel exists
-        if (self.data_server is None) and (self.data_channel is None):
-            resp = "225 No transfer to abort."
-        else:
-            # a PASV was received but connection wasn't made yet
-            if self.data_server:
-                self.data_server.close()
-                self.data_server = None
-                resp = "225 ABOR command successful; data channel closed."
-
-            # If a data transfer is in progress the server must first
-            # close the data connection, returning a 426 reply to
-            # indicate that the transfer terminated abnormally, then it
-            # must send a 226 reply, indicating that the abort command
-            # was successfully processed.
-            # If no data has been transmitted we just respond with 225
-            # indicating that no transfer was in progress.
-            if self.data_channel:
-                if self.data_channel.transfer_in_progress():
-                    self.data_channel.close()
-                    self.data_channel = None
-                    self.respond("426 Connection closed; transfer aborted.")
-                    self.log("OK ABOR. Transfer aborted, data channel closed.")
-                    resp = "226 ABOR command successful."
-                else:
-                    self.data_channel.close()
-                    self.data_channel = None
-                    self.log("OK ABOR. Data channel closed.")
-                    resp = "225 ABOR command successful; data channel closed."
-        self.respond(resp)
-
-
-        # --- authentication
-
-    def ftp_USER(self, line):
-        """Set the username for the current session."""
-        # we always treat anonymous user as lower-case string.
-        if line.lower() == "anonymous":
-            line = "anonymous"
-
-        # RFC-959 specifies a 530 response to the USER command if the
-        # username is not valid.  If the username is valid is required
-        # ftpd returns a 331 response instead.  In order to prevent a
-        # malicious client from determining valid usernames on a server,
-        # it is suggested by RFC-2577 that a server always return 331 to
-        # the USER command and then reject the combination of username
-        # and password for an invalid username when PASS is provided later.
-        if not self.authenticated:
-            self.respond('331 Username ok, send password.')
-        else:
-            # a new USER command could be entered at any point in order
-            # to change the access control flushing any user, password,
-            # and account information already supplied and beginning the
-            # login sequence again.
-            self.flush_account()
-            msg = 'Previous account information is flushed.'
-            self.log('OK USER "%s". %s.' %(line, msg))
-            self.respond('331 %s, send password.' %msg)
-        self.username = line
-
-    def ftp_PASS(self, line):
-        """Check username's password against the authorizer."""
-
-        if self.authenticated:
-            self.respond("503 User already authenticated.")
-            return
-        if not self.username:
-            self.respond("503 Login with USER first.")
-            return
-
-        # username ok
-        if self.authorizer.has_user(self.username):
-            if self.username == 'anonymous' \
-            or self.authorizer.validate_authentication(self.username, line):
-                msg_login = self.authorizer.get_msg_login(self.username)
-                if len(msg_login) <= 75:
-                    self.respond('230 %s' %msg_login)
-                else:
-                    self.push("230-%s\r\n" %msg_login)
-                    self.respond("230 ")
-
-                self.authenticated = True
-                self.password = line
-                self.attempted_logins = 0
-                self.fs.root = self.authorizer.get_home_dir(self.username)
-                self.fs.username=self.username
-                self.fs.password=line
-                self.log("User %s logged in." %self.username)
-            else:
-                self.attempted_logins += 1
-                if self.attempted_logins >= self.max_login_attempts:
-                    self.respond("530 Maximum login attempts. Disconnecting.")
-                    self.close()
-                else:
-                    self.respond("530 Authentication failed.")
-                self.log('Authentication failed (user: "%s").' %self.username)
-                self.username = ""
-
-        # wrong username
-        else:
-            self.attempted_logins += 1
-            if self.attempted_logins >= self.max_login_attempts:
-                self.log('Authentication failed: unknown username "%s".'
-                            %self.username)
-                self.respond("530 Maximum login attempts. Disconnecting.")
-                self.close()
-            elif self.username.lower() == 'anonymous':
-                self.respond("530 Anonymous access not allowed.")
-                self.log('Authentication failed: anonymous access not allowed.')
-            else:
-                self.respond("530 Authentication failed.")
-                self.log('Authentication failed: unknown username "%s".'
-                            %self.username)
-                self.username = ""
-
-    def ftp_REIN(self, line):
-        """Reinitialize user's current session."""
-        # From RFC-959:
-        # REIN command terminates a USER, flushing all I/O and account
-        # information, except to allow any transfer in progress to be
-        # completed.  All parameters are reset to the default settings
-        # and the control connection is left open.  This is identical
-        # to the state in which a user finds himself immediately after
-        # the control connection is opened.
-        self.log("OK REIN. Flushing account information.")
-        self.flush_account()
-        # Note: RFC-959 erroneously mention "220" as the correct response
-        # code to be given in this case, but this is wrong...
-        self.respond("230 Ready for new user.")
-
-
-        # --- filesystem operations
-
-    def ftp_PWD(self, line):
-        """Return the name of the current working directory to the client."""
-        cwd = self.fs.get_cwd()
-        self.respond('257 "%s" is the current directory.' % cwd)
-
-    def ftp_CWD(self, line):
-        """Change the current working directory."""
-        # check: a lot of FTP servers go back to root directory if no
-        # arg is provided but this is not specified in RFC-959.
-        # Search for official references about this behaviour.
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line,'cwd')
-            self.try_as_current_user(self.fs.chdir, (datacr,), line=line, errno_resp={2: 530})
-            cwd = self.fs.get_cwd()
-            self.log('OK CWD "%s".' % cwd)
-            self.respond('250 "%s" is the current directory.' % cwd)
-        except FTPExceptionSent:
-            return
-        finally:
-            self.fs.close_cr(datacr)
-
-    def ftp_CDUP(self, line):
-        """Change into the parent directory."""
-        # Note: RFC-959 says that code 200 is required but it also says
-        # that CDUP uses the same codes as CWD.
-        self.ftp_CWD('..')
-
-    def ftp_SIZE(self, line):
-        """Return size of file in a format suitable for using with
-        RESTart as defined in RFC-3659.
-
-        Implementation note:
-        properly handling the SIZE command when TYPE ASCII is used would
-        require to scan the entire file to perform the ASCII translation
-        logic (file.read().replace(os.linesep, '\r\n')) and then
-        calculating the len of such data which may be different than
-        the actual size of the file on the server.  Considering that
-        calculating such result could be very resource-intensive it
-        could be easy for a malicious client to try a DoS attack, thus
-        we do not perform the ASCII translation.
-
-        However, clients in general should not be resuming downloads in
-        ASCII mode.  Resuming downloads in binary mode is the recommended
-        way as specified in RFC-3659.
-        """
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='file')
-            size = self.try_as_current_user(self.fs.getsize,(datacr,), line=line)
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-        else:
-            self.respond("213 %s" %size)
-            self.log('OK SIZE "%s".' %line)
-        self.fs.close_cr(datacr)
-
-    def ftp_MDTM(self, line):
-        """Return last modification time of file to the client as an ISO
-        3307 style timestamp (YYYYMMDDHHMMSS) as defined in RFC-3659.
-        """
-        datacr = None
-
-        try:
-            if line.find('/', 1) < 0:
-                # root or db, just return local
-                lmt = None
-            else:
-                datacr = self.get_crdata2(line)
-                if not datacr:
-                    raise IOError(errno.ENOENT, "%s is not retrievable." %line)
-
-                lmt = self.try_as_current_user(self.fs.getmtime, (datacr,), line=line)
-            lmt = time.strftime("%Y%m%d%H%M%S", time.localtime(lmt))
-            self.respond("213 %s" %lmt)
-            self.log('OK MDTM "%s".' %line)
-        except FTPExceptionSent:
-            return
-        finally:
-            self.fs.close_cr(datacr)
-
-    def ftp_MKD(self, line):
-        """Create the specified directory."""
-        try:
-            datacr = self.get_crdata2(line, mode='create')
-            self.try_as_current_user(self.fs.mkdir, (datacr, datacr[2]), line=line)
-        except FTPExceptionSent:
-            self.fs.close_cr(datacr)
-            return
-        else:
-            self.log('OK MKD "%s".' %line)
-            self.respond("257 Directory created.")
-        self.fs.close_cr(datacr)
-
-    def ftp_RMD(self, line):
-        """Remove the specified directory."""
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='delete')
-            if not datacr[1]:
-                msg = "Cannot remove root directory."
-                self.respond("553 %s" %msg)
-                self.log('FAIL MKD "/". %s' %msg)
-                self.fs.close_cr(datacr)
-                return
-            self.try_as_current_user(self.fs.rmdir, (datacr,), line=line)
-            self.log('OK RMD "%s".' %line)
-            self.respond("250 Directory removed.")
-        except FTPExceptionSent:
-            pass
-        self.fs.close_cr(datacr)
-
-    def ftp_DELE(self, line):
-        """Delete the specified file."""
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='delete')
-            self.try_as_current_user(self.fs.remove, (datacr,), line=line)
-            self.log('OK DELE "%s".' %line)
-            self.respond("250 File removed.")
-        except FTPExceptionSent:
-            pass
-        self.fs.close_cr(datacr)
-
-    def ftp_RNFR(self, line):
-        """Rename the specified (only the source name is specified
-        here, see RNTO command)"""
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line, mode='rfnr')
-            if not datacr[1]:
-                self.respond("550 No such file or directory.")
-            elif not datacr[1]:
-                self.respond("553 Cannot rename the home directory.")
-            else:
-                self.fs.rnfr = datacr[1]
-                self.respond("350 Ready for destination name.")
-        except FTPExceptionSent:
-            pass
-        self.fs.close_cr(datacr)
-
-    def ftp_RNTO(self, line):
-        """Rename file (destination name only, source is specified with
-        RNFR).
-        """
-        if not self.fs.rnfr:
-            self.respond("503 Bad sequence of commands: use RNFR first.")
-            return
-        datacr = None
-        try:
-            datacr = self.get_crdata2(line,'create')
-            oldname = self.fs.rnfr.path
-            if isinstance(oldname, (list, tuple)):
-                oldname = '/'.join(oldname)
-            self.try_as_current_user(self.fs.rename, (self.fs.rnfr, datacr), line=line)
-            self.fs.rnfr = None
-            self.log('OK RNFR/RNTO "%s ==> %s".' % \
-                    (_to_unicode(oldname), _to_unicode(line)))
-            self.respond("250 Renaming ok.")
-        except FTPExceptionSent:
-            pass
-        finally:
-            self.fs.rnfr = None
-            self.fs.close_cr(datacr)
-
-
-        # --- others
-
-    def ftp_TYPE(self, line):
-        """Set current type data type to binary/ascii"""
-        line = line.upper()
-        if line in ("A", "AN", "A N"):
-            self.respond("200 Type set to: ASCII.")
-            self.current_type = 'a'
-        elif line in ("I", "L8", "L 8"):
-            self.respond("200 Type set to: Binary.")
-            self.current_type = 'i'
-        else:
-            self.respond('504 Unsupported type "%s".' %line)
-
-    def ftp_STRU(self, line):
-        """Set file structure (obsolete)."""
-        # obsolete (backward compatibility with older ftp clients)
-        if line in ('f','F'):
-            self.respond('200 File transfer structure set to: F.')
-        else:
-            self.respond('504 Unimplemented STRU type.')
-
-    def ftp_MODE(self, line):
-        """Set data transfer mode (obsolete)"""
-        # obsolete (backward compatibility with older ftp clients)
-        if line in ('s', 'S'):
-            self.respond('200 Transfer mode set to: S')
-        else:
-            self.respond('504 Unimplemented MODE type.')
-
-    def ftp_STAT(self, line):
-        """Return statistics about current ftp session. If an argument
-        is provided return directory listing over command channel.
-
-        Implementation note:
-
-        RFC-959 do not explicitly mention globbing; this means that FTP
-        servers are not required to support globbing in order to be
-        compliant.  However, many FTP servers do support globbing as a
-        measure of convenience for FTP clients and users.
-
-        In order to search for and match the given globbing expression,
-        the code has to search (possibly) many directories, examine
-        each contained filename, and build a list of matching files in
-        memory.  Since this operation can be quite intensive, both CPU-
-        and memory-wise, we limit the search to only one directory
-        non-recursively, as LIST does.
-        """
-        # return STATus information about ftpd
-        if not line:
-            s = []
-            s.append('Connected to: %s:%s' %self.socket.getsockname()[:2])
-            if self.authenticated:
-                s.append('Logged in as: %s' %self.username)
-            else:
-                if not self.username:
-                    s.append("Waiting for username.")
-                else:
-                    s.append("Waiting for password.")
-            if self.current_type == 'a':
-                type = 'ASCII'
-            else:
-                type = 'Binary'
-            s.append("TYPE: %s; STRUcture: File; MODE: Stream" %type)
-            if self.data_server:
-                s.append('Passive data channel waiting for connection.')
-            elif self.data_channel:
-                bytes_sent = self.data_channel.tot_bytes_sent
-                bytes_recv = self.data_channel.tot_bytes_received
-                s.append('Data connection open:')
-                s.append('Total bytes sent: %s' %bytes_sent)
-                s.append('Total bytes received: %s' %bytes_recv)
-            else:
-                s.append('Data connection closed.')
-
-            self.push('211-FTP server status:\r\n')
-            self.push(''.join([' %s\r\n' %item for item in s]))
-            self.respond('211 End of status.')
-        # return directory LISTing over the command channel
-        else:
-            datacr = None
-            try:
-                datacr = self.fs.get_cr(line)
-                iterator = self.try_as_current_user(self.fs.get_stat_dir, (line, datacr), line=line)
-            except FTPExceptionSent:
-                pass
-            else:
-                self.push('213-Status of "%s":\r\n' %self.fs.ftpnorm(line))
-                self.push_with_producer(BufferedIteratorProducer(iterator))
-                self.respond('213 End of status.')
-            self.fs.close_cr(datacr)
-
-    def ftp_FEAT(self, line):
-        """List all new features supported as defined in RFC-2398."""
-        features = ['EPRT','EPSV','MDTM','MLSD','REST STREAM','SIZE','TVFS']
-        s = ''
-        for fact in self.available_facts:
-            if fact in self.current_facts:
-                s += fact + '*;'
-            else:
-                s += fact + ';'
-        features.append('MLST ' + s)
-        features.sort()
-        self.push("211-Features supported:\r\n")
-        self.push("".join([" %s\r\n" %x for x in features]))
-        self.respond('211 End FEAT.')
-
-    def ftp_OPTS(self, line):
-        """Specify options for FTP commands as specified in RFC-2389."""
-        try:
-            assert (not line.count(' ') > 1), 'Invalid number of arguments.'
-            if ' ' in line:
-                cmd, arg = line.split(' ')
-                assert (';' in arg), 'Invalid argument!'
-            else:
-                cmd, arg = line, ''
-            # actually the only command able to accept options is MLST
-            assert (cmd.upper() == 'MLST'), 'Unsupported command "%s".' %cmd
-        except AssertionError, err:
-            self.respond('501 %s.' %err)
-        else:
-            facts = [x.lower() for x in arg.split(';')]
-            self.current_facts = [x for x in facts if x in self.available_facts]
-            f = ''.join([x + ';' for x in self.current_facts])
-            self.respond('200 MLST OPTS ' + f)
-
-    def ftp_NOOP(self, line):
-        """Do nothing."""
-        self.respond("200 I successfully done nothin'.")
-
-    def ftp_SYST(self, line):
-        """Return system type (always returns UNIX type: L8)."""
-        # This command is used to find out the type of operating system
-        # at the server.  The reply shall have as its first word one of
-        # the system names listed in RFC-943.
-        # Since that we always return a "/bin/ls -lA"-like output on
-        # LIST we  prefer to respond as if we would on Unix in any case.
-        self.respond("215 UNIX Type: L8")
-
-    def ftp_ALLO(self, line):
-        """Allocate bytes for storage (obsolete)."""
-        # obsolete (always respond with 202)
-        self.respond("202 No storage allocation necessary.")
-
-    def ftp_HELP(self, line):
-        """Return help text to the client."""
-        if line:
-            if line.upper() in proto_cmds:
-                self.respond("214 %s" %proto_cmds[line.upper()])
-            else:
-                self.respond("501 Unrecognized command.")
-        else:
-            # provide a compact list of recognized commands
-            def formatted_help():
-                cmds = []
-                keys = proto_cmds.keys()
-                keys.sort()
-                while keys:
-                    elems = tuple((keys[0:8]))
-                    cmds.append(' %-6s' * len(elems) %elems + '\r\n')
-                    del keys[0:8]
-                return ''.join(cmds)
-
-            self.push("214-The following commands are recognized:\r\n")
-            self.push(formatted_help())
-            self.respond("214 Help command successful.")
-
-
-        # --- support for deprecated cmds
-
-    # RFC-1123 requires that the server treat XCUP, XCWD, XMKD, XPWD
-    # and XRMD commands as synonyms for CDUP, CWD, MKD, LIST and RMD.
-    # Such commands are obsoleted but some ftp clients (e.g. Windows
-    # ftp.exe) still use them.
-
-    def ftp_XCUP(self, line):
-        """Change to the parent directory. Synonym for CDUP. Deprecated."""
-        self.ftp_CDUP(line)
-
-    def ftp_XCWD(self, line):
-        """Change the current working directory. Synonym for CWD. Deprecated."""
-        self.ftp_CWD(line)
-
-    def ftp_XMKD(self, line):
-        """Create the specified directory. Synonym for MKD. Deprecated."""
-        self.ftp_MKD(line)
-
-    def ftp_XPWD(self, line):
-        """Return the current working directory. Synonym for PWD. Deprecated."""
-        self.ftp_PWD(line)
-
-    def ftp_XRMD(self, line):
-        """Remove the specified directory. Synonym for RMD. Deprecated."""
-        self.ftp_RMD(line)
-
-
-class FTPServer(asyncore.dispatcher):
-    """This class is an asyncore.disptacher subclass.  It creates a FTP
-    socket listening on <address>, dispatching the requests to a <handler>
-    (typically FTPHandler class).
-
-    Depending on the type of address specified IPv4 or IPv6 connections
-    (or both, depending from the underlying system) will be accepted.
-
-    All relevant session information is stored in class attributes
-    described below.
-    Overriding them is strongly recommended to avoid running out of
-    file descriptors (DoS)!
-
-     - (int) max_cons:
-        number of maximum simultaneous connections accepted (defaults
-        to 0 == unlimited).
-
-     - (int) max_cons_per_ip:
-        number of maximum connections accepted for the same IP address
-        (defaults to 0 == unlimited).
-    """
-
-    max_cons = 0
-    max_cons_per_ip = 0
-
-    def __init__(self, address, handler):
-        """Initiate the FTP server opening listening on address.
-
-         - (tuple) address: the host:port pair on which the command
-           channel will listen.
-
-         - (classobj) handler: the handler class to use.
-        """
-        asyncore.dispatcher.__init__(self)
-        self.handler = handler
-        self.ip_map = []
-        host, port = address
-
-        # AF_INET or AF_INET6 socket
-        # Get the correct address family for our host (allows IPv6 addresses)
-        try:
-            info = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
-                                      socket.SOCK_STREAM, 0, socket.AI_PASSIVE)
-        except socket.gaierror:
-            # Probably a DNS issue. Assume IPv4.
-            self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
-            self.set_reuse_addr()
-            self.bind((host, port))
-        else:
-            for res in info:
-                af, socktype, proto, canonname, sa = res
-                try:
-                    self.create_socket(af, socktype)
-                    self.set_reuse_addr()
-                    self.bind(sa)
-                except socket.error, msg:
-                    if self.socket:
-                        self.socket.close()
-                    self.socket = None
-                    continue
-                break
-            if not self.socket:
-                raise socket.error, msg
-        self.listen(5)
-
-    def set_reuse_addr(self):
-        # Overridden for convenience. Avoid to reuse address on Windows.
-        if (os.name in ('nt', 'ce')) or (sys.platform == 'cygwin'):
-            return
-        asyncore.dispatcher.set_reuse_addr(self)
-
-    def serve_forever(self, **kwargs):
-        """A wrap around asyncore.loop(); starts the asyncore polling
-        loop.
-
-        The keyword arguments in kwargs are the same expected by
-        asyncore.loop() function: timeout, use_poll, map and count.
-        """
-        if not 'count' in kwargs:
-            log("Serving FTP on %s:%s" %self.socket.getsockname()[:2])
-
-        # backward compatibility for python < 2.4
-        if not hasattr(self, '_map'):
-            if not 'map' in kwargs:
-                map = asyncore.socket_map
-            else:
-                map = kwargs['map']
-            self._map = self.handler._map = map
-
-        try:
-            # FIX #16, #26
-            # use_poll specifies whether to use select module's poll()
-            # with asyncore or whether to use asyncore's own poll()
-            # method Python versions < 2.4 need use_poll set to False
-            # This breaks on OS X systems if use_poll is set to True.
-            # All systems seem to work fine with it set to False
-            # (tested on Linux, Windows, and OS X platforms)
-            if kwargs:
-                asyncore.loop(**kwargs)
-            else:
-                asyncore.loop(timeout=1.0, use_poll=False)
-        except (KeyboardInterrupt, SystemExit, asyncore.ExitNow):
-            log("Shutting down FTPd.")
-            self.close_all()
-
-    def handle_accept(self):
-        """Called when remote client initiates a connection."""
-        sock_obj, addr = self.accept()
-        log("[]%s:%s Connected." %addr[:2])
-
-        handler = self.handler(sock_obj, self)
-        ip = addr[0]
-        self.ip_map.append(ip)
-
-        # For performance and security reasons we should always set a
-        # limit for the number of file descriptors that socket_map
-        # should contain.  When we're running out of such limit we'll
-        # use the last available channel for sending a 421 response
-        # to the client before disconnecting it.
-        if self.max_cons:
-            if len(self._map) > self.max_cons:
-                handler.handle_max_cons()
-                return
-
-        # accept only a limited number of connections from the same
-        # source address.
-        if self.max_cons_per_ip:
-            if self.ip_map.count(ip) > self.max_cons_per_ip:
-                handler.handle_max_cons_per_ip()
-                return
-
-        handler.handle()
-
-    def writable(self):
-        return 0
-
-    def handle_error(self):
-        """Called to handle any uncaught exceptions."""
-        try:
-            raise
-        except (KeyboardInterrupt, SystemExit, asyncore.ExitNow):
-            raise
-        logerror(traceback.format_exc())
-        self.close()
-
-    def close_all(self, map=None, ignore_all=False):
-        """Stop serving; close all existent connections disconnecting
-        clients.
-
-         - (dict) map:
-            A dictionary whose items are the channels to close.
-            If map is omitted, the default asyncore.socket_map is used.
-
-         - (bool) ignore_all:
-            having it set to False results in raising exception in case
-            of unexpected errors.
-
-        Implementation note:
-
-        Instead of using the current asyncore.close_all() function
-        which only close sockets, we iterate over all existent channels
-        calling close() method for each one of them, avoiding memory
-        leaks.
-
-        This is how asyncore.close_all() function should work in
-        Python 2.6.
-        """
-        if map is None:
-            map = self._map
-        for x in map.values():
-            try:
-                x.close()
-            except OSError, x:
-                if x[0] == errno.EBADF:
-                    pass
-                elif not ignore_all:
-                    raise
-            except (asyncore.ExitNow, KeyboardInterrupt, SystemExit):
-                raise
-            except:
-                if not ignore_all:
-                    raise
-        map.clear()
-
-
-def test():
-    # cmd line usage (provide a read-only anonymous ftp server):
-    # python -m pyftpdlib.FTPServer
-    authorizer = DummyAuthorizer()
-    authorizer.add_anonymous(os.getcwd(), perm='elradfmw')
-    FTPHandler.authorizer = authorizer
-    address = ('', 8021)
-    ftpd = FTPServer(address, FTPHandler)
-    ftpd.serve_forever()
-
-if __name__ == '__main__':
-    test()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/i18n/ar.po b/addons/document_ftp/i18n/ar.po
deleted file mode 100644 (file)
index f6e1a3a..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-# Arabic translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-01 18:32+0000\n"
-"Last-Translator: gehad shaat <gehad.shaath@gmail.com>\n"
-"Language-Team: Arabic <ar@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "قم بضبط الخادم FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "التهيئة التلقائية للمسار"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"يشير عنوان الشبكة التي لديك على الخادم OpenERP ينبغي أن تكون قابلة للوصول "
-"للمستخدمين النهائيين. هذا يعتمد على هيكل الشبكة الخاصة بك والتكوين، وسوف "
-"تؤثر فقط على الروابط المعروضة للمستخدمين. والشكل هو مضيف: منفذ والمضيف "
-"الافتراضي (المضيف المحلي) وهي مناسبة فقط للوصول من جهاز الخادم نفسه .."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "استعراض الملفات"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "اضغط على الرابط لتصفح المستندات"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "خادم FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "ضبط خدمة FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "تصفح المستندات"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_تصفح"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"عنوان الخادم أو الملكية الفكرية والمنفذ الذي يجب على المستخدمين الاتصال به "
-"للحصول DMS"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "مستودع مشترك (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "العنوان"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "إلغاء"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "تصفح وثيقة FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "الاعدادات لنظام أدارة الوثائق"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "متصفح الوثيقة"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "أو"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "تصفح الوثيقة"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "الصورة"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "سير الإعدادات"
-
-#~ msgid "title"
-#~ msgstr "الاسم"
-
-#~ msgid "_Cancel"
-#~ msgstr "ال_غاء"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "ربط خدمة FTP مع نظام ادارة الوثائق"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "هذا هو واجهة دعم بروتوكول نقل الملفات مع نظام إدارة الوثائق.\n"
-#~ "مع هذه الوحدة فإنك لن تكون قادرا على الوصول إلى المستندات من خلال OpenERP\n"
-#~ "ولكن هل ستكون أيضا قادرا على الاتصال معهم من خلال نظام الملفات باستخدام\n"
-#~ "بروتوكول نقل الملفات العملاء.\n"
diff --git a/addons/document_ftp/i18n/bg.po b/addons/document_ftp/i18n/bg.po
deleted file mode 100644 (file)
index 1bf7cf4..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-# Bulgarian translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-03-02 09:48+0000\n"
-"Last-Translator: Dimitar Markov <dimitar.markov@gmail.com>\n"
-"Language-Team: Bulgarian <bg@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Настройване на FTP сървър"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Автоматично настройване на категория"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Показва мрежовия адрес, на който вашият OpenErp  сървър следва да бъде "
-"достъпен за крайни потребители.  Зависи от топологията на вашата мрежа и "
-"настройки, и ще влияе само на връзките показвани на потребителите. Форматът "
-"е HOST:PORT и по подразбиране  (localhost) единствено е подходящ за достъп "
-"от самия сървър."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Преглед на файловете"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP сървър"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Настройки на FTP сървър"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Разглеждане"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Адрес на сървъра или IP и порта, към който потребителите трябва да се свърже "
-"за DMS за достъп"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Споделено храниилище (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Адрес"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Преглед на FTP документи"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Настройки на приложение ЗНАНИЯ"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Преглед на документ"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Преглед на Документ"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "Изображение"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Прогрес на настройките"
-
-#~ msgid "title"
-#~ msgstr "заглавие"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Интегриран FTP сървър със система за управление на съдържанието"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Отказ"
diff --git a/addons/document_ftp/i18n/ca.po b/addons/document_ftp/i18n/ca.po
deleted file mode 100644 (file)
index f20d384..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# Catalan translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-03-15 16:46+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Catalan <ca@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configura servidor FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuració automàtica de directoris"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indiqueu l'adreça de xarxa en la que el vostre servidor d'OpenERP hauria "
-"d'estar accessible per als usuaris finals. Això depèn de la vostra topologia "
-"de xarxa i configuració, i només afectara als enllaços mostrats als usuaris. "
-"El formato és SERVIDOR:PORT i el servidor per defecte (localhost) només és "
-"adequat per a l'accés des de la pròpia màquina del servidor."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Navega pels fitxers"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuració del servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Navega"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Adreça del servidor o IP i el port per accedir al sistema de gestió de "
-"documents."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Directorio compartido de documentos (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adreça"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Navega pels documents per FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuració aplicació del coneixement"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Navega pels documents"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Navega pels documents"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_continguts"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Proporciona una interfície FTP per al sistema de gestió de documents.\n"
-#~ "        A més de l'accés als documents a través d'OpenERP, aquest mòdul\n"
-#~ "        permet accedir als mateixos a través del sistema de fitxers "
-#~ "utilitzant un\n"
-#~ "        client FTP.\n"
-
-#~ msgid "Image"
-#~ msgstr "Imatge"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Progrés de la configuració"
-
-#~ msgid "title"
-#~ msgstr "títol"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP integrado al sistema de gestión de documentos"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancel·la"
diff --git a/addons/document_ftp/i18n/cs.po b/addons/document_ftp/i18n/cs.po
deleted file mode 100644 (file)
index bef9127..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# Czech translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-04-06 06:13+0000\n"
-"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Konfigurovat FTP server"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Automatická konfigurace adresářů"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Značí adresu sítě, na které by měl být pro koncové uživatel dostupný váš "
-"OpenERP server. To závisí na vaší síťové topologii a nastavení a ovlivní to "
-"pouze odkazy zobrazené uživatelům. Formát je POĆÍTAČ:PORT a výchozí počítač "
-"(localhost) je vhodný pouze pro přístup ze samotného serveru."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Procházet soubory"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Konfigurace FTP serveru"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Procházet"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Adresa serveru nebo IP a port, ke kterému by se měli uživatelé připojit pro "
-"přístup DMS"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Sdílené úložiště (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresa"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Procházení FTP dokumentů"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Nastavení aplikace znalostí"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Procházení dokumentů"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Procházet dokument"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "Obrázek"
-
-#~ msgid "title"
-#~ msgstr "název"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "FTP server integrovaný s Document Management Systémem"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Storno"
diff --git a/addons/document_ftp/i18n/da.po b/addons/document_ftp/i18n/da.po
deleted file mode 100644 (file)
index 380ae55..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-# Danish translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-01-27 08:46+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Danish <da@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr ""
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr ""
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
diff --git a/addons/document_ftp/i18n/de.po b/addons/document_ftp/i18n/de.po
deleted file mode 100644 (file)
index 6f2b721..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# German translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-18 06:50+0000\n"
-"Last-Translator: Ferdinand <Unknown>\n"
-"Language-Team: German <de@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "FTP Server konfigurieren"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Auto Konfigurator Verzeichnisse"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Zeigt die Netzwerk IP Adresse über die der OpenERP Server für Endbenutzer "
-"erreicht werden kann. Diese Adresse hängt ab von der Architektur des "
-"Netzwerks und wird lediglich einen Einfluss auf die Anzeige der Adresse beim "
-"Benutzer haben. Das Format der Adresse ist HOST:PORT, wobei der Standard "
-"Host (localhost) lediglich gültig ist für einen direkten Zugriff vom Server "
-"selbst."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "Wissensdatenbank.Konfiguration.Einstellungen"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Dateien durchsuchen"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "URL klicken, um die Dokumente anzuzeigen"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP-Server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Konfiguration FTP-Server"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Dokumente anzeigen"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "Suchen"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Servername oder IP und Port über den Benutzer per FTP auf Dokumente zugreifen"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresse"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Suche per FTP-Dokument"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Knowledge-Anwendung konfigurieren"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Dokument suchen"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "oder"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Dokument suchen"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "_Cancel"
-#~ msgstr "Abbrechen"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Abfolge Konfiguration"
-
-#~ msgid "Image"
-#~ msgstr "Bild"
-
-#~ msgid "title"
-#~ msgstr "Bezeichnung"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Diese Anwendung unterstützt einen Zugriff per FTP auf das "
-#~ "Dokumentenmanagement.\n"
-#~ "Hierdurch können Sie nicht nur durch OpenERP auf Dokumente zugreifen. \n"
-#~ "Sie können auch über den FTP Client Ihres Betriebssystems oder durch FTP "
-#~ "Anwendungen auf diese Dokumente zugreifen.\n"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Integration FTP Server in Dokumentenmanagement"
diff --git a/addons/document_ftp/i18n/document_ftp.pot b/addons/document_ftp/i18n/document_ftp.pot
deleted file mode 100644 (file)
index 969bf42..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#      * document_ftp
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 7.0alpha\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-21 17:05+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Indicate the network address on which your OpenERP server should be reachable for end-users. This depends on your network topology and configuration, and will only affect the links displayed to the users. The format is HOST:PORT and the default host (localhost) is only suitable for access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr ""
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr ""
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid "Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
-
diff --git a/addons/document_ftp/i18n/el.po b/addons/document_ftp/i18n/el.po
deleted file mode 100644 (file)
index a8eef08..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-# Greek translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-01-12 17:13+0000\n"
-"Last-Translator: Dimitris Andavoglou <dimitrisand@gmail.com>\n"
-"Language-Team: Greek <el@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Περιήγηση στα Αρχεία"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Εξυπηρετητής FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Παραμετροποίηση Διακομιστή FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Περιήγηση"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Διεύθυνση"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
-
-#~ msgid "Image"
-#~ msgstr "Εικόνα"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Πρόοδος Παραμετροποίησης"
-
-#~ msgid "title"
-#~ msgstr "τίτλος"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Άκυρο"
diff --git a/addons/document_ftp/i18n/en_GB.po b/addons/document_ftp/i18n/en_GB.po
deleted file mode 100644 (file)
index 7cbc0e9..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# English (United Kingdom) translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-08-25 17:39+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configure FTP Server"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Auto Directory Configuration"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Browse Files"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Click the url to browse the documents"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP Server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP Server Configuration"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Browse Documents"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Browse"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Server address or IP and port to which users should connect to for DMS access"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Shared Repository (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Address"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Cancel"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Document FTP Browse"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Knowledge Application Configuration"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Document Browse"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "or"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Browse Document"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-
-#~ msgid "Image"
-#~ msgstr "Image"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Configuration Progress"
-
-#~ msgid "title"
-#~ msgstr "title"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Integrated FTP Server with Document Management System"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancel"
diff --git a/addons/document_ftp/i18n/es.po b/addons/document_ftp/i18n/es.po
deleted file mode 100644 (file)
index cffa3dc..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-11 22:05+0000\n"
-"Last-Translator: lambdasoftware <development@lambdasoftware.net>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuración automática de directorios"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indique la dirección de red en la cual su servidor de OpenERP debería estar "
-"accesible para los usuarios finales. Esto depende de su topología de red y "
-"configuración, y sólo afectará a los enlaces mostrados a los usuarios. El "
-"formato es SERVIDOR:PUERTO y el servidor por defecto (localhost) sólo es "
-"adecuado para el acceso desde la propia máquina del servidor."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "Parámetros de configuración de la base de conocimiento"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Navegar por los archivos"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Pulse sobre el enlace para acceder a los documentos"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuración del servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Navegue por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Navegar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Dirección del servidor o IP y el puerto para acceder al sistema de gestión "
-"de documentos."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Directorio compartido de documentos (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Dirección"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Navegar por los documentos por FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuración aplicación del conocimiento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "o"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contenidos"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancelar"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP integrado al sistema de gestión de documentos"
-
-#~ msgid "title"
-#~ msgstr "título"
-
-#~ msgid "Image"
-#~ msgstr "Imagen"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Progreso de la configuración"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Proporciona un interfaz FTP para el sistema de gestión de documentos.\n"
-#~ "        Además del acceso a los documentos a través de OpenERP, este módulo\n"
-#~ "        permite acceder a los mismos a través del sistema de archivos "
-#~ "utilizando un\n"
-#~ "        cliente FTP.\n"
diff --git a/addons/document_ftp/i18n/es_CR.po b/addons/document_ftp/i18n/es_CR.po
deleted file mode 100644 (file)
index 07f73dc..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-02-13 19:19+0000\n"
-"Last-Translator: Carlos Vásquez (CLEARCORP) "
-"<carlos.vasquez@clearcorp.co.cr>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-"Language: es\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuración automática de directorios"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indique la dirección de red en la cual su servidor de OpenERP debería estar "
-"accesible para los usuarios finales. Esto depende de su topología de red y "
-"configuración, y sólo afectará a los enlaces mostrados a los usuarios. El "
-"formato es SERVIDOR:PUERTO y el servidor por defecto (localhost) sólo es "
-"adecuado para el acceso desde la propia máquina del servidor."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Navegar por los archivos"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuración del servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Navegar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Dirección del servidor o IP y el puerto para acceder al sistema de gestión "
-"de documentos."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Directorio compartido de documentos (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Dirección"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Navegar por los documentos por FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuración aplicación del conocimiento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contenidos"
-
-#~ msgid "Image"
-#~ msgstr "Imagen"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancelar"
-
-#~ msgid "title"
-#~ msgstr "título"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP integrado al sistema de gestión de documentos"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Progreso de la configuración"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Proporciona un interfaz FTP para el sistema de gestión de documentos.\n"
-#~ "        Además del acceso a los documentos a través de OpenERP, este módulo\n"
-#~ "        permite acceder a los mismos a través del sistema de archivos "
-#~ "utilizando un\n"
-#~ "        cliente FTP.\n"
diff --git a/addons/document_ftp/i18n/es_EC.po b/addons/document_ftp/i18n/es_EC.po
deleted file mode 100644 (file)
index bd17551..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-# Spanish (Ecuador) translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-01-13 04:17+0000\n"
-"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
-"Language-Team: Spanish (Ecuador) <es_EC@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuración automática de directorios"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indique la dirección de red en la cual su servidor de OpenERP debería estar "
-"disponible para los usuarios finales. Esto depende de su topología de red y "
-"configuración, y sólo afectará a los enlaces mostrados a los usuarios. El "
-"formato es ANFITRIÓN:PUERTO y el anfitrión por defecto (localhost) sólo es "
-"adecuado para acceso desde la propia máquina del servidor."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Examinar archivos"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuración de Servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Examinar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr "Dirección del servidor o IP y el puerto para acceder al DMS."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Biblioteca compartida de módulos (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Dirección"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Examinar documento por FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuración aplicación del conocimiento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Examinar documento"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Examinar documento"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "Configurar Contenidos"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Un Interfaz FTP para el sistema de gestión de documentos.\n"
-#~ "        Además del acceso a documentos a través de OpenERP\n"
-#~ "        éste módulo permite acceder a los mismos a través del sistema de "
-#~ "archivos utilizando el\n"
-#~ "        Cliente FTP.\n"
-
-#~ msgid "Image"
-#~ msgstr "Imagen"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Progreso de Configuración"
-
-#~ msgid "title"
-#~ msgstr "Título"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP integrado al sistema de gestión de documentos"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancelar"
diff --git a/addons/document_ftp/i18n/es_MX.po b/addons/document_ftp/i18n/es_MX.po
deleted file mode 100644 (file)
index 4c568d4..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-13 22:59+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"<jesteve@zikzakmedia.com>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:55+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuración automática de directorios"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indique la dirección de red en la cual su servidor de OpenERP debería estar "
-"accesible para los usuarios finales. Esto depende de su topología de red y "
-"configuración, y sólo afectará a los enlaces mostrados a los usuarios. El "
-"formato es SERVIDOR:PUERTO y el servidor por defecto (localhost) sólo es "
-"adecuado para el acceso desde la propia máquina del servidor."
-
-#. module: document_ftp
-#: field:document.ftp.configuration,progress:0
-msgid "Configuration Progress"
-msgstr "Progreso de la configuración"
-
-#. module: document_ftp
-#: model:ir.actions.url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Navegar por los archivos"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,config_logo:0
-msgid "Image"
-msgstr "Imagen"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Dirección"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuración del servidor FTP"
-
-#. module: document_ftp
-#: model:ir.module.module,description:document_ftp.module_meta_information
-msgid ""
-"This is a support FTP Interface with document management system.\n"
-"    With this module you would not only be able to access documents through "
-"OpenERP\n"
-"    but you would also be able to connect with them through the file system "
-"using the\n"
-"    FTP client.\n"
-msgstr ""
-"Proporciona un interfaz FTP para el sistema de gestión de documentos.\n"
-"        Además del acceso a los documentos a través de OpenERP, este módulo\n"
-"        permite acceder a los mismos a través del sistema de archivos "
-"utilizando un\n"
-"        cliente FTP.\n"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Navegar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Dirección del servidor o IP y el puerto para acceder al sistema de gestión "
-"de documentos."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Directorio compartido de documentos (FTP)"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Cancel"
-msgstr "_Cancelar"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor FTP"
-
-#. module: document_ftp
-#: model:ir.module.module,shortdesc:document_ftp.module_meta_information
-msgid "Integrated FTP Server with Document Management System"
-msgstr "Servidor FTP integrado al sistema de gestión de documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "title"
-msgstr "título"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Navegar por los documentos por FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuración aplicación del conocimiento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contenidos"
diff --git a/addons/document_ftp/i18n/es_PY.po b/addons/document_ftp/i18n/es_PY.po
deleted file mode 100644 (file)
index fe4663c..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-# Spanish (Paraguay) translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-03-21 14:41+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Spanish (Paraguay) <es_PY@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuración automática de carpetas"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Navegar por los archivos"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuración del servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Navegar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Dirección del servidor o IP y el puerto para acceder al sistema de gestión "
-"de documentos."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Directorio compartido de documentos (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Dirección"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Navegar por los documentos por FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuración de la aplicación de conocimiento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contenidos"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Proporciona un interfaz FTP para el sistema de gestión de documentos.\n"
-#~ "        Además del acceso a los documentos a través de OpenERP, este módulo\n"
-#~ "        permite acceder a los mismos a través del sistema de archivos "
-#~ "utilizando un\n"
-#~ "        cliente FTP.\n"
-
-#~ msgid "Image"
-#~ msgstr "Imagen"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Progreso de la configuración"
-
-#~ msgid "title"
-#~ msgstr "título"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP integrado al sistema de gestión de documentos"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancelar"
diff --git a/addons/document_ftp/i18n/es_VE.po b/addons/document_ftp/i18n/es_VE.po
deleted file mode 100644 (file)
index 4c568d4..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-13 22:59+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"<jesteve@zikzakmedia.com>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:55+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuración automática de directorios"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indique la dirección de red en la cual su servidor de OpenERP debería estar "
-"accesible para los usuarios finales. Esto depende de su topología de red y "
-"configuración, y sólo afectará a los enlaces mostrados a los usuarios. El "
-"formato es SERVIDOR:PUERTO y el servidor por defecto (localhost) sólo es "
-"adecuado para el acceso desde la propia máquina del servidor."
-
-#. module: document_ftp
-#: field:document.ftp.configuration,progress:0
-msgid "Configuration Progress"
-msgstr "Progreso de la configuración"
-
-#. module: document_ftp
-#: model:ir.actions.url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Navegar por los archivos"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,config_logo:0
-msgid "Image"
-msgstr "Imagen"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Dirección"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuración del servidor FTP"
-
-#. module: document_ftp
-#: model:ir.module.module,description:document_ftp.module_meta_information
-msgid ""
-"This is a support FTP Interface with document management system.\n"
-"    With this module you would not only be able to access documents through "
-"OpenERP\n"
-"    but you would also be able to connect with them through the file system "
-"using the\n"
-"    FTP client.\n"
-msgstr ""
-"Proporciona un interfaz FTP para el sistema de gestión de documentos.\n"
-"        Además del acceso a los documentos a través de OpenERP, este módulo\n"
-"        permite acceder a los mismos a través del sistema de archivos "
-"utilizando un\n"
-"        cliente FTP.\n"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Navegar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Dirección del servidor o IP y el puerto para acceder al sistema de gestión "
-"de documentos."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Directorio compartido de documentos (FTP)"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Cancel"
-msgstr "_Cancelar"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor FTP"
-
-#. module: document_ftp
-#: model:ir.module.module,shortdesc:document_ftp.module_meta_information
-msgid "Integrated FTP Server with Document Management System"
-msgstr "Servidor FTP integrado al sistema de gestión de documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "title"
-msgstr "título"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Navegar por los documentos por FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuración aplicación del conocimiento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Navegar por los documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contenidos"
diff --git a/addons/document_ftp/i18n/et.po b/addons/document_ftp/i18n/et.po
deleted file mode 100644 (file)
index 71ce3cd..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-# Estonian translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-10-11 18:05+0000\n"
-"Last-Translator: Aare Vesi <Unknown>\n"
-"Language-Team: Estonian <et@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Failide sirvimine"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP serveri konfiguratsioon"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Sirvi"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Aadress"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
-
-#~ msgid "Image"
-#~ msgstr "Pilt"
-
-#~ msgid "title"
-#~ msgstr "pealkiri"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Tühista"
diff --git a/addons/document_ftp/i18n/fi.po b/addons/document_ftp/i18n/fi.po
deleted file mode 100644 (file)
index 2115402..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# Finnish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-06-27 06:20+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Finnish <fi@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Konfiguroi FTP palvelin"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Automaattinen hakemistojen konfigurointi"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Selaa tiedostoja"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP-palvelin"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP palvelimen konfiguraatio"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "Selaa"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Palvelimen osoite tai IP ja portti mihin käyttäjien tulisi ottaa yhteyttä "
-"DMS:n käyttöä varten"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Jaettu tietolähde (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Osoite"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Dokumenttien FTP selailu"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Tiedonhallintaohjelmiston konfiguraatio"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Dokumenttien selailu"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Selaa dokumenttia"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
-
-#~ msgid "Image"
-#~ msgstr "Kuva"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Konfiguraation eteneminen"
-
-#~ msgid "title"
-#~ msgstr "otsikko"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr ""
-#~ "Integroitu FTP palvelin dokumenttienhallintajärjestelmällä varustettuna"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Peruuta"
diff --git a/addons/document_ftp/i18n/fr.po b/addons/document_ftp/i18n/fr.po
deleted file mode 100644 (file)
index 67cd72f..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-# French translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-12-29 10:19+0000\n"
-"Last-Translator: Olivier Lenoir <olivier.lenoir@free.fr>\n"
-"Language-Team: French <fr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurer le serveur FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuration automatique des répertoires"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indiquez l'adresse réseau sur laquelle votre serveur OpenERP doit être "
-"accessible pour les utilisateurs finaux. Ceci dépend de la topologie de "
-"votre réseau et de votre configuration, et il affectera seulement les liens "
-"affiché aux utilisateurs. Le format est HÔTE:PORT et l'hôte par défaut "
-"(localhost) est seulement approprié pour des accès depuis la machine du "
-"serveur."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Parcourir les fichiers"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Cliquer sur l'url pour parcourir les documents"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Serveur FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuration du serveur FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Parcourir les documents"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Parcourir"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Adresse du serveur ou adresse IP et port auquel les utilisateurs devraient "
-"se connecter pour l'accès au GED."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Répertoire partagé (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresse"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Annuler"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Parcourir les documents FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuration de l'application de gestion des connaissances"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Parcourez le document"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "ou"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Parcourir le document"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "title"
-#~ msgstr "Titre :"
-
-#~ msgid "Image"
-#~ msgstr "Image"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Avancement de la configuration"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Annuler"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Ce module est une interface compatible FTP ainsi qu'un système de gestion "
-#~ "documentaire.\n"
-#~ "    Avec ce module, vous pourrez non seulement accéder à des documents "
-#~ "partout dans OpenERP\n"
-#~ "    mais aussi vous connecter à ces documents à travers le système de "
-#~ "fichier en utilisant le \n"
-#~ "    client FTP.\n"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Serveur FTP intégré au système de gestion documentaire"
diff --git a/addons/document_ftp/i18n/gl.po b/addons/document_ftp/i18n/gl.po
deleted file mode 100644 (file)
index 907aae1..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# Galician translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-02-24 01:08+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Galician <gl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuración automática de directorios"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indique a dirección de rede na que o seu servidor de OpenERP debería estar "
-"dispoñible para os usuarios finais. Isto depende da topoloxía de rede e da "
-"configuración, e só afectará aos enlaces mostrados aos usuarios. O formato é "
-"ANFITRIÓN:PORTO e o anfitrión por defecto (localhost) só é adecuado para "
-"acceso desde a propia máquina do servidor."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Procurar arquivos"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuración de servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Explorar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Dirección do servidor ou IP e porto para que os usuarios podan conectar ao "
-"acceso DMS."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Repositorio compartido (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Enderezo"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Examinar documento por FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuración da aplicación do coñecemento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Examinar documento"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Examinar documento"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Esta é unha Interfaz FTP para o sistema de xestión de documentos.\n"
-#~ "        Con este módulo non podrías acceder aos documentos a través de "
-#~ "OpenERP\n"
-#~ "        sen embargo pódese conectar con el a través do sistema de arquivos "
-#~ "usando o cliente FTP\n"
-
-#~ msgid "Image"
-#~ msgstr "Imaxe"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Progreso da Configuración"
-
-#~ msgid "title"
-#~ msgstr "título"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP integrado con sistema de xestión de documentos"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancelar"
diff --git a/addons/document_ftp/i18n/hr.po b/addons/document_ftp/i18n/hr.po
deleted file mode 100644 (file)
index f72569a..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-# Croatian translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-01-28 20:42+0000\n"
-"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
-"Language-Team: Croatian <hr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Postavke FTP poslužitelja"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Automatska postava mapa"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Predstavlja adresu na mreži, na kojoj bi OpenERP trebao biti dostupan "
-"krajnjim korisnicima. Ona ovisi o Vašoj topologiji mreže kao i postavkama, i "
-"utječe jedino na linkove prikazane krajnjim korisnicima. Format zapisa je "
-"HOST:PORT a zadani host (localhost) korisi se jedino za pristup sa samog "
-"poslužitelja."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Pretraži datoteke"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Kliknite na poveznicu za pregled dokumenata"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP poslužitelj"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Postave FTP poslužitelja"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Pregled dokumenata"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Pregledaj"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"IP adresa i port na koji se korisnici spajaju na DMS (sustav upravljana "
-"dokumentima)"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Dijeljeni repozitorij (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "IP adresa"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Odustani"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Pregled dokumenata na FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Pregled dokumenta"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "ili"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Pregled dokumenta"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
-
-#~ msgid "Image"
-#~ msgstr "Slika"
-
-#~ msgid "title"
-#~ msgstr "naslov"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Odustani"
diff --git a/addons/document_ftp/i18n/hu.po b/addons/document_ftp/i18n/hu.po
deleted file mode 100644 (file)
index dce7675..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#    * document_ftp
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-02-03 12:46+0000\n"
-"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\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: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "FTP szerver beállítása"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Automatikus könyvtárbeállítás"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Hálózati címek megjelenítése melyen az OpenERP szervere elérhető a vég-"
-"felhasználók részére. Ez a hálózati beállítások topológiájától függ, és csak "
-"a felhasználóknak megjelenített elérési utakkat befolyásolja. A HOST:PORT "
-"forma és az alapértelmezett host (localhost) csak akkor megfelelő, ha a "
-"szerver maga az alapgép."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Fájlok böngészése"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Kattintson az URL elérési útra a dokumentum böngészéséhez"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP szerver"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP szerver konfiguráció"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Dokumantumok böngészése"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Böngészés"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Szerver cím vagy IP és port amelyen a felhasználónak kapcsolódnia kell a DMS "
-"eléréshez"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Megosztott (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Cím"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Mégsem"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Documentum FTP böngészése"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Tudáskezelő programok beállítása"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Dokumentum böngészése"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "vagy"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Dokumentum böngészése"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "Kép"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Beállítás előrehaladása"
diff --git a/addons/document_ftp/i18n/it.po b/addons/document_ftp/i18n/it.po
deleted file mode 100644 (file)
index 1c38e9a..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# Italian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-15 23:09+0000\n"
-"Last-Translator: Sergio Corato <Unknown>\n"
-"Language-Team: Italian <it@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configura FTP server"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configurazione automatica Directory"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indica l'indirizzo di rete su cui i vostri server OpenERP possono essere "
-"disponibili all'utente finale. Questo dipende dalla topologia di rete e "
-"dalla configurazione, e interessa solamente i link visualizzati dagli "
-"utenti. Il formato è HOST:PORTA e il default host (localhost) è adatto "
-"solamente per l'accesso dal server su se stesso.."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Sfoglia files"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Cliccare l'url per sfogliare i documenti"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Server FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configurazione server FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Sfoglia Documenti"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Sfoglia"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Indirizzo Server o IP e porta a cui gli utenti dovrebbero connettersi per "
-"l'accesso al DMS"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Deposito condiviso (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Indirizzo"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Annulla"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Browse FTP documenti"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configurazione applicazione know how"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Sfoglia documento"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "o"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Sfoglia documento"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "title"
-#~ msgstr "titolo"
-
-#~ msgid "Image"
-#~ msgstr "Immagine"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Annulla"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Questo è un supporto all'interfaccia FTP con il Sistema di Gestione "
-#~ "Documentale.\n"
-#~ "    Con questo modulo non solo è possibile accedere ai documenti da OpenERP\n"
-#~ "    ma è altresì possibile connettersi ad esso tramite l'accesso ai files "
-#~ "direttamente\n"
-#~ "    via client FTP.\n"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "FTP server integrato con il Sistema di Gestione Documentale"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Avanzamento Configurazione"
diff --git a/addons/document_ftp/i18n/ja.po b/addons/document_ftp/i18n/ja.po
deleted file mode 100644 (file)
index c1cc07d..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-# Japanese translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-04-21 16:39+0000\n"
-"Last-Translator: Masaki Yamaya <Unknown>\n"
-"Language-Team: Japanese <ja@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "FTPサーバを設定する"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "自動ディレクトの設定"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"ユーザがアクセスするOpenERPサーバのネットワークアドレスを指定して下さい。それはネットワークトポロジとその設定によって決まり、ユーザに表示されるリン"
-"クになります。\r\n"
-"指定の形式は HOST:PORT であり、デフォルトのホスト(ローカルホスト)がサーバからのアクセスに最も適しています。"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "ファイルをブラウズする"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTPサーバ"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTPサーバの設定"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_ブラウズ(_B)"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr "サーバアドレスあるいはDMSアクセスのために接続するIPとポート"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "共有リプジトリ(FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "住所"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "FTP文書をブラウズする"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "知識アプリケーションの設定"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "文書をブラウズする"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "文書をブラウズする"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "画像"
-
-#~ msgid "title"
-#~ msgstr "タイトル"
-
-#~ msgid "_Cancel"
-#~ msgstr "キャンセル(_C)"
diff --git a/addons/document_ftp/i18n/mk.po b/addons/document_ftp/i18n/mk.po
deleted file mode 100644 (file)
index 49a929f..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-# Macedonian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-03-07 07:50+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Macedonian <mk@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Конфигурирај FTP сервер"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Автоматска конфигурација на директориум"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Ја покажува адресата на која OpenERP ќе биде достапен за крајните корисници. "
-"Ова зависи од мрежната топологија и конфигурација и има влијание само врз "
-"линковите прикажани на корисниците. Форматот е HOST:PORT и стандардниот хост "
-"(localhost) е за пристап само преку самиот сервер.."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Прелистување фајлови"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Кликни на url-то за прелистување на документите"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP сервер"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Конфигурација на FTP серверот"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Прелистување документи"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Прегледај"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Адреса на серверот или IP и порт на кои корисниците се поврзуваат за пристап "
-"до DMS"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Заеднички магацин (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Адреса"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Откажи"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Прелистување на документи преку FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Конфигурација за апликација Знаење"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Прелистување на документи"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "или"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Прелистај документ"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
diff --git a/addons/document_ftp/i18n/mn.po b/addons/document_ftp/i18n/mn.po
deleted file mode 100644 (file)
index d0c9166..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Mongolian translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-08-22 03:45+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Mongolian <mn@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "FTP Сервэр тохируулах"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Автомат Директорын Тохиргоо"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Эцсийн хэрэглэгчидийн OpenERP-руу хандаж чадах сүлжээний хаягийг илэрхийлнэ. "
-"Энэ танай сүлжээний бүтэц, тохиргооноос хамаарах бөгөөд зөвхөн хэрэглэгчдэд "
-"харагдах холбоост л нөлөөтэй. Формат нь HOST:PORT гэсэн загвартай бөгөөд "
-"анхын host нь (localhost) гэж байдаг нь зөвхөн сервер машин дээрээс хандахад "
-"л тохирно."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Файлуудыг тольдох"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP Сервер"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP Серверийн тохиргоо"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Тольдох"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr "DMS хандалтаар хандах серверийн хаяг эсвэл IP болон порт."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Агуулахыг хуваалцах (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Хаяг"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "FTP-ээр баримт оруулах"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Мэдлэгийн Програмын Тохиргоо"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Баримт оруулах"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Оруулах баримт"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "title"
-#~ msgstr "гарчиг"
-
-#~ msgid "Image"
-#~ msgstr "Зураг"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Цуцлах"
diff --git a/addons/document_ftp/i18n/nb.po b/addons/document_ftp/i18n/nb.po
deleted file mode 100644 (file)
index ea35c02..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-# Norwegian Bokmal translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-09-06 14:45+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Norwegian Bokmal <nb@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Konfigurer FTP serveren"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Automatisk Katalog Konfigurasjon."
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indikere nettverksadressen som din OpenERP server bør være tilgjengelige for "
-"sluttbrukerne. Dette avhenger av nettverkstopologi og konfigurasjon, og vil "
-"bare påvirke lenker som vises til brukerne. Formatet er HOST: PORT og "
-"standard verten (lokalhost) er bare egnet for tilgang fra serveren maskinen "
-"selv .."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Bla i filer"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP-tjener"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP Serverkonfigurasjon"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Bla gjennom"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Server adresse eller IP og port til hvilke brukere som skal koble seg til "
-"for DMS tilgang"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Wikimedia Commons (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresse"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Document FTP Bla i."
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Kunnskap Programkonfigurasjon"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Dokument Bla i."
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Bla igjennom dokument"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_konfig_innhold"
-
-#~ msgid "Image"
-#~ msgstr "Bilde"
-
-#~ msgid "title"
-#~ msgstr "tittel"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Avbryt"
diff --git a/addons/document_ftp/i18n/nl.po b/addons/document_ftp/i18n/nl.po
deleted file mode 100644 (file)
index af4b2c8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# Dutch translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-11-24 21:49+0000\n"
-"Last-Translator: Erwin van der Ploeg (BAS Solutions) <Unknown>\n"
-"Language-Team: Dutch <nl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "FTP Server configureren"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Auto map configuratie"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Geeft het netwerkadres aan waarop uw OpenERP server te vinden zou moeten "
-"zijn voor eindgebruikers. Dit hangt af van netwerk topologie en configuratie "
-"en zal alleen de link beïnvloeden die wordt getoond aan de gebruikers. Het "
-"formaat HOST:PORT en standaard host (localhost) zijn allen geschikt voor "
-"toegang vanaf de server machine zelf."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Bestanden bladeren"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Klik op de url om door de documenten te bladeren"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP server configuratie"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Blader door documenten"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Bladeren"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Server adres of IP en poort waarmee gebruikers moeten verbinden voor DMS "
-"toegang"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Gedeelde repository (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adres"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Annuleren"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Document FTP bladeren"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Kennis applicatie configuratie"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Document bladeren"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "of"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Document bladeren"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "title"
-#~ msgstr "titel"
-
-#~ msgid "Image"
-#~ msgstr "Afbeelding"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Configuratie voortgang"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Annuleren"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Dit is een support FTP interface met documentbeheer systeem.\n"
-#~ "    Met deze module kunt u niet alleen documenten vanuit OpenERP benaderen,\n"
-#~ "    maar u kunt ze ook via bestandsbeheer benaderen met gebruikmaking van "
-#~ "een\n"
-#~ "    FTP client.\n"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Geïntegreerde FTP server met documentbeheer systeem"
diff --git a/addons/document_ftp/i18n/pl.po b/addons/document_ftp/i18n/pl.po
deleted file mode 100644 (file)
index e1ffd17..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# Polish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-01-07 20:16+0000\n"
-"Last-Translator: Andrzej Król <andrzej.krol@poczta.onet.eu>\n"
-"Language-Team: Polish <pl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Konfiguruj Serwer FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Autokonfiguracja katalogu"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Wskazuje adres sieciowy na którym twój serwer OpenERP powinien być dostępny "
-"dla użytkowników końcowych. To zależy od topologii sieci i ustawień i ma "
-"efekt tylko w odniesieniu do linków wyświetlanych użytkownikom. Format to "
-"HOST:PORT i domyślny (localhost) jest do użytku tylko z poziomu serwera."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Przeglądaj pliki"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Kliknij adres url żeby przeglądać dokumenty"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Serwer FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Konfiguracja serwera FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Przeglądaj Dokumenty"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Przeglądaj"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Adres serwera lub IP i port do którego użytkownik powinien się podłączyć dla "
-"dostępu do DMS (System Zarządzania Dokumentami)."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Współdzielone repozytorium (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresy"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Anuluj"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "FTP Przeglądaj dokument"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Konfiguracja aplikacji wiedzy"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Przeglądanie dokumentów"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "lub"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Przeglądaj dokumenty"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "title"
-#~ msgstr "tytuł"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Postęp konfiguracji"
-
-#~ msgid "Image"
-#~ msgstr "Obraz"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Anuluj"
diff --git a/addons/document_ftp/i18n/pt.po b/addons/document_ftp/i18n/pt.po
deleted file mode 100644 (file)
index 60d4a64..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-# Portuguese translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-11 17:33+0000\n"
-"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
-"Language-Team: Portuguese <pt@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar servidor de FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuração automática de diretórios"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indicar o endereço de rede em que o servidor OpenERP deve ser acedido por "
-"utilizadores finais. Isso depende da topologia da rede e configuração, e só "
-"vai afectar os links exibidos aos utilizadores. O formato é HOST:PORT e o "
-"host padrão (localhost) só é adequado para o acesso da máquina do servidor "
-"em si.."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Procurar Ficheiros"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Carregue no URL para percorrer os documentos"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuração do servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Percorrer os documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Procurar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Endereço do servidor ou IP e a porta à qual os utilizadores devem se conetar "
-"para acesso DMS"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Repositório Partilhado (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Endereço"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Procurar Documento FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuração da Aplicação do conhecimento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Pesquisar Documento"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "ou"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Procurar Documento"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "Imagem"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Processo de configuração"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP integrado com sistema de gestão documental"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Isto é um interface entre o FTP e a gestão documental\n"
-#~ "    Com este módulo, não só será possível aceder a dcoumentos através do "
-#~ "openERP\n"
-#~ "    como também será possível ligar-se aos mesmos através de um cliente FTP\n"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancelar"
-
-#~ msgid "title"
-#~ msgstr "Título"
diff --git a/addons/document_ftp/i18n/pt_BR.po b/addons/document_ftp/i18n/pt_BR.po
deleted file mode 100644 (file)
index a1e1d7e..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# Brazilian Portuguese translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# Renato Lima <renatonlima@gmail.com>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-10 15:06+0000\n"
-"Last-Translator: Projetaty Soluções OpenSource <Unknown>\n"
-"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configurar Servidor de FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configuração Automática de Diretório"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indique o endereço em que seu servidor OpenERP deve ser acessível para  os "
-"usuários finais. Isso depende da sua topologia de rede e configuração. O "
-"formato é HOST:PORT e o host padrão (localhost) é adequado apenas para  "
-"acesso a partir  da máquina própria maquina.."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Navegar pelos Arquivos"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Clique na url para navegar pelos documentos"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Servidor FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configuração do Servidor FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Navegar pelos Documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "(_B) Navegar"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"O endereço do servidor ou IP e porta que o usuário deve conectar para acesso "
-"DMS."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Repositório Compartilhado (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Endereço"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Navegador FTP de Documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configuração da Aplicação de Conhecimento"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Navegador de Documentos"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "ou"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Navegar por Documentos"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Esta é uma interface de suporte a FTP com Sistema de Gestão de Documentos.\n"
-#~ "    Com este módulo você não só seria capaz de acessar documentos através do "
-#~ "OpenERP\n"
-#~ "    mas você também poderia acessar os documentos através do sistema de "
-#~ "arquivos usando o\n"
-#~ "    cliente FTP.\n"
-
-#~ msgid "Image"
-#~ msgstr "Imagem"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Configuração em Progresso"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Servidor FTP Integrado com Sistema de Gestão de Documentos"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancelar"
-
-#~ msgid "title"
-#~ msgstr "título"
diff --git a/addons/document_ftp/i18n/ro.po b/addons/document_ftp/i18n/ro.po
deleted file mode 100644 (file)
index 3925b0b..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# Romanian translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-01-04 13:13+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Romanian <ro@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Configureaza Serverul FTP"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Configurare Director Automata"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Indica adresa retelei la care serverul OpenERP ar trebui sa fie accesibil "
-"utilizatorilor finali. Aceasta depinde de topologia si configurarea retelei "
-"dumneavoastra, si va afecta doar link-urile afisate utilizatorilor. Formatul "
-"este HOST:PORT, iar gazda predenifinta (localhost) (gazda locala) este "
-"potrivita doar pentru accesul de la server.."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "cunostinte.config.setari"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Rasfoieste fisiere"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Faceti click pe url pentru a cauta documentele"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Server FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Configurare Server FTP"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Cautare Documente"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Rasfoieste"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Adresa serverului sau IP-ul si portul la care utilizatorii ar trebui sa se "
-"conecteze pentru acces DMS"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Depozit comun (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresa"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Anuleaza"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Rasfoieste Documentul FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Configurare Aplicare Cunostinte"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Rasfoire document"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "sau"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Rasfoieste Documentul"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_continuturi"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Aceasta este o Interfata FTP suport cu sistemul managementului "
-#~ "documentelor.\n"
-#~ "    Cu acest modul veti putea nu doar sa accesati documente prin OpenERP, "
-#~ "ci\n"
-#~ "    va veti putea si conecta la ele prin sistemul de fisiere folosind\n"
-#~ "    clientul FTP.\n"
-
-#~ msgid "Image"
-#~ msgstr "Imagine"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Progres configurare"
-
-#~ msgid "title"
-#~ msgstr "titlu"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Server FTP integrat cu Sistemul Managementului Documentelor"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Anuleaza"
diff --git a/addons/document_ftp/i18n/ru.po b/addons/document_ftp/i18n/ru.po
deleted file mode 100644 (file)
index d800bc2..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# Russian translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-28 12:44+0000\n"
-"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
-"Language-Team: Russian <ru@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Настройка FTP сервера"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Автоматическая настройка каталога"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Указывает сетевой адрес, на котором сервер OpenERP должен быть доступен для "
-"конечных пользователей. Это зависит от конфигурации и топологии сети и "
-"влияет только на отображение ссылок. Формат АДРЕС:ПОРТ и адрес по умолчанию "
-"(localhost) подходит только для доступа с самого сервера."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Просмотр файлов"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Щелкните URL-адрес для просмотра документов"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP Сервер"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Настройка FTP сервера"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Просмотр документов"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Обзор"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Адрес сервера или IP и порт для соединения пользователя и доступа к "
-"документам"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Общее хранилище (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Адрес"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Отмена"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Просмотр документа через FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Настройка приложения Знания"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Просмотр документа"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "или"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Просмотр документа"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "Изображение"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Выполнение настройки"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Сервер FTP интегрированный  с системой управления документами"
-
-#~ msgid "title"
-#~ msgstr "title"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Отмена"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Это поддержка интерфейса FTP к системе управления документами.\n"
-#~ "    С помощью этого модуля вы не только получите доступ к документам через "
-#~ "OpenERP,\n"
-#~ "    но вы также сможете соединяться с ней через файловую систему, используя "
-#~ "\n"
-#~ "    FTP-клиент.\n"
diff --git a/addons/document_ftp/i18n/sk.po b/addons/document_ftp/i18n/sk.po
deleted file mode 100644 (file)
index 658a361..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-# Slovak translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-06-09 09:40+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Slovak <sk@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Prehľadávať súbory"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP Server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Nastavenia FTP Servera"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr ""
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresa"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
-
-#~ msgid "Image"
-#~ msgstr "Obrázok"
diff --git a/addons/document_ftp/i18n/sl.po b/addons/document_ftp/i18n/sl.po
deleted file mode 100644 (file)
index 3b245dd..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# Slovenian translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-10-19 07:34+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Slovenian <sl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Konfiguriraj FTP strežnik"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Avto konfiguracija map"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Določa omrežni naslov, na katerem bo dosegljiv vaš OpenERP server za končne "
-"uporabnike. To je odvisno od topologije in nastavitev vašega omrežja. Vpliva "
-"samo na povezavo, ki se izpiše uporabniku. Format je HOST:PORT in privzeti "
-"strežnik (localhost) je primeren samo za dostop iz serverja samega."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Brskanje Datoteke"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Potrdite url za brskanje po dokumentih"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "Strežnik FTP"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Konfiguracija FTP strežnika"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "brskanje po dokumentih"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Prebrskaj"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Naslov strežnika ali IP in vrata, na katerega se bodo uporabniki povezali za "
-"DMS dostop"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Deljeni repozitorij (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Naslov"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "Preklic"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "FTP brskanje po dokumentih"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Nastavitev aplikacije znanja"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Brskanje po dokumentih"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "ali"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Brskanje po dokumentu"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "Slika"
-
-#~ msgid "title"
-#~ msgstr "naslov"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Prekliči"
diff --git a/addons/document_ftp/i18n/sr.po b/addons/document_ftp/i18n/sr.po
deleted file mode 100644 (file)
index 347d5aa..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-# Serbian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-11-14 08:02+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Serbian <sr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Auto Podesavanje dIrektorijuma"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Pretrazi fajlove"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP Server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "KOnfiguracija FTP Servera"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Browse"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Adresa Servera ili IP i Port na koji bi korisnik trebalo da se konektuje za "
-"DMS pristup"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Deljeno skladiste (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "FTP pretrazi Dokumente"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Pretrazi Dokumente"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Pretrazi Dokument"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "title"
-#~ msgstr "Naslov"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Konfiguracioni Proces"
-
-#~ msgid "Image"
-#~ msgstr "Slika"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Cancel"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Ovo podrzava FTP Interfejs sa dokument menadzment sistemom.\n"
-#~ "    Sa ovim modulom necete biti u mogucnosti da samo pristupite dokumentima "
-#~ "kroz OpenERP\n"
-#~ "    nego ce te takodje moci da se konektujete uz pomoc modula kroz fajl "
-#~ "sistem koristeci\n"
-#~ "    FTP klijenta.\n"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Integrisani FTP Server sa Dokument Menadzment Sistemom"
diff --git a/addons/document_ftp/i18n/sr@latin.po b/addons/document_ftp/i18n/sr@latin.po
deleted file mode 100644 (file)
index aea6e2f..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# Serbian latin translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-04-05 15:29+0000\n"
-"Last-Translator: Milan Milosevic <Unknown>\n"
-"Language-Team: Serbian latin <sr@latin@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Podesi FTP server"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Auto-podešavanje direktorijuma"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Odredite adresu mreže na koju bi Vaši OpenERP server trebalo da bude "
-"dostupan za konačne korisnike. Ovo zavisi od Vaše mrežne toplogije i "
-"podešavanja, i neće imati uticaja na linkove prikazane korisnicima. Format "
-"je HOST:PORT i domaćin po defaultu (localhost) je jedino prikladan za "
-"pristup na server sa same mašine."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Pretraži datoteke"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP Server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "Podešavanje FTP servera"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Pretraži"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Adresa Servera ili IP i Port na koji bi korisnik trebalo da se konektuje za "
-"DMS pristup"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Deljeno skladište"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adresa"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Pretraži FTP dokumente"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Podešavanje aplikacije znanja"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Pretrazi Dokumente"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Pretraži dokumenta"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Konfiguracioni Proces"
-
-#~ msgid "Image"
-#~ msgstr "Slika"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Ovo podrzava FTP Interfejs sa dokument menadzment sistemom.\n"
-#~ "    Sa ovim modulom necete biti u mogucnosti da samo pristupite dokumentima "
-#~ "kroz OpenERP\n"
-#~ "    nego ce te takodje moci da se konektujete uz pomoc modula kroz fajl "
-#~ "sistem koristeci\n"
-#~ "    FTP klijenta.\n"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Integrisani FTP Server sa Dokument Menadzment Sistemom"
-
-#~ msgid "title"
-#~ msgstr "naslov"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Otkaži"
diff --git a/addons/document_ftp/i18n/sv.po b/addons/document_ftp/i18n/sv.po
deleted file mode 100644 (file)
index c3ccbce..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-# Swedish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-12-15 11:23+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Swedish <sv@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "Konfigurera FTP-servern"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Automatisk katalogkonfiguration"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"Ange nätverksadressen som din OpenERP servern ska vara nåbar på för "
-"slutanvändare. Det beror på ditt nätverk topologi och konfiguration, och "
-"kommer endast att påverka hur länkarna visas för användarna. Formatet är "
-"värd: PORT och förvald värd (localhost) är endast lämplig för åtkomst från "
-"servern själva maskinen .."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Bläddra bland filer"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP-server"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP-serverkonfiguration"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Bläddra"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"Serveradress eller IP och den port som användarna ska ansluta till för DMS-"
-"tillgång"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Delat arkiv (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adress"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "Bläddra bland dokumenten via FTP"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Konfiguration av kunskapshanteringsapplikationen"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Dokumentbläddring"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Bläddra bland dokument"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "title"
-#~ msgstr "titel"
-
-#~ msgid "Image"
-#~ msgstr "Bild"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Konfigurationsförlopp"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Avbryt"
diff --git a/addons/document_ftp/i18n/tr.po b/addons/document_ftp/i18n/tr.po
deleted file mode 100644 (file)
index 8da0245..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-# Turkish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-06-23 19:32+0000\n"
-"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
-"Language-Team: Turkish <tr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "FTP Sunucusunu Yapılandır"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "Otomatik Klasör Yapılandırması"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"OpenERP sunucusunda son kullanıcıların erişebileceği ağ adresini belirtir. "
-"Bu, ağ yapınıza ve yapılandırmasına bağlıdır ve yalnızca kullanıcılara "
-"gösterilen ağları etkiler. Formatı HOST:PORT şeklindedir ve varsayılan "
-"sunucu (localhost) yalnızca sunucu cihazından erişim için uygundur."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "Dosyalara Gözat"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "Dökümanları incelemek için adrese tıklayın"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP Sunucusu"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP Sunucusu Yapılandırması"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "Dökümanları İncele"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "_Gözat"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-"DMS erişimi için kullanıcıların bağlanacağı sunucu adresi ya da IP ve "
-"bağlantı noktasıdır."
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "Paylaşılan Havuz (FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "Adres"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "İptal"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "FTP BelgeTaraması"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "Bilgi Birikimi Uygulama Ayarları"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "Belge Tarama"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "ya da"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "Belge Tara"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr ""
-#~ "Bu bir belge yönetim sistemli destek FTP Arayüzüdür.\n"
-#~ "    Bu modül ile yalnızca OpenERP nin içinden belgelere erişmekle kalmayıp \n"
-#~ "    FTP istemcisini kullanarak dosya sistemi içinden de \n"
-#~ "    bağlanabileceksiniz.\n"
-
-#~ msgid "Image"
-#~ msgstr "Resim"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "Yapılandırma Gelişimi"
-
-#~ msgid "title"
-#~ msgstr "unvan"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "Belge Yönetim Sistemi ile entegre FTP Sunucusu"
-
-#~ msgid "_Cancel"
-#~ msgstr "_Vazgeç"
diff --git a/addons/document_ftp/i18n/vi.po b/addons/document_ftp/i18n/vi.po
deleted file mode 100644 (file)
index 143fb38..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-# Vietnamese translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-01-17 09:02+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Vietnamese <vi@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr ""
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr ""
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr ""
diff --git a/addons/document_ftp/i18n/zh_CN.po b/addons/document_ftp/i18n/zh_CN.po
deleted file mode 100644 (file)
index 321cf51..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-# Chinese (Simplified) translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-12-21 15:11+0000\n"
-"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
-"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "配置 FTP 服务器"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "自动目录设置"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"输入你的最终用户用于连接你OpenERP服务器的网址。基于你的网络配置,会影响客户端显示的链接。格式是:主机:端口。注意localhost只是在服务器本机"
-"才有用的。"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr "knowledge.config.settings"
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "浏览文件"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr "点击 urk 来浏览文档"
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP 服务器"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP 服务器设置"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr "浏览文档"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "浏览(_B)"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr "服务器地址或IP地址,以及端口。用于用户连接文档管理系统。"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "共享仓库(FTP)"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "地址"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr "取消"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "文档 FTP 浏览"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "知识管理应用设置"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "文档浏览"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr "或"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "浏览文档"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "图像"
-
-#~ msgid "title"
-#~ msgstr "标题"
-
-#~ msgid "Integrated FTP Server with Document Management System"
-#~ msgstr "整合 FTP 服务器与文档管理系统"
-
-#~ msgid "_Cancel"
-#~ msgstr "取消(_C)"
-
-#~ msgid ""
-#~ "This is a support FTP Interface with document management system.\n"
-#~ "    With this module you would not only be able to access documents through "
-#~ "OpenERP\n"
-#~ "    but you would also be able to connect with them through the file system "
-#~ "using the\n"
-#~ "    FTP client.\n"
-#~ msgstr "此模块为文档管理增加了FTP支持。安装了这个模块你不仅可以在OpenERP里访问文档还能通过FTP客户端在文件系统上访问这些文件。\n"
-
-#~ msgid "Configuration Progress"
-#~ msgstr "设置进度"
diff --git a/addons/document_ftp/i18n/zh_TW.po b/addons/document_ftp/i18n/zh_TW.po
deleted file mode 100644 (file)
index b78383f..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-# Chinese (Traditional) translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-08-29 09:46+0000\n"
-"Last-Translator: Bonnie Duan <bonnie.duan@cenoq.com>\n"
-"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:43+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Configure FTP Server"
-msgstr "設置FTP 伺服器"
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_configuration
-msgid "Auto Directory Configuration"
-msgstr "自動目錄配置"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid ""
-"Indicate the network address on which your OpenERP server should be "
-"reachable for end-users. This depends on your network topology and "
-"configuration, and will only affect the links displayed to the users. The "
-"format is HOST:PORT and the default host (localhost) is only suitable for "
-"access from the server machine itself.."
-msgstr ""
-"說明OpenERP的服務器上的網絡地址應該為最終用戶訪問。這取決於您的網絡拓撲和配置,而且只會影響顯示給用戶的鏈接。的格式為HOST:PORT和預設的主機"
-"(localhost)的訪問從服務器本身只適合.."
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_knowledge_config_settings
-msgid "knowledge.config.settings"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.actions.act_url,name:document_ftp.action_document_browse
-msgid "Browse Files"
-msgstr "瀏覽檔案"
-
-#. module: document_ftp
-#: help:knowledge.config.settings,document_ftp_url:0
-msgid "Click the url to browse the documents"
-msgstr ""
-
-#. module: document_ftp
-#: field:document.ftp.browse,url:0
-msgid "FTP Server"
-msgstr "FTP 伺服器"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
-msgid "FTP Server Configuration"
-msgstr "FTP Server Configuration"
-
-#. module: document_ftp
-#: field:knowledge.config.settings,document_ftp_url:0
-msgid "Browse Documents"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "_Browse"
-msgstr "瀏覽(_B)"
-
-#. module: document_ftp
-#: help:document.ftp.configuration,host:0
-msgid ""
-"Server address or IP and port to which users should connect to for DMS access"
-msgstr "服務器地址或IP地址和端口,用戶應該連接到DMS訪問"
-
-#. module: document_ftp
-#: model:ir.ui.menu,name:document_ftp.menu_document_browse
-msgid "Shared Repository (FTP)"
-msgstr "供享的儲存庫"
-
-#. module: document_ftp
-#: field:document.ftp.configuration,host:0
-msgid "Address"
-msgstr "地址"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Cancel"
-msgstr ""
-
-#. module: document_ftp
-#: model:ir.model,name:document_ftp.model_document_ftp_browse
-msgid "Document FTP Browse"
-msgstr "瀏覽FTP文件"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "Knowledge Application Configuration"
-msgstr "知識應用配置"
-
-#. module: document_ftp
-#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
-msgid "Document Browse"
-msgstr "文件瀏覽"
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "or"
-msgstr ""
-
-#. module: document_ftp
-#: view:document.ftp.browse:0
-msgid "Browse Document"
-msgstr "瀏覽文件"
-
-#. module: document_ftp
-#: view:document.ftp.configuration:0
-msgid "res_config_contents"
-msgstr "res_config_contents"
-
-#~ msgid "Image"
-#~ msgstr "圖像"
-
-#~ msgid "title"
-#~ msgstr "標題"
-
-#~ msgid "_Cancel"
-#~ msgstr "取消(_C)"
diff --git a/addons/document_ftp/res_config.py b/addons/document_ftp/res_config.py
deleted file mode 100644 (file)
index 93b3aa6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Business Applications
-#    Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from openerp.osv import fields, osv
-from openerp.tools import config
-
-class documnet_ftp_setting(osv.osv_memory):
-    _name = 'knowledge.config.settings'
-    _inherit = 'knowledge.config.settings'
-    _columns = {
-        'document_ftp_url': fields.char('Browse Documents', size=128,
-            help ="""Click the url to browse the documents""", readonly=True),               
-    }
-
-    def get_default_ftp_config(self, cr, uid, fields, context=None):
-        action = self.pool.get('ir.model.data').get_object(cr, uid, 'document_ftp', 'action_document_browse')
-        return {'document_ftp_url': action.url}
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/res_config_view.xml b/addons/document_ftp/res_config_view.xml
deleted file mode 100644 (file)
index b571a4b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-        <record id="view_document_ftp_configuration" model="ir.ui.view">
-            <field name="name">Knowledge Application</field>
-            <field name="model">knowledge.config.settings</field>
-            <field name="inherit_id" ref="knowledge.view_knowledge_configuration"/>
-            <field name="arch" type="xml">
-                 <xpath expr="//div[@name='module_document_ftp']" position="after">
-                    <field name="document_ftp_url" widget="url"/>
-                 </xpath>
-            </field>
-        </record>
-    </data>
-</openerp>
diff --git a/addons/document_ftp/security/ir.model.access.csv b/addons/document_ftp/security/ir.model.access.csv
deleted file mode 100644 (file)
index 4a08a4a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink\r
diff --git a/addons/document_ftp/test/document_ftp_test.yml b/addons/document_ftp/test/document_ftp_test.yml
deleted file mode 100644 (file)
index fafd502..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
--   |
-    In order to test the document_ftp module in OpenERP, I will try different operations on the FTP interface and check their impacts on OpenERP's documents and vice-versa.
--
-    In order to test the behaviour of resource Directory, I will make one resource Directory "Labels" in OpenERP having type "Other Resources" and Directory mapped to object "Partner"
--
-    !record {model: 'document.directory', id: dir_label}:
-        name : "Labels"
-        storage_id : document.storage_default
-        type : ressource
-        content_ids:
-            - name: "Label"
-              report_id :  base.res_partner_address_report
--
-    Assign "res.partner" object to ressource_type_id. 
--
-    !python {model: document.directory}: |
-        ids = self.pool.get('ir.model').search(cr, uid, [('model','=','res.partner')])
-        id = self.write(cr, uid, [ref("dir_label")], {'ressource_type_id' : ids[0]}, context)
--
-    In order to check static directory in OpenERP which is the real directory just like system's local folders, 
-    First I create a directory in OpenERP named "Directory 1" with storage as "Default File storage" and type as "Static Directory"
--
-    !record {model: 'document.directory', id: directory_file}:
-        name : "File"
-        storage_id : document.storage_default
-        type : directory
--
-    I am create one Document name "Document" and select "File" as its Directory,
--
-    When I am creating the record, "Resource Title" is filled automatic with "Document".
--
-    !record {model: 'ir.attachment', id: document_1}:
-        name : "Document"
-        parent_id : directory_file
--
-    In order to connect FTP server and set "File" path,
-    I create one directory "New" in "File" directory from FTP and check its effect in OpenERP.
--
-    Also Rename the directory name "New" to "New Directory".
--
-    Remove directory "New Directory" and remove file "Document".
--
-    !python {model: ir.attachment}: |
-        from ftplib import FTP
-        from openerp.tools.misc import detect_ip_addr
-        from openerp.tools import config
-        ftp = FTP()
-        if detect_ip_addr:
-            host = config.get('ftp_server_host', detect_ip_addr())
-        else:
-            host = config.get('ftp_server_host', '127.0.0.1')
-        port = config.get('ftp_server_port','8021')
-        ftp.connect(host,port)
-        user = self.pool.get('res.users').read(cr, uid, uid, context)        
-        ftp.login(user.get('login',''),user.get('password',''))
-        ftp.cwd("/" + cr.dbname+"/Documents/File/")
-        ftp.mkd("New")
-        ftp.rename('New','New Directory')
-        ftp.cwd("/" + cr.dbname+"/Documents/File/")
-        ftp.rmd('New Directory')
-        ftp.delete('Document')
-        ftp.quit()
--
-    In order to check directory created from FTP is working perfectly
--
-    Now I will test the same for Resource directory which is mapped with OpenERP object. 
-    When you open this directory from FTP clients, it displays each record of mapped resource object as directory.
--
-    Now I test FTP client and Open the "Labels" Directory to check Resource Directory in FTP.
-    I can see that all Labels of OpenERP are shown as children of "Labels" in FTP client as Directories.
--
-    !python {model: ir.attachment}: |
-        from ftplib import FTP
-        from openerp.tools.misc import detect_ip_addr
-        from openerp.tools import config
-        ftp = FTP()
-        if detect_ip_addr:
-            host = config.get('ftp_server_host', detect_ip_addr())
-        else:
-            host = config.get('ftp_server_host', '127.0.0.1')
-        port = config.get('ftp_server_port','8021')
-        ftp.connect(host,port)
-        user = self.pool.get('res.users').read(cr, uid, uid, context)        
-        ftp.login(user.get('login',''),user.get('password',''))
-        ftp.cwd("/" + cr.dbname+"/Documents/Labels/")
--
-    I make sure that I Open Labels Directory successfully.
diff --git a/addons/document_ftp/test/document_ftp_test2.yml b/addons/document_ftp/test/document_ftp_test2.yml
deleted file mode 100644 (file)
index ce8e259..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
--
-    In order to test the document_ftp functionality
--
-    I open the 8021 port and see for ftp presence there
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_plain_ftp(timeout=2.0)
-        assert ftp.sock and (ftp.lastresp == '220'), ftp.lastresp
-        ftp.close()
--
-    I read the list of databases at port 8021 and confirm our db is
-    there
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_login(cr, uid, self)
-        assert cr.dbname in ftp.nlst("/")
-        ftp.close()
--
-    I try to locate the default "Documents" folder in the db.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_login(cr, uid, self)
-        ftp.cwd('Documents')
-        ftp.close()
--
-    I create a "test.txt" file at the server (directly). The file
-    should have the "abcd" content
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        fdata = StringIO('abcd')
-        ftp.storbinary('STOR test.txt', fdata)
-        ftp.close()
--
-    I look for the "test.txt" file at the server
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        assert ftp.nlst("test.txt") == ['test.txt']
-        ftp.close()
--
-    I check that the content of "test.txt" is "abcd"
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        gotdata = te.get_ftp_fulldata(ftp, "test.txt")
-        ftp.close()
-        assert gotdata == 'abcd', 'Data: %r' % gotdata
--
-    I append the string 'defgh' to "test.txt"
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        fdata = StringIO('defgh')
-        ftp.storbinary('APPE test.txt', fdata)
-        ftp.close()
--
-    I check that the content of "text.txt" is 'abcddefgh'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        gotdata = te.get_ftp_fulldata(ftp, "test.txt")
-        ftp.close()
-        assert gotdata == 'abcddefgh', 'Data: %r' % gotdata
--
-    I try to cd into an non-existing folder 'Not-This'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        import ftplib
-        ftp = te.get_ftp_login(cr, uid, self)
-        try:
-            ftp.cwd('/Not-This')
-            assert False, "We should't be able to change here"
-        except ftplib.error_perm:
-            pass
-        except OSError, err:
-            ftp.close()
-            assert err.errno == 2, err.errno
-        ftp.close()
--
-    I create a "test2.txt" file through FTP.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        fdata = StringIO('abcd')
-        ftp.storbinary('STOR test2.txt', fdata)
-        ftp.close()
--
-    I look for the "test2.txt" file at the server
--
-    !python {model: ir.attachment }: |
-        cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
-        ids = self.search(cr, uid, [('name', '=', 'test2.txt')])
-        assert ids, "No test2.txt file found."
--
-    I delete the "test2.txt" file using FTP.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.delete('test2.txt')
-        ftp.close()
--
-    I check at the server that test2.txt is deleted
--
-    !python {model: ir.attachment }: |
-        cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
-        ids = self.search(cr, uid, [('name', '=', 'test2.txt')])
-        assert not ids, "test2.txt file can still be found."
--
-    I create a test2.txt file again.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        fdata = StringIO('abcd')
-        ftp.storbinary('STOR test2.txt', fdata)
-        ftp.close()
-        cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
--
-    I delete the test2.txt from the server (RPC).
--
-    !delete { model: ir.attachment, id:,  search: "[('name','=','test2.txt')]" }
--
-    I also commit, because ftp would run in a different transaction.
--
-    !python {model: ir.attachment}: |
-        cr.commit()
--
-    I check through FTP that test2.txt does not appear.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        import ftplib
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        try:
-            nlst_result = ftp.nlst("test2.txt")
-        except ftplib.error_perm: # 550 error: 'path not exists'
-            nlst_result = []
-        assert "test2.txt" not in nlst_result, "Files: %r" % nlst_result
-        ftp.close()
--
-    I create a "test-name.txt" file
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        fdata = StringIO('abcd')
-        ftp.storbinary('STOR test-name.txt', fdata)
-        ftp.close()
--
-    I rename the "test-name.txt" file through ftp.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.rename("test-name.txt", "test-renamed.txt")
-        ftp.close()
--
-    I check that test-name.txt has been renamed.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from ftplib import error_perm
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        try:
-            res = ftp.nlst("test-name.txt")
-            assert res == [], "File has not been renamed!"
-        except error_perm, e:
-            pass
-        assert ftp.nlst("test-renamed.txt") == ['test-renamed.txt']
-        ftp.close()
--
-    I create a new folder 'Test-Folder2' through FTP
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.mkd("Test-Folder2")
-        ftp.close()
--
-    I create a file 'test3.txt' at the 'Test-Folder2'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Test-Folder2')
-        fdata = StringIO('abcd')
-        ftp.storbinary('STOR test3.txt', fdata)
-        ftp.close()
--
-    I try to retrieve test3.txt
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Test-Folder2')
-        assert ftp.nlst("test3.txt") == ['test3.txt'], "File test3.txt is not there!"
-        ftp.close()
--
-    I create a new folder, 'Test-Folder3', through FTP
-    I try to move test3.txt to 'Test-Folder3'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.mkd("Test-Folder3")
-        ftp.close()
-        # TODO move
--
-    I remove the 'Test-Folder3'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.rmd("Test-Folder3")
-        ftp.close()
--
-    I check that test3.txt is removed.
--
-    I create 5 files through FTP
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Test-Folder2')
-        fdata = StringIO('abcd')
-        for i in range(0, 5):
-            fdata.seek(0)
-            ftp.storbinary('STOR test-name%s.txt' %i, fdata)
-        ftp.close()
--
-    I list the 5 files, check speed
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Test-Folder2')
-        assert len(ftp.nlst()) >= 5, "We haven't managed to store 5 files!"
--
-    I read the 5 files, check speed
--
-    I move the 5 files to 'Test-Folder2'
--
-    I delete the 5 files
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Test-Folder2')
-        ftp.delete('test3.txt')
-        for i in range(0, 5):
-            ftp.delete('test-name%s.txt' %i)
-        ftp.close()
--
-    I delete the "test.txt" and "test-renamed.txt" file        
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.delete('test.txt')
-        ftp.delete('test-renamed.txt')
-        ftp.close()
--
-    I remove the 'Test-Folder2'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.rmd("Test-Folder2")
-        ftp.close()
diff --git a/addons/document_ftp/test/document_ftp_test3.yml b/addons/document_ftp/test/document_ftp_test3.yml
deleted file mode 100644 (file)
index a51f259..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
--
-    In order to check international character functionality
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_plain_ftp(timeout=1.0)
--
-    I create in the server a folder called 'Äïêéìáóôéêüò ÖÜêåëëïò'
--
-    !record {model: document.directory, id: dir_itests }:
-        name: 'Äïêéìáóôéêüò ÖÜêåëëïò'
-        parent_id: document.dir_root
--
-    And then I create another folder, under it, through FTP
--
-    !python {model: ir.attachment}: |
-        cr.commit()
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò')
-        ftp.mkd("ÖÜêåëëïò áðü êÜôù")
--
-    I check that this folder exists at the server
--
-    !assert {model: document.directory, id: , search: "[('name','=','ÖÜêåëëïò áðü êÜôù')]" }:
-      - parent_id != False
--
-    I login with FTP and check that 'Äïêéìáóôéêüò ÖÜêåëëïò' is there
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò/ÖÜêåëëïò áðü êÜôù')
--
-    I create a file named 'ÄïêéìÞ' into that folder
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò/ÖÜêåëëïò áðü êÜôù')
-        fdata = StringIO('êåßìåíï ìå utf-8')
-        ftp.storbinary('STOR ÄïêéìÞ.txt', fdata)
--
-    I remove the 'ÄïêéìÞ.txt' file
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò/ÖÜêåëëïò áðü êÜôù')
-        ftp.delete('ÄïêéìÞ.txt')
--
-    I rename 'ÖÜêåëëïò áðü êÜôù' into 'Üëëïò'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò')
-        ftp.rename("ÖÜêåëëïò áðü êÜôù", "Üëëïò")
--
-    I place a file 'file Ö3' in 'Üëëïò'
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò/Üëëïò')
-        fdata = StringIO('êé Üëëï êåßìåíï')
-        ftp.storbinary('STOR file Ö3.txt', fdata)
--
-    I rename the file into file+range(1..200) (large filename)
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò/Üëëïò')
-        vuvuzela = 'b'+''.join('z' * 200)+'!'
-        ftp.rename("file Ö3.txt", vuvuzela)
--
-    I delete the file with the large name
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Äïêéìáóôéêüò ÖÜêåëëïò/Üëëïò')
-        vuvuzela = 'b'+''.join('z' * 200)+'!'
-        ftp.delete(vuvuzela)
-
--
-    I delete the testing folders
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
-        ftp.rmd('Äïêéìáóôéêüò ÖÜêåëëïò/Üëëïò')
-        ftp.rmd('Äïêéìáóôéêüò ÖÜêåëëïò')
diff --git a/addons/document_ftp/test/document_ftp_test4.yml b/addons/document_ftp/test/document_ftp_test4.yml
deleted file mode 100644 (file)
index 9b311f6..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
--
-    In order to check dynamic folder functionality of document + FTP
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_plain_ftp(timeout=1.0)
-- |
-    I create two partners 'Partner1' and 'Partner2'.
-    I create three partner categories: 'none', 'pat1' and 'all'
-    I attach Partner1 to pat1, Partner1+Partner2 to 'all'
--
-    !record {model: res.partner.category, id: tpat_categ_none }:
-        name: 'No partners'
--
-    !record {model: res.partner.category, id: tpat_categ_pat1 }:
-        name: 'Pat 1'
--
-    !record {model: res.partner.category, id: tpat_categ_all }:
-        name: 'All Partner1+2'
--
-    !record {model: res.partner, id: tpartner1 }:
-        name: Partner 1
-        category_id:
-            - tpat_categ_pat1
-            - tpat_categ_all
--
-    !record {model: res.partner, id: tpartner_2 }:
-        name: 'Partner 2'
-        category_id:
-            - tpat_categ_all
--
-    I create a resource folder of partners, by the (none, pat1, all) 
-    categories.
--
-    !record {model: document.directory, id: dir_tests2 }:
-        name: Partners Testing
-        parent_id: document.dir_root
-        type: ressource
-        ressource_type_id: base.model_res_partner_category
-        domain: [] # TODO
--
-    I commit (because FTP operations are on different transaction)
--
-    !python {model: document.directory, id: }: |
-        cr.commit()
--
-    I browse through ftp in the resource folder, checking that three
-    categories are there.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing')
-        dirs = ftp.nlst()
-        for dir in [ 'All Partner1+2', 'No partners', 'Pat 1' ]:
-            assert dir in dirs, "Dir %s not in folder" % dir
--
-    I create a 'partners' folder by the first resource one.
--
-    !record {model: document.directory, id: dir_respart1 }:
-        name: Partners of Test
-        parent_id: dir_tests2
-        type: ressource
-        ressource_type_id: base.model_res_partner
-        domain: "[('category_id','in',[active_id])]"
-        ressource_parent_type_id : base.model_res_partner_category
--
-    I commit (because FTP operations are on different transaction)
--
-    !python {model: document.directory, id: }: |
-        cr.commit()
--
-    I check through FTP that the correct partners are listed at each
-    'partners' folder.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing')
-        correct = { 'All Partner1+2': [ 'Partner 1', 'Partner 2' ],
-                'No partners': [],
-                'Pat 1': ['Partner 1',] }
-        for dir in correct:
-            res = ftp.nlst(dir+'/Partners of Test')
-            assert res == correct[dir], "Dir %s falsely contains %s" %(dir, res)
--
-    I create an ir.attachment, attached (not related) to Partner1
--
-    !record {model: ir.attachment, id: file_test1}:
-        name: File of pat1
-        res_model: res.partner
-        res_id:  !eval ref("tpartner1")
--
-    I commit (because FTP operations are on different transaction)
--
-    !python {model: document.directory, id: }: |
-        cr.commit()
--
-    I check that pat1/Partner1 folder has the file.
-    I check that all/Partner1 folder has the file
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing')
-        dirs = [ 'All Partner1+2', 'Pat 1' ]
-        for dir in dirs:
-            res = ftp.nlst(dir+'/Partners of Test/Partner 1')
-            assert 'File of pat1' in res, "Dir %s contains only %s" %(dir, res)
--
-    I place a file at the 'pat1'/Partner1 folder, through FTP
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing/Pat 1/Partners of Test/Partner 1')
-        fdata = StringIO('abcd')
-        ftp.storbinary('STOR pat1-dynamic.txt', fdata)
-        cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
--
-    I check at the server that the file is attached to Partner1
--
-    !assert {model: ir.attachment, id: , search: "[('name','=','pat1-dynamic.txt')]" }:
-      - parent_id.name == 'Documents'
-      - res_model == 'res.partner'
-      - res_id !=  False
--
-    I try to create a file directly under the Partners Testing folder
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        import ftplib
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing')
-        fdata = StringIO('abcd')
-        try:
-            ftp.storbinary('STOR stray.txt', fdata)
-            assert False, "We should't be able to create files here"
-        except ftplib.error_perm:
-            # That's what should happen
-            pass
--
-    I try to create a folder directly under the Partners Testing folder
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        import ftplib
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing')
-        try:
-            ftp.mkd('Weird folder')
-            assert False, "We should't be able to create folders here"
-        except ftplib.error_perm:
-            # That's what should happen
-            pass
--
-    I check that all/Partner1 also has the file
-- |
-    Bonus Piste:
-    I create a 'Partner3' under 'all'
-    
--
-   I delete "pat1-dynamic.txt" File.
--
-    !python {model: ir.attachment}: |
-        from document_ftp import test_easyftp as te
-        from cStringIO import StringIO
-        ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Partners Testing/Pat 1/Partners of Test/Partner 1')
-        ftp.delete('pat1-dynamic.txt')
-        ftp.close()
-        cr.rollback() # restart transaction to see changes (FTP-FS uses its own cursor)
-    
--
-    I delete the Partners Testing folder,  "File of pat1" file, Partner and Partner category.
--
-    !python {model: document.directory}: |
-        attach_pool = self.pool.get('ir.attachment')
-        partner_categ_pool = self.pool.get('res.partner.category')
-        partner_pool =  self.pool.get('res.partner')
-        
-        self.unlink(cr, uid, [ref('dir_tests2')])
-        self.unlink(cr, uid, [ref('dir_respart1')])
-        attach_pool.unlink(cr, uid, [ref('file_test1')])
-        partner_categ_pool.unlink(cr, uid, [ref('tpat_categ_none')])
-        partner_categ_pool.unlink(cr, uid, [ref('tpat_categ_pat1')])
-        partner_categ_pool.unlink(cr, uid, [ref('tpat_categ_all')])
-        partner_pool.unlink(cr, uid, [ref('tpartner1')])
-        partner_pool.unlink(cr, uid, [ref('tpartner_2')])
-        cr.commit() #required because all the operations via FTP were committed
-    
diff --git a/addons/document_ftp/test/document_ftp_test5.yml b/addons/document_ftp/test/document_ftp_test5.yml
deleted file mode 100644 (file)
index a66f409..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
--
-  In order to check the permissions setup and functionality of the
-  document module:
--
-  I create a testing user for the documents
--
-  I assign some ... group to the testing user
--
-  I create a "group testing" user, which also belongs to the same ... group
--
-  I create a "blocked" user.
--
-  I create (as root) a testing folder in the document hierarchy, and
-  assign ownership to the testing user, groups to the ... group.
--
-  I create a "private" folder inside the testing folder.
--
-  I try to read the testing folder as the testing user
--
-  I try to read the folder as the group user, it should fail.
--
-  I try to read the folder as the blocked user.
--
-  I create a "group" folder, with the ... group.
--
-  I try to read the "group" folder as the testing user
--
-  I try to read the "group" folder as the group user
--
-  I try to read the "group" folder as the blocked user
diff --git a/addons/document_ftp/test_easyftp.py b/addons/document_ftp/test_easyftp.py
deleted file mode 100644 (file)
index 1ab808c..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#    
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
-#
-##############################################################################
-
-""" This is a testing module, which exports some functions for the YAML tests.
-    Instead of repeating the same FTP code all over, we prefer to have
-    it in this file
-"""
-
-from ftplib import FTP
-from openerp.tools import config
-
-def get_plain_ftp(timeout=10.0):
-    ftp = FTP()
-    host = config.get('ftp_server_host', '127.0.0.1')
-    port = config.get('ftp_server_port', '8021')
-    ftp.connect(host, port,timeout)
-    return ftp
-
-def get_ftp_login(cr, uid, ormobj):
-    ftp = get_plain_ftp()
-    user = ormobj.pool.get('res.users').browse(cr, uid, uid)
-    passwd = user.password or ''
-    if passwd.startswith("$1$"):
-        # md5 by base crypt. We cannot decode, wild guess
-        # that passwd = login
-        passwd = user.login
-    ftp.login(user.login, passwd)
-    ftp.cwd("/" + cr.dbname)
-    return ftp
-
-def get_ftp_anonymous(cr):
-    ftp = get_plain_ftp()
-    ftp.login('anonymous', 'the-test')
-    ftp.cwd("/")
-    return ftp
-
-def get_ftp_folder(cr, uid, ormobj, foldername):
-    ftp = get_ftp_login(cr, uid, ormobj)
-    ftp.cwd("/" + cr.dbname+"/"+foldername)
-    return ftp
-
-def get_ftp_fulldata(ftp, fname, limit=8192):
-    from functools import partial
-    data = []
-    def ffp(data, ndata):
-        if len(data)+ len(ndata) > limit:
-            raise IndexError('Data over the limit.')
-        data.append(ndata)
-    ftp.retrbinary('RETR %s' % fname, partial(ffp,data))
-    return ''.join(data)
-
-#eof
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/wizard/__init__.py b/addons/document_ftp/wizard/__init__.py
deleted file mode 100644 (file)
index 40997cc..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#    
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.     
-#
-##############################################################################
-import ftp_browse
-import ftp_configuration
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/wizard/ftp_browse.py b/addons/document_ftp/wizard/ftp_browse.py
deleted file mode 100644 (file)
index ee8f897..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from openerp.osv import fields, osv
-# from openerp.tools.translate import _
-from .. import ftpserver
-
-class document_ftp_browse(osv.osv_memory):
-    _name = 'document.ftp.browse'
-    _description = 'Document FTP Browse'
-
-    _columns = {
-        'url' : fields.char('FTP Server', size=64, required=True),
-    }
-
-    def default_get(self, cr, uid, fields, context=None):
-        res = {}
-        if 'url' in fields:
-            user_pool = self.pool.get('res.users')
-            current_user = user_pool.browse(cr, uid, uid, context=context)
-            data_pool = self.pool.get('ir.model.data')
-            aid = data_pool._get_id(cr, uid, 'document_ftp', 'action_document_browse')
-            aid = data_pool.browse(cr, uid, aid, context=context).res_id
-            ftp_url = self.pool.get('ir.actions.act_url').browse(cr, uid, aid, context=context)
-            url = ftp_url.url and ftp_url.url.split('ftp://') or []
-            if url:
-                url = url[1]
-                if url[-1] == '/':
-                    url = url[:-1]
-            else:
-                url = '%s:%s' %(ftpserver.HOST, ftpserver.PORT)
-            res['url'] = 'ftp://%s@%s'%(current_user.login, url)
-        return res
-
-    def browse_ftp(self, cr, uid, ids, context=None):
-        data_id = ids and ids[0] or False
-        data = self.browse(cr, uid, data_id, context=context)
-        final_url = data.url
-        return {
-        'type': 'ir.actions.act_url',
-        'url':final_url,
-        'target': 'new'
-        }
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/wizard/ftp_browse_view.xml b/addons/document_ftp/wizard/ftp_browse_view.xml
deleted file mode 100644 (file)
index c1613b2..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<openerp>
-  <data>
-
-    <record id="ftp_browse_form" model="ir.ui.view">
-            <field name="name">Document FTP Browse</field>
-            <field name="model">document.ftp.browse</field>
-            <field name="arch" type="xml">
-                <form string="Browse Document" version="7.0">
-                    <group>
-                        <field name="url" widget="url"/>
-                    </group>
-                    <footer>
-                        <button name="browse_ftp" string="_Browse" type="object" icon="gtk-ok" class="oe_highlight"  />
-                        or
-                        <button string="Cancel" class="oe_link" special="cancel" />
-                    </footer>
-                </form>
-            </field>
-        </record>
-
-        <record id="action_ftp_browse" model="ir.actions.act_window">
-            <field name="name">Document Browse</field>
-            <field name="type">ir.actions.act_window</field>
-            <field name="res_model">document.ftp.browse</field>
-            <field name="view_id" ref="ftp_browse_form"/>
-            <field name="view_type">form</field>
-            <field name="view_mode">form</field>
-            <field name="target">new</field>
-        </record>
-
-        <menuitem
-        name="Shared Repository (FTP)"
-        action="action_ftp_browse"
-        id="menu_document_browse"
-        icon="STOCK_EXECUTE"
-        parent="document.menu_document_doc" sequence="1"/>
-
-</data>
-</openerp>
diff --git a/addons/document_ftp/wizard/ftp_configuration.py b/addons/document_ftp/wizard/ftp_configuration.py
deleted file mode 100644 (file)
index 1dee949..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>
-#
-##############################################################################
-
-from openerp.osv import fields, osv
-from openerp.tools import config
-
-class document_ftp_configuration(osv.osv_memory):
-
-    _name='document.ftp.configuration'
-    _description = 'Auto Directory Configuration'
-    _inherit = 'res.config'
-    _rec_name = 'host'
-    _columns = {
-        'host': fields.char('Address', size=64,
-                            help="Server address or IP and port to which users should connect to for DMS access",
-                            required=True),
-    }
-
-    _defaults = {
-        'host': config.get('ftp_server_host', 'localhost') + ':' + config.get('ftp_server_port', '8021'),
-    }
-
-    def execute(self, cr, uid, ids, context=None):
-        conf = self.browse(cr, uid, ids[0], context=context)
-        data_pool = self.pool.get('ir.model.data')
-        # Update the action for FTP browse.
-        aid = data_pool._get_id(cr, uid, 'document_ftp', 'action_document_browse')
-        aid = data_pool.browse(cr, uid, aid, context=context).res_id
-        self.pool.get('ir.actions.act_url').write(cr, uid, [aid], 
-                {'url': 'ftp://'+(conf.host or 'localhost:8021')+'/' + cr.dbname+'/'})
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_ftp/wizard/ftp_configuration_view.xml b/addons/document_ftp/wizard/ftp_configuration_view.xml
deleted file mode 100644 (file)
index 9e05fba..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-  <data>
-    <record model="ir.actions.act_url" id="action_document_browse">
-        <field name="name">Browse Files</field>
-        <field name="url">ftp://localhost:8021/</field>
-    </record>
-
-
-
-    <record id="view_auto_config_form" model="ir.ui.view">
-        <field name="name">FTP Server Configuration</field>
-        <field name="model">document.ftp.configuration</field>
-        <field name="inherit_id" ref="base.res_config_view_base"/>
-        <field name="arch" type="xml">
-          <data>
-            <form position="attributes">
-              <attribute name="string">Knowledge Application Configuration</attribute>
-            </form>
-            <group string="res_config_contents" position="replace">
-                <separator string="Configure FTP Server" />
-                <label string="Indicate the network address on which your OpenERP server should be reachable for end-users. This depends on your network topology and configuration, and will only affect the links displayed to the users. The format is HOST:PORT and the default host (localhost) is only suitable for access from the server machine itself.."/>
-                <field name="host"/>
-            </group>
-          </data>
-        </field>
-    </record>
-
-    <record id="action_config_auto_directory" model="ir.actions.act_window">
-        <field name="name">FTP Server Configuration</field>
-        <field name="type">ir.actions.act_window</field>
-        <field name="res_model">document.ftp.configuration</field>
-        <field name="view_id" ref="view_auto_config_form"/>
-        <field name="view_type">form</field>
-        <field name="view_mode">form</field>
-        <field name="target">new</field>
-    </record>
-
-    <record model="ir.actions.todo" id="config_auto_directory">
-        <field name="action_id" ref="action_config_auto_directory"/>
-        <field name="type">automatic</field>
-    </record>
-  </data>
-</openerp>
diff --git a/addons/document_webdav/__init__.py b/addons/document_webdav/__init__.py
deleted file mode 100644 (file)
index 486b38e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-import logging
-
-import webdav
-import webdav_server
-import document_webdav
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/__openerp__.py b/addons/document_webdav/__openerp__.py
deleted file mode 100644 (file)
index befb878..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# Copyright (c) 2004 TINY SPRL. (http://tiny.be), 2009 P. Christeas
-#               All Rights Reserved.
-#                    Fabien Pinckaers <fp@tiny.Be>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-#
-##############################################################################
-
-{
-    'name': 'Shared Repositories (WebDAV)',
-    'version': '2.3',
-    'author': 'OpenERP SA',
-    'category': 'Knowledge Management',
-    'website': 'http://www.openerp.com',
-    'description': """
-With this module, the WebDAV server for documents is activated.
-===============================================================
-
-You can then use any compatible browser to remotely see the attachments of OpenObject.
-
-After installation, the WebDAV server can be controlled by a [webdav] section in 
-the server's config.
-
-Server Configuration Parameter:
--------------------------------
-[webdav]:
-+++++++++ 
-    * enable = True ; Serve webdav over the http(s) servers
-    * vdir = webdav ; the directory that webdav will be served at
-    * this default val means that webdav will be
-    * on "http://localhost:8069/webdav/
-    * verbose = True ; Turn on the verbose messages of webdav
-    * debug = True ; Turn on the debugging messages of webdav
-    * since the messages are routed to the python logging, with
-    * levels "debug" and "debug_rpc" respectively, you can leave
-    * these options on
-
-Also implements IETF RFC 5785 for services discovery on a http server,
-which needs explicit configuration in openerp-server.conf too.
-""",
-    'depends': ['base', 'document'],
-    'data': ['security/ir.model.access.csv',
-            'webdav_view.xml',
-            'webdav_setup.xml',
-    ],
-    'demo': [],
-    'test': [ #'test/webdav_test1.yml',
-    ],
-    'auto_install': False,
-    'installable': True,
-    'images': ['images/dav_properties.jpeg','images/directories_structure_principals.jpeg'],
-}
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/cache.py b/addons/document_webdav/cache.py
deleted file mode 100644 (file)
index 95ff9d3..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import time
-import heapq
-
-def memoize(maxsize):
-    """decorator to 'memoize' a function - caching its results"""
-    def decorating_function(f):
-        cache = {}  # map from key to value
-        heap = []   # list of keys, in LRU heap
-        cursize = 0 # because len() is slow
-        def wrapper(*args):
-            key = repr(args)
-            # performance crap
-            _cache=cache
-            _heap=heap
-            _heappop = heapq.heappop
-            _heappush = heapq.heappush
-            _time = time.time
-            _cursize = cursize
-            _maxsize = maxsize
-            if not _cache.has_key(key):
-                if _cursize == _maxsize:
-                    # pop oldest element
-                    (_,oldkey) = _heappop(_heap)
-                    _cache.pop(oldkey)
-                else:
-                    _cursize += 1
-                # insert this element
-                _cache[key] = f(*args)
-                _heappush(_heap,(_time(),key))
-                wrapper.misses += 1
-            else:
-                wrapper.hits += 1
-            return cache[key]
-        wrapper.__doc__ = f.__doc__
-        wrapper.__name__ = f.__name__
-        wrapper.hits = wrapper.misses = 0
-        return wrapper 
-    return decorating_function
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py
deleted file mode 100644 (file)
index fef7d7b..0000000
+++ /dev/null
@@ -1,1052 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-import os
-import time
-import errno
-import re
-import urlparse
-import urllib
-
-try:
-    from pywebdav.lib.constants import COLLECTION  # , OBJECT
-    from pywebdav.lib.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
-    from pywebdav.lib.iface import dav_interface
-    from pywebdav.lib.davcmd import copyone, copytree, moveone, movetree, delone, deltree
-except ImportError:
-    from DAV.constants import COLLECTION  #, OBJECT
-    from DAV.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
-    from DAV.iface import dav_interface
-    from DAV.davcmd import copyone, copytree, moveone, movetree, delone, deltree
-
-import openerp
-from openerp import sql_db
-import openerp.service
-from openerp.tools import misc
-
-from cache import memoize
-from webdav import mk_lock_response
-
-CACHE_SIZE=20000
-
-#hack for urlparse: add webdav in the net protocols
-urlparse.uses_netloc.append('webdav')
-urlparse.uses_netloc.append('webdavs')
-
-day_names = { 0: 'Mon', 1: 'Tue' , 2: 'Wed', 3: 'Thu', 4: 'Fri', 5: 'Sat', 6: 'Sun' }
-month_names = { 1: 'Jan', 2: 'Feb', 3: 'Mar', 4: 'Apr', 5: 'May', 6: 'Jun',
-        7: 'Jul', 8: 'Aug', 9: 'Sep', 10: 'Oct', 11: 'Nov', 12: 'Dec' }
-
-def dict_merge2(*dicts):
-    """ Return a dict with all values of dicts.
-        If some key appears twice and contains iterable objects, the values
-        are merged (instead of overwritten).
-    """
-    res = {}
-    for d in dicts:
-        for k in d.keys():
-            if k in res and isinstance(res[k], (list, tuple)):
-                res[k] = res[k] + d[k]
-            elif k in res and isinstance(res[k], dict):
-                res[k].update(d[k])
-            else:
-                res[k] = d[k]
-    return res
-
-class DAV_NotFound2(DAV_NotFound):
-    """404 exception, that accepts our list uris
-    """
-    def __init__(self, *args):
-        if len(args) and isinstance(args[0], (tuple, list)):
-            path = ''.join([ '/' + x for x in args[0]])
-            args = (path, )
-        DAV_NotFound.__init__(self, *args)
-
-
-def _str2time(cre):
-    """ Convert a string with time representation (from db) into time (float)
-    """
-    if not cre:
-        return time.time()
-    frac = 0.0
-    if isinstance(cre, basestring) and '.' in cre:
-        fdot = cre.find('.')
-        frac = float(cre[fdot:])
-        cre = cre[:fdot]
-    return time.mktime(time.strptime(cre,'%Y-%m-%d %H:%M:%S')) + frac
-
-class BoundStream2(object):
-    """Wraps around a seekable buffer, reads a determined range of data
-
-        Note that the supplied stream object MUST support a size() which
-        should return its data length (in bytes).
-
-        A variation of the class in websrv_lib.py
-    """
-
-    def __init__(self, stream, offset=None, length=None, chunk_size=None):
-        self._stream = stream
-        self._offset = offset or 0
-        self._length = length or self._stream.size()
-        self._rem_length = length
-        assert length and isinstance(length, (int, long))
-        assert length and length >= 0, length
-        self._chunk_size = chunk_size
-        if offset is not None:
-            self._stream.seek(offset)
-
-    def read(self, size=-1):
-        if not self._stream:
-            raise IOError(errno.EBADF, "read() without stream.")
-
-        if self._rem_length == 0:
-            return ''
-        elif self._rem_length < 0:
-            raise EOFError()
-
-        rsize = self._rem_length
-        if size > 0 and size < rsize:
-            rsize = size
-        if self._chunk_size and self._chunk_size < rsize:
-            rsize = self._chunk_size
-
-        data = self._stream.read(rsize)
-        self._rem_length -= len(data)
-
-        return data
-
-    def __len__(self):
-        return self._length
-
-    def tell(self):
-        res = self._stream.tell()
-        if self._offset:
-            res -= self._offset
-        return res
-
-    def __iter__(self):
-        return self
-
-    def next(self):
-        return self.read(65536)
-
-    def seek(self, pos, whence=os.SEEK_SET):
-        """ Seek, computing our limited range
-        """
-        if whence == os.SEEK_SET:
-            if pos < 0 or pos > self._length:
-                raise IOError(errno.EINVAL,"Cannot seek.")
-            self._stream.seek(pos - self._offset)
-            self._rem_length = self._length - pos
-        elif whence == os.SEEK_CUR:
-            if pos > 0:
-                if pos > self._rem_length:
-                    raise IOError(errno.EINVAL,"Cannot seek past end.")
-                elif pos < 0:
-                    oldpos = self.tell()
-                    if oldpos + pos < 0:
-                        raise IOError(errno.EINVAL,"Cannot seek before start.")
-                self._stream.seek(pos, os.SEEK_CUR)
-                self._rem_length -= pos
-        elif whence == os.SEEK_END:
-            if pos > 0:
-                raise IOError(errno.EINVAL,"Cannot seek past end.")
-            else:
-                if self._length + pos < 0:
-                    raise IOError(errno.EINVAL,"Cannot seek before start.")
-            newpos = self._offset + self._length + pos
-            self._stream.seek(newpos, os.SEEK_SET)
-            self._rem_length = 0 - pos
-
-class openerp_dav_handler(dav_interface):
-    """
-    This class models a OpenERP interface for the DAV server
-    """
-    PROPS={'DAV:': dav_interface.PROPS['DAV:'],}
-
-    M_NS={ "DAV:" : dav_interface.M_NS['DAV:'],}
-
-    def __init__(self,  parent, verbose=False):
-        self.db_name_list=[]
-        self.parent = parent
-        self.baseuri = parent.baseuri
-        self.verbose = verbose
-
-    def get_propnames(self, uri):
-        props = self.PROPS
-        self.parent.log_message('get propnames: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            # TODO: maybe limit props for databases..?
-            return props
-        node = self.uri2object(cr, uid, pool, uri2)
-        if node:
-            props = dict_merge2(props, node.get_dav_props(cr))
-        cr.close()
-        return props
-
-    def _try_function(self, funct, args, opname='run function', cr=None,
-            default_exc=DAV_Forbidden):
-        """ Try to run a function, and properly convert exceptions to DAV ones.
-
-            @objname the name of the operation being performed
-            @param cr if given, the cursor to close at exceptions
-        """
-
-        try:
-            return funct(*args)
-        except DAV_Error:
-            if cr: cr.close()
-            raise
-        except NotImplementedError, e:
-            if cr: cr.close()
-            import traceback
-            self.parent.log_error("Cannot %s: %s", opname, str(e))
-            self.parent.log_message("Exc: %s",traceback.format_exc())
-            # see par 9.3.1 of rfc
-            raise DAV_Error(403, str(e) or 'Not supported at this path.')
-        except EnvironmentError, err:
-            if cr: cr.close()
-            import traceback
-            self.parent.log_error("Cannot %s: %s", opname, err.strerror)
-            self.parent.log_message("Exc: %s",traceback.format_exc())
-            raise default_exc(err.strerror)
-        except Exception, e:
-            import traceback
-            if cr: cr.close()
-            self.parent.log_error("Cannot %s: %s", opname, str(e))
-            self.parent.log_message("Exc: %s",traceback.format_exc())
-            raise default_exc("Operation failed.")
-
-    def _get_dav_lockdiscovery(self, uri):
-        """ We raise that so that the node API is used """
-        raise DAV_NotFound
-
-    def _get_dav_supportedlock(self, uri):
-        """ We raise that so that the node API is used """
-        raise DAV_NotFound
-
-    def match_prop(self, uri, match, ns, propname):
-        if self.M_NS.has_key(ns):
-            return match == dav_interface.get_prop(self, uri, ns, propname)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_NotFound
-        node = self.uri2object(cr, uid, pool, uri2)
-        if not node:
-            cr.close()
-            raise DAV_NotFound
-        res = node.match_dav_eprop(cr, match, ns, propname)
-        cr.close()
-        return res
-
-    def prep_http_options(self, uri, opts):
-        """see HttpOptions._prep_OPTIONS """
-        self.parent.log_message('get options: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri, allow_last=True)
-
-        if not dbname:
-            if cr: cr.close()
-            return opts
-        node = self.uri2object(cr, uid, pool, uri2[:])
-
-        if not node:
-            if cr: cr.close()
-            return opts
-        else:
-            if hasattr(node, 'http_options'):
-                ret = opts.copy()
-                for key, val in node.http_options.items():
-                    if isinstance(val, basestring):
-                        val = [val, ]
-                    if key in ret:
-                        ret[key] = ret[key][:]  # copy the orig. array
-                    else:
-                        ret[key] = []
-                    ret[key].extend(val)
-
-                self.parent.log_message('options: %s' % ret)
-            else:
-                ret = opts
-            cr.close()
-            return ret
-
-    def reduce_useragent(self):
-        ua = self.parent.headers.get('User-Agent', False)
-        ctx = {}
-        if ua:
-            if 'iPhone' in ua:
-                ctx['DAV-client'] = 'iPhone'
-            elif 'Konqueror' in ua:
-                ctx['DAV-client'] = 'GroupDAV'
-        return ctx
-
-    def get_prop(self, uri, ns, propname):
-        """ return the value of a given property
-
-            uri        -- uri of the object to get the property of
-            ns        -- namespace of the property
-            pname        -- name of the property
-         """
-        if self.M_NS.has_key(ns):
-            try:
-                # if it's not in the interface class, a "DAV:" property
-                # may be at the node class. So shouldn't give up early.
-                return dav_interface.get_prop(self, uri, ns, propname)
-            except DAV_NotFound:
-                pass
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_NotFound
-        try:
-            node = self.uri2object(cr, uid, pool, uri2)
-            if not node:
-                raise DAV_NotFound
-            res = node.get_dav_eprop(cr, ns, propname)
-        finally:
-            cr.close()
-        return res
-
-    def get_db(self, uri, rest_ret=False, allow_last=False):
-        """Parse the uri and get the dbname and the rest.
-           Db name should be the first component in the unix-like
-           path supplied in uri.
-
-           @param rest_ret Instead of the db_name, return (db_name, rest),
-                where rest is the remaining path
-           @param allow_last If the dbname is the last component in the
-                path, allow it to be resolved. The default False value means
-                we will not attempt to use the db, unless there is more
-                path.
-
-           @return db_name or (dbname, rest) depending on rest_ret,
-                will return dbname=False when component is not found.
-        """
-
-        uri2 = self.uri2local(uri)
-        if uri2.startswith('/'):
-            uri2 = uri2[1:]
-        names=uri2.split('/',1)
-        db_name=False
-        rest = None
-        if allow_last:
-            ll = 0
-        else:
-            ll = 1
-        if len(names) > ll and names[0]:
-            db_name = names[0]
-            names = names[1:]
-
-        if rest_ret:
-            if len(names):
-                rest = names[0]
-            return db_name, rest
-        return db_name
-
-
-    def urijoin(self,*ajoin):
-        """ Return the base URI of this request, or even join it with the
-            ajoin path elements
-        """
-        return self.parent.get_baseuri(self) + '/'.join(ajoin)
-
-    @memoize(4)
-    def _all_db_list(self):
-        """return all databases who have module document_webdav installed"""
-        s = openerp.service.db
-        result = s.exp_list()
-        self.db_name_list=[]
-        for db_name in result:
-            cr = None
-            try:
-                db = sql_db.db_connect(db_name)
-                cr = db.cursor()
-                cr.execute("SELECT id FROM ir_module_module WHERE name = 'document_webdav' AND state='installed' ")
-                res=cr.fetchone()
-                if res and len(res):
-                    self.db_name_list.append(db_name)
-            except Exception, e:
-                self.parent.log_error("Exception in db list: %s" % e)
-            finally:
-                if cr:
-                    cr.close()
-        return self.db_name_list
-
-    def db_list(self, uri):
-        # import pudb;pudb.set_trace()
-        u = urlparse.urlsplit(uri)
-        h = u.hostname
-        d = h.split('.')[0]
-        r = openerp.tools.config['dbfilter'].replace('%h', h).replace('%d',d)
-        dbs = [i for i in self._all_db_list() if re.match(r, i)]
-        return dbs
-
-    def get_childs(self,uri, filters=None):
-        """ return the child objects as self.baseuris for the given URI """
-        self.parent.log_message('get children: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri, allow_last=True)
-
-        if not dbname:
-            if cr: cr.close()
-            res = map(lambda x: self.urijoin(x), self.db_list(uri))
-            return res
-        result = []
-        node = self.uri2object(cr, uid, pool, uri2[:])
-
-        try:
-            if not node:
-                raise DAV_NotFound2(uri2)
-            else:
-                fp = node.full_path()
-                if fp and len(fp):
-                    fp = '/'.join(fp)
-                    self.parent.log_message('children for: %s' % fp)
-                else:
-                    fp = None
-                domain = None
-                if filters:
-                    domain = node.get_domain(cr, filters)
-
-                    if hasattr(filters, 'getElementsByTagNameNS'):
-                        hrefs = filters.getElementsByTagNameNS('DAV:', 'href')
-                        if hrefs:
-                            ul = self.parent.davpath + self.uri2local(uri)
-                            for hr in hrefs:
-                                turi = ''
-                                for tx in hr.childNodes:
-                                    if tx.nodeType == hr.TEXT_NODE:
-                                        turi += tx.data
-                                if not turi.startswith('/'):
-                                    # it may be an absolute URL, decode to the
-                                    # relative part, because ul is relative, anyway
-                                    uparts=urlparse.urlparse(turi)
-                                    turi=uparts[2]
-                                    if uparts[3]:
-                                        turi += ';' + uparts[3]
-                                if turi.startswith(ul):
-                                    result.append( turi[len(self.parent.davpath):])
-                                else:
-                                    self.parent.log_error("ignore href %s because it is not under request path %s", turi, ul)
-                            return result
-                            # We don't want to continue with the children found below
-                            # Note the exceptions and that 'finally' will close the
-                            # cursor
-                for d in node.children(cr, domain):
-                    self.parent.log_message('child: %s' % d.path)
-                    if fp:
-                        result.append( self.urijoin(dbname,fp,d.path) )
-                    else:
-                        result.append( self.urijoin(dbname,d.path) )
-        except DAV_Error:
-            raise
-        except Exception, e:
-            self.parent.log_error("Cannot get_children: "+str(e)+".")
-            raise
-        finally:
-            if cr: cr.close()
-        return result
-
-    def uri2local(self, uri):
-        uparts=urlparse.urlparse(uri)
-        reluri=uparts[2]
-        if uparts[3]:
-            reluri += ';'+uparts[3]
-        if reluri and reluri[-1]=="/":
-            reluri=reluri[:-1]
-        return reluri
-
-    #
-    # pos: -1 to get the parent of the uri
-    #
-    def get_cr(self, uri, allow_last=False):
-        """ Split the uri, grab a cursor for that db
-        """
-        pdb = self.parent.auth_provider.last_auth
-        dbname, uri2 = self.get_db(uri, rest_ret=True, allow_last=allow_last)
-        uri2 = (uri2 and uri2.split('/')) or []
-        if not dbname:
-            return None, None, None, False, uri2
-        # if dbname was in our uri, we should have authenticated
-        # against that.
-        assert pdb == dbname, " %s != %s" %(pdb, dbname)
-        res = self.parent.auth_provider.auth_creds.get(dbname, False)
-        if not res:
-            self.parent.auth_provider.checkRequest(self.parent, uri, dbname)
-            res = self.parent.auth_provider.auth_creds[dbname]
-        user, passwd, dbn2, uid = res
-        registry = openerp.registry(dbname)
-        cr = registery.db.cursor()
-        return cr, uid, registry, dbname, uri2
-
-    def uri2object(self, cr, uid, pool, uri):
-        if not uid:
-            return None
-        context = self.reduce_useragent()
-        return pool.get('document.directory').get_object(cr, uid, uri, context=context)
-
-    def get_data(self,uri, rrange=None):
-        self.parent.log_message('GET: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        try:
-            if not dbname:
-                raise DAV_Error, 409
-            node = self.uri2object(cr, uid, pool, uri2)
-            if not node:
-                raise DAV_NotFound2(uri2)
-            # TODO: if node is a collection, for some specific set of
-            # clients ( web browsers; available in node context),
-            # we may return a pseydo-html page with the directory listing.
-            try:
-                res = node.open_data(cr,'r')
-                if rrange:
-                    assert isinstance(rrange, (tuple,list))
-                    start, end = map(long, rrange)
-                    if not start:
-                        start = 0
-                    assert start >= 0
-                    if end and end < start:
-                        self.parent.log_error("Invalid range for data: %s-%s" %(start, end))
-                        raise DAV_Error(416, "Invalid range for data.")
-                    if end:
-                        if end >= res.size():
-                            raise DAV_Error(416, "Requested data exceeds available size.")
-                        length = (end + 1) - start
-                    else:
-                        length = res.size() - start
-                    res = BoundStream2(res, offset=start, length=length)
-
-            except TypeError,e:
-                # for the collections that return this error, the DAV standard
-                # says we'd better just return 200 OK with empty data
-                return ''
-            except IndexError,e :
-                self.parent.log_error("GET IndexError: %s", str(e))
-                raise DAV_NotFound2(uri2)
-            except Exception,e:
-                import traceback
-                self.parent.log_error("GET exception: %s",str(e))
-                self.parent.log_message("Exc: %s", traceback.format_exc())
-                raise DAV_Error, 409
-            return res
-        finally:
-            if cr: cr.close()
-
-    @memoize(CACHE_SIZE)
-    def _get_dav_resourcetype(self, uri):
-        """ return type of object """
-        self.parent.log_message('get RT: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        try:
-            if not dbname:
-                return COLLECTION
-            node = self.uri2object(cr, uid, pool, uri2)
-            if not node:
-                raise DAV_NotFound2(uri2)
-            try:
-                return node.get_dav_resourcetype(cr)
-            except NotImplementedError:
-                if node.type in ('collection','database'):
-                    return ('collection', 'DAV:')
-                return ''
-        finally:
-            if cr: cr.close()
-
-    def _get_dav_displayname(self,uri):
-        self.parent.log_message('get DN: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            # at root, dbname, just return the last component
-            # of the path.
-            if uri2 and len(uri2) < 2:
-                return uri2[-1]
-            return ''
-        node = self.uri2object(cr, uid, pool, uri2)
-        if not node:
-            if cr: cr.close()
-            raise DAV_NotFound2(uri2)
-        cr.close()
-        return node.displayname
-
-    @memoize(CACHE_SIZE)
-    def _get_dav_getcontentlength(self, uri):
-        """ return the content length of an object """
-        self.parent.log_message('get length: %s' % uri)
-        result = 0
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            return str(result)
-        node = self.uri2object(cr, uid, pool, uri2)
-        if not node:
-            if cr: cr.close()
-            raise DAV_NotFound2(uri2)
-        result = node.content_length or 0
-        cr.close()
-        return str(result)
-
-    @memoize(CACHE_SIZE)
-    def _get_dav_getetag(self,uri):
-        """ return the ETag of an object """
-        self.parent.log_message('get etag: %s' % uri)
-        result = 0
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            return '0'
-        node = self.uri2object(cr, uid, pool, uri2)
-        if not node:
-            cr.close()
-            raise DAV_NotFound2(uri2)
-        result = self._try_function(node.get_etag ,(cr,), "etag %s" %uri, cr=cr)
-        cr.close()
-        return str(result)
-
-    @memoize(CACHE_SIZE)
-    def get_lastmodified(self, uri):
-        """ return the last modified date of the object """
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            return time.time()
-        try:
-            node = self.uri2object(cr, uid, pool, uri2)
-            if not node:
-                raise DAV_NotFound2(uri2)
-            return _str2time(node.write_date)
-        finally:
-            if cr: cr.close()
-
-    def _get_dav_getlastmodified(self,uri):
-        """ return the last modified date of a resource
-        """
-        d=self.get_lastmodified(uri)
-        # format it. Note that we explicitly set the day, month names from
-        # an array, so that strftime() doesn't use its own locale-aware
-        # strings.
-        gmt = time.gmtime(d)
-        return time.strftime("%%s, %d %%s %Y %H:%M:%S GMT", gmt ) % \
-                    (day_names[gmt.tm_wday], month_names[gmt.tm_mon])
-
-    @memoize(CACHE_SIZE)
-    def get_creationdate(self, uri):
-        """ return the last modified date of the object """
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            raise DAV_Error, 409
-        try:
-            node = self.uri2object(cr, uid, pool, uri2)
-            if not node:
-                raise DAV_NotFound2(uri2)
-
-            return _str2time(node.create_date)
-        finally:
-            if cr: cr.close()
-
-    @memoize(CACHE_SIZE)
-    def _get_dav_getcontenttype(self,uri):
-        self.parent.log_message('get contenttype: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            return 'httpd/unix-directory'
-        try:
-            node = self.uri2object(cr, uid, pool, uri2)
-            if not node:
-                raise DAV_NotFound2(uri2)
-            result = str(node.mimetype)
-            return result
-            #raise DAV_NotFound, 'Could not find %s' % path
-        finally:
-            if cr: cr.close()
-
-    def mkcol(self,uri):
-        """ create a new collection
-            see par. 9.3 of rfc4918
-        """
-        self.parent.log_message('MKCOL: %s' % uri)
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not uri2[-1]:
-            if cr: cr.close()
-            raise DAV_Error(409, "Cannot create nameless collection.")
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_Error, 409
-        node = self.uri2object(cr,uid,pool, uri2[:-1])
-        if not node:
-            cr.close()
-            raise DAV_Error(409, "Parent path %s does not exist" % uri2[:-1])
-        nc = node.child(cr, uri2[-1])
-        if nc:
-            cr.close()
-            raise DAV_Error(405, "Path already exists.")
-        self._try_function(node.create_child_collection, (cr, uri2[-1]),
-                    "create col %s" % uri2[-1], cr=cr)
-        cr.commit()
-        cr.close()
-        return True
-
-    def put(self, uri, data, content_type=None):
-        """ put the object into the filesystem """
-        self.parent.log_message('Putting %s (%d), %s'%( misc.ustr(uri), data and len(data) or 0, content_type))
-        cr, uid, pool,dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_Forbidden
-        try:
-            node = self.uri2object(cr, uid, pool, uri2[:])
-        except Exception:
-            node = False
-
-        objname = misc.ustr(uri2[-1])
-
-        ret = None
-        if not node:
-            dir_node = self.uri2object(cr, uid, pool, uri2[:-1])
-            if not dir_node:
-                cr.close()
-                raise DAV_NotFound('Parent folder not found.')
-            newchild = self._try_function(dir_node.create_child, (cr, objname, data),
-                    "create %s" % objname, cr=cr)
-            if not newchild:
-                cr.commit()
-                cr.close()
-                raise DAV_Error(400, "Failed to create resource.")
-
-            uparts=urlparse.urlparse(uri)
-            fileloc = '/'.join(newchild.full_path())
-            if isinstance(fileloc, unicode):
-                fileloc = fileloc.encode('utf-8')
-            # the uri we get is a mangled one, where the davpath has been removed
-            davpath = self.parent.get_davpath()
-
-            surl = '%s://%s' % (uparts[0], uparts[1])
-            uloc = urllib.quote(fileloc)
-            hurl = False
-            if uri != ('/'+uloc) and uri != (surl + '/' + uloc):
-                hurl = '%s%s/%s/%s' %(surl, davpath, dbname, uloc)
-            etag = False
-            try:
-                etag = str(newchild.get_etag(cr))
-            except Exception, e:
-                self.parent.log_error("Cannot get etag for node: %s" % e)
-            ret = (str(hurl), etag)
-        else:
-            self._try_function(node.set_data, (cr, data), "save %s" % objname, cr=cr)
-
-        cr.commit()
-        cr.close()
-        return ret
-
-    def rmcol(self,uri):
-        """ delete a collection """
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_Error, 409
-
-        node = self.uri2object(cr, uid, pool, uri2)
-        self._try_function(node.rmcol, (cr,), "rmcol %s" % uri, cr=cr)
-
-        cr.commit()
-        cr.close()
-        return 204
-
-    def rm(self,uri):
-        cr, uid, pool,dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_Error, 409
-        node = self.uri2object(cr, uid, pool, uri2)
-        res = self._try_function(node.rm, (cr,), "rm %s"  % uri, cr=cr)
-        if not res:
-            if cr: cr.close()
-            raise OSError(1, 'Invalid Action!')
-        cr.commit()
-        cr.close()
-        return 204
-
-    ### DELETE handlers (examples)
-    ### (we use the predefined methods in davcmd instead of doing
-    ### a rm directly
-    ###
-
-    def delone(self, uri):
-        """ delete a single resource
-
-        You have to return a result dict of the form
-        uri:error_code
-        or None if everything's ok
-
-        """
-        if uri[-1]=='/':uri=uri[:-1]
-        res=delone(self,uri)
-        # parent='/'.join(uri.split('/')[:-1])
-        return res
-
-    def deltree(self, uri):
-        """ delete a collection
-
-        You have to return a result dict of the form
-        uri:error_code
-        or None if everything's ok
-        """
-        if uri[-1]=='/':uri=uri[:-1]
-        res=deltree(self, uri)
-        # parent='/'.join(uri.split('/')[:-1])
-        return res
-
-
-    ###
-    ### MOVE handlers (examples)
-    ###
-
-    def moveone(self, src, dst, overwrite):
-        """ move one resource with Depth=0
-
-        an alternative implementation would be
-
-        result_code=201
-        if overwrite:
-            result_code=204
-            r=os.system("rm -f '%s'" %dst)
-            if r: return 412
-        r=os.system("mv '%s' '%s'" %(src,dst))
-        if r: return 412
-        return result_code
-
-        (untested!). This would not use the davcmd functions
-        and thus can only detect errors directly on the root node.
-        """
-        res=moveone(self, src, dst, overwrite)
-        return res
-
-    def movetree(self, src, dst, overwrite):
-        """ move a collection with Depth=infinity
-
-        an alternative implementation would be
-
-        result_code=201
-        if overwrite:
-            result_code=204
-            r=os.system("rm -rf '%s'" %dst)
-            if r: return 412
-        r=os.system("mv '%s' '%s'" %(src,dst))
-        if r: return 412
-        return result_code
-
-        (untested!). This would not use the davcmd functions
-        and thus can only detect errors directly on the root node"""
-
-        res=movetree(self, src, dst, overwrite)
-        return res
-
-    ###
-    ### COPY handlers
-    ###
-
-    def copyone(self, src, dst, overwrite):
-        """ copy one resource with Depth=0
-
-        an alternative implementation would be
-
-        result_code=201
-        if overwrite:
-            result_code=204
-            r=os.system("rm -f '%s'" %dst)
-            if r: return 412
-        r=os.system("cp '%s' '%s'" %(src,dst))
-        if r: return 412
-        return result_code
-
-        (untested!). This would not use the davcmd functions
-        and thus can only detect errors directly on the root node.
-        """
-        res=copyone(self, src, dst, overwrite)
-        return res
-
-    def copytree(self, src, dst, overwrite):
-        """ copy a collection with Depth=infinity
-
-        an alternative implementation would be
-
-        result_code=201
-        if overwrite:
-            result_code=204
-            r=os.system("rm -rf '%s'" %dst)
-            if r: return 412
-        r=os.system("cp -r '%s' '%s'" %(src,dst))
-        if r: return 412
-        return result_code
-
-        (untested!). This would not use the davcmd functions
-        and thus can only detect errors directly on the root node"""
-        res=copytree(self, src, dst, overwrite)
-        return res
-
-    ###
-    ### copy methods.
-    ### This methods actually copy something. low-level
-    ### They are called by the davcmd utility functions
-    ### copytree and copyone (not the above!)
-    ### Look in davcmd.py for further details.
-    ###
-
-    def copy(self, src, dst):
-        src=urllib.unquote(src)
-        dst=urllib.unquote(dst)
-        ct = self._get_dav_getcontenttype(src)
-        data = self.get_data(src)
-        self.put(dst, data, ct)
-        return 201
-
-    def copycol(self, src, dst):
-        """ copy a collection.
-
-        As this is not recursive (the davserver recurses itself)
-        we will only create a new directory here. For some more
-        advanced systems we might also have to copy properties from
-        the source to the destination.
-        """
-        return self.mkcol(dst)
-
-
-    def exists(self, uri):
-        """ test if a resource exists """
-        result = False
-        cr, uid, pool,dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            return True
-        try:
-            node = self.uri2object(cr, uid, pool, uri2)
-            if node:
-                result = True
-        except Exception:
-            pass
-        cr.close()
-        return result
-
-    def unlock(self, uri, token):
-        """ Unlock a resource from that token
-
-        @return True if unlocked, False if no lock existed, Exceptions
-        """
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_Error, 409
-
-        node = self.uri2object(cr, uid, pool, uri2)
-        try:
-            node_fn = node.dav_unlock
-        except AttributeError:
-            # perhaps the node doesn't support locks
-            cr.close()
-            raise DAV_Error(400, 'No locks for this resource.')
-
-        res = self._try_function(node_fn, (cr, token), "unlock %s" % uri, cr=cr)
-        cr.commit()
-        cr.close()
-        return res
-
-    def lock(self, uri, lock_data):
-        """ Lock (may create) resource.
-            Data is a dict, may contain:
-                depth, token, refresh, lockscope, locktype, owner
-        """
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        created = False
-        if not dbname:
-            if cr: cr.close()
-            raise DAV_Error, 409
-
-        try:
-            node = self.uri2object(cr, uid, pool, uri2[:])
-        except Exception:
-            node = False
-
-        objname = misc.ustr(uri2[-1])
-
-        if not node:
-            dir_node = self.uri2object(cr, uid, pool, uri2[:-1])
-            if not dir_node:
-                cr.close()
-                raise DAV_NotFound('Parent folder not found.')
-
-            # We create a new node (file) but with empty data=None,
-            # as in RFC4918 p. 9.10.4
-            node = self._try_function(dir_node.create_child, (cr, objname, None),
-                    "create %s" % objname, cr=cr)
-            if not node:
-                cr.commit()
-                cr.close()
-                raise DAV_Error(400, "Failed to create resource.")
-
-            created = True
-
-        try:
-            node_fn = node.dav_lock
-        except AttributeError:
-            # perhaps the node doesn't support locks
-            cr.close()
-            raise DAV_Error(400, 'No locks for this resource.')
-
-        # Obtain the lock on the node
-        lres, pid, token = self._try_function(node_fn, (cr, lock_data), "lock %s" % objname, cr=cr)
-
-        if not lres:
-            cr.commit()
-            cr.close()
-            raise DAV_Error(423, "Resource already locked.")
-
-        assert isinstance(lres, list), 'lres: %s' % repr(lres)
-
-        try:
-            data = mk_lock_response(self, uri, lres)
-            cr.commit()
-        except Exception:
-            cr.close()
-            raise
-
-        cr.close()
-        return created, data, token
-
-    @memoize(CACHE_SIZE)
-    def is_collection(self, uri):
-        """ test if the given uri is a collection """
-        cr, uid, pool, dbname, uri2 = self.get_cr(uri)
-        try:
-            if not dbname:
-                return True
-            node = self.uri2object(cr,uid,pool, uri2)
-            if not node:
-                raise DAV_NotFound2(uri2)
-            if node.type in ('collection','database'):
-                return True
-            return False
-        finally:
-            if cr: cr.close()
-
-#eof
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/doc/well-known.rst b/addons/document_webdav/doc/well-known.rst
deleted file mode 100644 (file)
index ce7dbd7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-=================
-Well-known URIs
-=================
-
-In accordance to IETF RFC 5785 [1], we shall publish a few locations
-on the root of our http server, so that clients can discover our 
-services (CalDAV, eg.).
-
-This module merely installs a special http request handler, that will
-redirect the URIs from "http://our-server:port/.well-known/xxx' to 
-the correct path for each xxx service.
-
-Note that well-known URIs cannot have a database-specific behaviour, 
-they are server-wide. So, we have to explicitly chose one of our databases
-to serve at them. By default, the database of the configuration file
-is chosen
-
-Example config:
-
-[http-well-known]
-num_services = 2
-db_name = openerp-main ; must define that for path_1 below
-service_1 = caldav
-path_1 = /webdav/%(db_name)s/Calendars/
-service_2 = foo
-path_2 = /other_db/static/Foo.html
-
-
-[1] http://www.rfc-editor.org/rfc/rfc5785.txt
\ No newline at end of file
diff --git a/addons/document_webdav/document_webdav.py b/addons/document_webdav/document_webdav.py
deleted file mode 100644 (file)
index 7c93e73..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from openerp.osv import fields, osv
-from openerp.tools import config
-
-import nodes
-
-class document_davdir(osv.osv):
-    _inherit = 'document.directory'
-
-    _columns = {
-        # Placed here just for a reference
-        'dav_prop_ids': fields.one2many('document.webdav.dir.property', 'dir_id', 'DAV properties'),
-        }
-
-    def get_node_class(self, cr, uid, ids, dbro=None, dynamic=False, context=None):
-        # Note: in this function, nodes come from document_webdav/nodes.py !
-        if dbro is None:
-            dbro = self.browse(cr, uid, ids, context=context)
-
-        if dynamic:
-            return nodes.node_res_obj
-        elif dbro.type == 'directory':
-            return nodes.node_dir
-        elif dbro.type == 'ressource':
-            return nodes.node_res_dir
-        else:
-            raise ValueError("Directory node for %s type.", dbro.type)
-
-    def _prepare_context(self, cr, uid, nctx, context=None):
-        nctx.node_file_class = nodes.node_file
-        # We can fill some more fields, but avoid any expensive function
-        # that might be not worth preparing.
-        nctx.extra_ctx['webdav_path'] = '/'+config.get_misc('webdav','vdir','webdav')
-        usr_obj = self.pool.get('res.users')
-        res = usr_obj.read(cr, uid, uid, ['login','lang'])
-        if res:
-            nctx.extra_ctx['username'] = res['login']
-            nctx.extra_ctx['lang'] = res['lang']
-        # TODO group
-        return
-
-    def _locate_child(self, cr, uid, root_id, uri, nparent, ncontext):
-        """ try to locate the node in uri,
-            Return a tuple (node_dir, remaining_path)
-        """
-        return (nodes.node_database(context=ncontext), uri)
-
-class dav_dir_property(osv.osv):
-    """ Arbitrary WebDAV properties, attached to document.directories.
-
-    Some DAV properties have to be settable at directories, depending
-    on the database directory structure.
-
-    Example would be the principal-URL.
-
-    There _can_ be properties without a directory, which means that they
-    globally apply to all the directories (aka. collections) of the
-    present database.
-    """
-    _name = 'document.webdav.dir.property'
-
-    _columns = {
-        'create_date': fields.datetime('Date Created', readonly=True),
-        'create_uid':  fields.many2one('res.users', 'Creator', readonly=True),
-        'write_date': fields.datetime('Date Modified', readonly=True),
-        'write_uid':  fields.many2one('res.users', 'Last Modification User', readonly=True),
-        'dir_id': fields.many2one('document.directory', 'Directory', required=False, select=1),
-        'namespace': fields.char('Namespace', size=127, required=True),
-        'name': fields.char('Name', size=64, required=True),
-        'value': fields.text('Value'),
-        'do_subst': fields.boolean('Substitute', required=True),
-        }
-
-    _defaults = {
-        'do_subst': False,
-        }
-
-class dav_file_property(osv.osv):
-    """ Arbitrary WebDAV properties, attached to ir.attachments.
-
-    A special case is the locks that can be applied on file nodes.
-
-    There _can_ be properties without a file (RFC?), which means that they
-    globally apply to all the attachments of the present database.
-
-    TODO access permissions, per property.
-    """
-    _name = 'document.webdav.file.property'
-
-    _columns = {
-        'create_date': fields.datetime('Date Created', readonly=True),
-        'create_uid':  fields.many2one('res.users', 'Creator', readonly=True),
-        'write_date': fields.datetime('Date Modified', readonly=True),
-        'write_uid':  fields.many2one('res.users', 'Last Modification User', readonly=True),
-        'file_id': fields.many2one('ir.attachment', 'Document', required=False, select=1),
-        'namespace': fields.char('Namespace', size=127, required=True),
-        'name': fields.char('Name', size=64, required=True),
-        'value': fields.text('Value'),
-        'do_subst': fields.boolean('Substitute', required=True),
-        }
-
-    _defaults = {
-        'do_subst': False,
-        }
-
-#eof
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/i18n/ar.po b/addons/document_webdav/i18n/ar.po
deleted file mode 100644 (file)
index 3c941c4..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Arabic translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-01 18:19+0000\n"
-"Last-Translator: gehad shaat <gehad.shaath@gmail.com>\n"
-"Language-Team: Arabic <ar@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:25+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "تاريخ الإنشاء"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "مستندات"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "خصائص الوثيقة"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "ابحث عن خصائص الوثيقة"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "نطاق أسماء"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "خصائص DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "الوثيق.ويبDAV.الملف.الخاصية"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "تجميع حسب..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "ستضاف هذه الخصائص إلى طلبات صفحة الويب DAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "خصائص DAV للوثائق"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "مستند"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "مجلدات"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "خصائص الويبDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "خصائص DAV  للمجلدات"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "خصائص"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "الاسم"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "الوثيقة.الويبDAV.مباشر.الخاصية"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "قيمة"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "مسار"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "اخر مستخدم قام بالتعديل"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "مسار"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "تاريخ التعديل"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "المُنشِئ"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "خصائص الوثيقة"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "خصائص DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "استبدال"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "خطأ ! لايمكنك إنشاء مسارات متداخلة."
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "لا يمكن أن يكون المسار رئيسي لنفسه!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "اسم المسار يجب ان يكون فريدا !"
-
-#~ msgid "Dynamic context"
-#~ msgstr "النص المتحرك"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "المسار يجب ان يكون له مسار رئيسي أو مخزن"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "خصائص DAV للملفات"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "خصائصDAV للوثائق"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "خدمة الويبDAV لإدارة الوثائق"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "الرجاء تثبيت PyWebDAV من "
-#~ "http://code.google.com/p/pywebdav/downloads/detail؟name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "خطأ استيراد PyWebDAV"
diff --git a/addons/document_webdav/i18n/bg.po b/addons/document_webdav/i18n/bg.po
deleted file mode 100644 (file)
index 997527b..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-# Bulgarian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-03-01 20:38+0000\n"
-"Last-Translator: Dimitar Markov <dimitar.markov@gmail.com>\n"
-"Language-Team: Bulgarian <bg@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Дата на създаване"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Пространство на имената"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Групирай по"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Документ"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Свойства"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Име"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Стойност"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Директория"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Последна промяна потребител"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Посока"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Дата на промяна"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Създател"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Замести"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Грешка! Не мжете да създавате директории реурсивно."
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Името на директорията трябва да бъде уникално"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Директорията не може да наследява сама себе си!"
diff --git a/addons/document_webdav/i18n/ca.po b/addons/document_webdav/i18n/ca.po
deleted file mode 100644 (file)
index 310fa83..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Catalan translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-08-17 20:43+0000\n"
-"Last-Translator: mgaja (GrupoIsep.com) <Unknown>\n"
-"Language-Team: Catalan <ca@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Data de creació"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Cerca propietats del document"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espai de noms"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propietats DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar per..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Aquestes propietats s'afegiran a les peticions WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Document"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propietats WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propietats"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nom"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.propietat"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directori"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuari de l'última modificació"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Adr"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Data de modificació"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Creador/a"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substitut"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "Error d'importació PyWebDAV!"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Error! No podeu crear directoris recursius."
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Propietats DAV per a documents"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Propietats DAV per a carpetes"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "El directori no pot ser el seu propi pare!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "El nom de directori ha de ser únic!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Instal·leu PyWebDAV des de "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Context dinàmic"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Servidor WebDAV per a gestió de documents"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "El directori ha de tenir un pare o un emmagatzematge."
diff --git a/addons/document_webdav/i18n/cs.po b/addons/document_webdav/i18n/cs.po
deleted file mode 100644 (file)
index 6daf586..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Czech translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-08-03 03:52+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) <Unknown>\n"
-"Language-Team: Czech <cs@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/da.po b/addons/document_webdav/i18n/da.po
deleted file mode 100644 (file)
index 9babfd3..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Danish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-11-08 21:52+0000\n"
-"Last-Translator: OpenERP Danmark / Henning Dinsen <Unknown>\n"
-"Language-Team: Danish <da@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Gruppér efter..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/de.po b/addons/document_webdav/i18n/de.po
deleted file mode 100644 (file)
index 2c46ed7..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-# German translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-18 06:49+0000\n"
-"Last-Translator: Ferdinand <Unknown>\n"
-"Language-Team: German <de@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Erstellungsdatum"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Dokumente"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Dokumenteigenschaft"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Dokumenteigenschaften suchen"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Namensbereich"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV Eigenschaften"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Gruppierung..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Diese Eigenschaften werden bei WebDav-Anfragen angefügt"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV Eigenschaften für Dokumente"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Dokument"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Verzeichnisse"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDav Eigenschaften"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV Eigenschaften für Verzeichnisse"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Eigenschaften"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Bezeichnung"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Wert"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Verzeichnis"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Letzte Änderung Benutzer"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Verzeichnis"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Änderungsdatum"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Ersteller"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Dokumenteneigenschaft"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV Eigenschaften"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituiere"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Fehler ! Sie können keine rekursiven Verzeichnisse anlegen."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "WebDAV Server für Dokumentenmanagement"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dyn. Kontext"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV Eigenschaften für Verzeichnisse"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Das Verzeichnis muss eindeutig sein"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Das Verzeichnis kann nicht sich selbst übergeordnet werden"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr ""
-#~ "Das Verzeichnis muss ein Hauptverzeichnis oder einen Speicher zugewiesen "
-#~ "haben"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Bitte installieren Sie PyWebDAV von hier:  "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV Import Fehler!"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "DAV Eigenschaften für Dokumente"
diff --git a/addons/document_webdav/i18n/document_webdav.pot b/addons/document_webdav/i18n/document_webdav.pot
deleted file mode 100644 (file)
index 6df42c7..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#      * document_webdav
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 7.0alpha\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-21 17:05+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
-
diff --git a/addons/document_webdav/i18n/el.po b/addons/document_webdav/i18n/el.po
deleted file mode 100644 (file)
index 5b9cc47..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Greek translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-08-03 06:09+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) <Unknown>\n"
-"Language-Team: Greek <el@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/en_GB.po b/addons/document_webdav/i18n/en_GB.po
deleted file mode 100644 (file)
index 704d2bd..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# English (United Kingdom) translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-01-23 15:26+0000\n"
-"Last-Translator: mrx5682 <Unknown>\n"
-"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Date Created"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documents"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Document property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Search Document properties"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Namespace"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV properties"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Group By..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "These properties will be added to WebDAV requests"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV Properties for Documents"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Document"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Folders"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV properties"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV Properties for Folders"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Properties"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Name"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Value"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directory"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Last Modification User"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Date Modified"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Creator"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Document Property"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV Properties"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substitute"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Error! You can not create recursive Directories."
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Directory cannot be parent of itself!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "The directory name must be unique !"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV Import Error!"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dynamic context"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Directory must have a parent or a storage"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "WebDAV server for Document Management"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV properties for folders"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "DAV properties for documents"
diff --git a/addons/document_webdav/i18n/es.po b/addons/document_webdav/i18n/es.po
deleted file mode 100644 (file)
index 08953f7..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-12 10:42+0000\n"
-"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Fecha de creación"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documentos"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Propiedad del documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Buscar propiedades del documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espacio de nombres"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propiedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar por..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propiedades se añadirán a las peticiones WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Propiedades DAV para los documentos"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Carpetas"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propiedades WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Propiedades DAV para las carpetas"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propiedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "documento.webdav.dir.propiedad"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directorio"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuario última modificación"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Fecha de Modificación"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Autor"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Propiedad del documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "Propiedades DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituir"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "¡El nombre de directorio debe ser único!"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "¡Error de importación PyWebDAV!"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "¡Error! No puede crear directorios recursivos."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Servidor WebDAV para gestión de documentos"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Propiedades DAV para carpetas"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "El directorio debe tener un padre o un almacenamiento."
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "¡El directorio no puede ser su propio padre!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Instale PyWebDAV desde "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contexto dinámico"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Propiedades DAV para documentos"
diff --git a/addons/document_webdav/i18n/es_CR.po b/addons/document_webdav/i18n/es_CR.po
deleted file mode 100644 (file)
index aadb875..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-02-15 20:44+0000\n"
-"Last-Translator: Freddy Gonzalez <freddy.gonzalez.contreras@gmail.com>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-"Language: es\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Fecha de creación"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documentos"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Buscar propiedades del documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espacio de nombres"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propiedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar por..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propiedades se añadirán a las peticiones WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV Propiedades para Documentos"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Directorios"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propiedades WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV Propiedades para carpetas"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propiedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "documento.webdav.dir.propiedad"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directorio"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuario última modificación"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Fecha de Modificación"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Autor"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV Propiedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituir"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "¡Error! No puede crear directorios recursivos."
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "¡Error de importación PyWebDAV!"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "¡El directorio no puede ser su propio padre!"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contexto dinámico"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "¡El nombre de directorio debe ser único!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Instale PyWebDAV desde "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "El directorio debe tener un padre o un almacenamiento."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Servidor WebDAV para gestión de documentos"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Propiedades DAV para carpetas"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Propiedades DAV para documentos"
diff --git a/addons/document_webdav/i18n/es_EC.po b/addons/document_webdav/i18n/es_EC.po
deleted file mode 100644 (file)
index bc7602a..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-09-17 19:10+0000\n"
-"Last-Translator: Paco Molinero <paco@byasl.com>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/es_MX.po b/addons/document_webdav/i18n/es_MX.po
deleted file mode 100644 (file)
index 980373d..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-13 09:01+0000\n"
-"Last-Translator: Alberto Luengo Cabanillas (Pexego) <alberto@pexego.es>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:43+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Fecha de creación"
-
-#. module: document_webdav
-#: constraint:document.directory:0
-msgid "Error! You can not create recursive Directories."
-msgstr "¡Error! No puede crear directorios recursivos."
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Buscar propiedades del documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espacio de nombres"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propiedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar por..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propiedades se añadirán a las peticiones WebDAV"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_file_props
-msgid "DAV properties for documents"
-msgstr "Propiedades DAV para documentos"
-
-#. module: document_webdav
-#: code:addons/document_webdav/webdav.py:37
-#, python-format
-msgid "PyWebDAV Import Error!"
-msgstr "¡Error de importación PyWebDAV!"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.module.module,description:document_webdav.module_meta_information
-msgid ""
-" With this module, the WebDAV server for the documents is activated.\n"
-"        You can then use any compatible browser to remotely see the "
-"attachments of OpenObject.\n"
-"\n"
-"        After installation, the webDAV server can be controlled by a "
-"[webdav] section in the server's config.\n"
-"        Server Configuration Parameter:\n"
-"        [webdav]\n"
-"        ; enable = True ; Serve webdav over the http(s) servers\n"
-"        ; vdir = webdav ; the directory that webdav will be served at\n"
-"          ; this default val means that webdav will be\n"
-"          ; on \"http://localhost:8069/webdav/\n"
-"        ; verbose = True ; Turn on the verbose messages of webdav\n"
-"        ; debug = True ; Turn on the debugging messages of webdav\n"
-"          ; since the messages are routed to the python logging, with\n"
-"          ; levels \"debug\" and \"debug_rpc\" respectively, you can leave\n"
-"          ; these options on\n"
-msgstr ""
-" Con este módulo se activa el servidor WebDAV para los documentos.\n"
-"    Puede utilizar cualquier navegador compatible para ver los archivos "
-"adjuntos de forma remota OpenObject.\n"
-"\n"
-"    Después de la instalación, el servidor WebDAV puede ser controlado en la "
-"sección [webdav] de la configuración del servidor.\n"
-"    Parámetros de configuración del servidor:\n"
-"        [webdav]\n"
-"        ; enable = True ; Serve webdav over the http(s) servers\n"
-"        ; vdir = webdav ; the directory that webdav will be served at\n"
-"          ; this default val means that webdav will be\n"
-"          ; on \"http://localhost:8069/webdav/\n"
-"        ; verbose = True ; Turn on the verbose messages of webdav\n"
-"        ; debug = True ; Turn on the debugging messages of webdav\n"
-"          ; since the messages are routed to the python logging, with\n"
-"          ; levels \"debug\" and \"debug_rpc\" respectively, you can leave\n"
-"          ; these options on\n"
-
-#. module: document_webdav
-#: sql_constraint:document.directory:0
-msgid "Directory cannot be parent of itself!"
-msgstr "¡El directorio no puede ser su propio padre!"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "Dynamic context"
-msgstr "Contexto dinámico"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propiedades WebDAV"
-
-#. module: document_webdav
-#: sql_constraint:document.directory:0
-msgid "The directory name must be unique !"
-msgstr "¡El nombre de directorio debe ser único!"
-
-#. module: document_webdav
-#: code:addons/document_webdav/webdav.py:37
-#, python-format
-msgid ""
-"Please install PyWebDAV from "
-"http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-"0.9.4.tar.gz&can=2&q=/"
-msgstr ""
-"Instale PyWebDAV desde "
-"http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-"0.9.4.tar.gz&can=2&q=/"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_dir_props
-msgid "DAV properties for folders"
-msgstr "Propiedades DAV para carpetas"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propiedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "documento.webdav.dir.propiedad"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directorio"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuario última modificación"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Fecha de Modificación"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Autor"
-
-#. module: document_webdav
-#: model:ir.module.module,shortdesc:document_webdav.module_meta_information
-msgid "WebDAV server for Document Management"
-msgstr "Servidor WebDAV para gestión de documentos"
-
-#. module: document_webdav
-#: sql_constraint:document.directory:0
-msgid "Directory must have a parent or a storage"
-msgstr "El directorio debe tener un padre o un almacenamiento."
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituir"
diff --git a/addons/document_webdav/i18n/es_PY.po b/addons/document_webdav/i18n/es_PY.po
deleted file mode 100644 (file)
index 1abd331..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Spanish (Paraguay) translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-03-21 16:13+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Spanish (Paraguay) <es_PY@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Fecha de creación"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Buscar propiedades del documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espacio de nombres"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propiedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar por..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propiedades se añadirán a las peticiones WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propiedades WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propiedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "documento.webdav.dir.propiedad"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Carpeta"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuario de la última modificación"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Carp"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Fecha de modificación"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Autor"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituir"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "¡Error de importación PyWebDAV!"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "¡Error! No puede crear carpetas recursivos."
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Propiedades DAV para documentos"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Propiedades DAV para carpetas"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "¡El directorio no puede ser su propio padre!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "¡El nombre de carpeta debe ser único!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Instale PyWebDAV desde "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contexto dinámico"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "La Carpeta debe tener un padre o un almacenamiento."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Servidor WebDAV para gestión de documentos"
diff --git a/addons/document_webdav/i18n/es_VE.po b/addons/document_webdav/i18n/es_VE.po
deleted file mode 100644 (file)
index 980373d..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-13 09:01+0000\n"
-"Last-Translator: Alberto Luengo Cabanillas (Pexego) <alberto@pexego.es>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:43+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Fecha de creación"
-
-#. module: document_webdav
-#: constraint:document.directory:0
-msgid "Error! You can not create recursive Directories."
-msgstr "¡Error! No puede crear directorios recursivos."
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Buscar propiedades del documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espacio de nombres"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propiedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar por..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propiedades se añadirán a las peticiones WebDAV"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_file_props
-msgid "DAV properties for documents"
-msgstr "Propiedades DAV para documentos"
-
-#. module: document_webdav
-#: code:addons/document_webdav/webdav.py:37
-#, python-format
-msgid "PyWebDAV Import Error!"
-msgstr "¡Error de importación PyWebDAV!"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.module.module,description:document_webdav.module_meta_information
-msgid ""
-" With this module, the WebDAV server for the documents is activated.\n"
-"        You can then use any compatible browser to remotely see the "
-"attachments of OpenObject.\n"
-"\n"
-"        After installation, the webDAV server can be controlled by a "
-"[webdav] section in the server's config.\n"
-"        Server Configuration Parameter:\n"
-"        [webdav]\n"
-"        ; enable = True ; Serve webdav over the http(s) servers\n"
-"        ; vdir = webdav ; the directory that webdav will be served at\n"
-"          ; this default val means that webdav will be\n"
-"          ; on \"http://localhost:8069/webdav/\n"
-"        ; verbose = True ; Turn on the verbose messages of webdav\n"
-"        ; debug = True ; Turn on the debugging messages of webdav\n"
-"          ; since the messages are routed to the python logging, with\n"
-"          ; levels \"debug\" and \"debug_rpc\" respectively, you can leave\n"
-"          ; these options on\n"
-msgstr ""
-" Con este módulo se activa el servidor WebDAV para los documentos.\n"
-"    Puede utilizar cualquier navegador compatible para ver los archivos "
-"adjuntos de forma remota OpenObject.\n"
-"\n"
-"    Después de la instalación, el servidor WebDAV puede ser controlado en la "
-"sección [webdav] de la configuración del servidor.\n"
-"    Parámetros de configuración del servidor:\n"
-"        [webdav]\n"
-"        ; enable = True ; Serve webdav over the http(s) servers\n"
-"        ; vdir = webdav ; the directory that webdav will be served at\n"
-"          ; this default val means that webdav will be\n"
-"          ; on \"http://localhost:8069/webdav/\n"
-"        ; verbose = True ; Turn on the verbose messages of webdav\n"
-"        ; debug = True ; Turn on the debugging messages of webdav\n"
-"          ; since the messages are routed to the python logging, with\n"
-"          ; levels \"debug\" and \"debug_rpc\" respectively, you can leave\n"
-"          ; these options on\n"
-
-#. module: document_webdav
-#: sql_constraint:document.directory:0
-msgid "Directory cannot be parent of itself!"
-msgstr "¡El directorio no puede ser su propio padre!"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "Dynamic context"
-msgstr "Contexto dinámico"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propiedades WebDAV"
-
-#. module: document_webdav
-#: sql_constraint:document.directory:0
-msgid "The directory name must be unique !"
-msgstr "¡El nombre de directorio debe ser único!"
-
-#. module: document_webdav
-#: code:addons/document_webdav/webdav.py:37
-#, python-format
-msgid ""
-"Please install PyWebDAV from "
-"http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-"0.9.4.tar.gz&can=2&q=/"
-msgstr ""
-"Instale PyWebDAV desde "
-"http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-"0.9.4.tar.gz&can=2&q=/"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_dir_props
-msgid "DAV properties for folders"
-msgstr "Propiedades DAV para carpetas"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propiedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "documento.webdav.dir.propiedad"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directorio"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuario última modificación"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Fecha de Modificación"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Autor"
-
-#. module: document_webdav
-#: model:ir.module.module,shortdesc:document_webdav.module_meta_information
-msgid "WebDAV server for Document Management"
-msgstr "Servidor WebDAV para gestión de documentos"
-
-#. module: document_webdav
-#: sql_constraint:document.directory:0
-msgid "Directory must have a parent or a storage"
-msgstr "El directorio debe tener un padre o un almacenamiento."
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituir"
diff --git a/addons/document_webdav/i18n/et.po b/addons/document_webdav/i18n/et.po
deleted file mode 100644 (file)
index 0bdcabf..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Estonian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-08-03 06:12+0000\n"
-"Last-Translator: lyyser <Unknown>\n"
-"Language-Team: Estonian <et@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/eu.po b/addons/document_webdav/i18n/eu.po
deleted file mode 100644 (file)
index 34ba223..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Basque translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-10-08 07:38+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Basque <eu@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/fi.po b/addons/document_webdav/i18n/fi.po
deleted file mode 100644 (file)
index 0165aa7..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Finnish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-07-20 10:18+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Finnish <fi@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Luontipäivä"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Asiakirjat"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Hae dokumentin ominaisuuksia"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Nimiavaruus"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV ominaisuudet"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Ryhmittely.."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Nämä ominaisuudet lisätään WebDAV pyyntöihin"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Dokumenttien DAV ominaisuudet"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Dokumentti"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Hakemistot"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV ominaisuudet"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Hakemistojen DAV ominaisuudet"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Ominaisuudet"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nimi"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Arvo"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Hakemisto"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Viimeksi muuttanut käyttäjä"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Hakemisto"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Muokkauspäivä"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Tekijä"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV ominaisuudet"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Korvaa"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Virhe! Et voi luoda rekursiivisia kansioita."
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "DAV ominaisuudet dokumenteille"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Hakemisto ei voi olla itsensä ylähakemisto!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Hakemiston nimen tulee olla uniikki !"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV tuontivirhe !"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dynaaminen konteksti"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "WebDAV palvelin dokumenttienhallinnalle"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Hakemistolla täytyy olla ylätason hakemisto tai tietovarasto"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV ominaisuudet hakemistoille"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Asenna PyWebDAV osoitteesta "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
diff --git a/addons/document_webdav/i18n/fr.po b/addons/document_webdav/i18n/fr.po
deleted file mode 100644 (file)
index b3f218b..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# French translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-21 13:47+0000\n"
-"Last-Translator: Florian Hatat <Unknown>\n"
-"Language-Team: French <fr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Date de création"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documents"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Propriétés du document"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Rechercher dans les propriétés du document"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espace de noms"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propriétés du DAV (Distributed Authoring and Versioning)"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Groupé par ..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Ces propriétés seront ajoutées aux requêtes WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Propriétés DAV pour les documents"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Document"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Répertoires"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propriétés WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Propriétés DAV pour les répertoires"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propriétés"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nom"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valeur"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Répertoire"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Utilisateur de la dernière modification"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Répertoire"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Date de modification"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Créateur"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Propriétés du document"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "Propriétés DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Remplacer"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Erreur! Vous ne pouvez pas créer de répertoires récursifs."
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contexte dynamique"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Propriétés DAV pour les classeurs"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Un répertoire ne peut pas être son propre parent !"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Le nom du répertoire doit être unique !"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Installer PyWebDAV à partir de l'URL : "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Le répertoire doit avoir un parent ou un espace de stockage"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "Erreur d'import PyWebDAV !"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Propriétés DAV (Distributed Authoring and Versioning) du document"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Serveur WebDAV pour le module de Gestion Documentaire"
diff --git a/addons/document_webdav/i18n/gl.po b/addons/document_webdav/i18n/gl.po
deleted file mode 100644 (file)
index fa71b91..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Galician translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-02-24 01:19+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Galician <gl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Data de creación"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Búsqueda de propiedades do documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Espazo de nomes"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propiedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar por ..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propiedades engadiranse as peticións WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propiedades WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propiedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nome"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "documento.webdav.dir.propiedad"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directorio"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuario última modificación"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Data de modificación"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Creador"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituto"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "Erro de importación PyWebDAV!"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Erro! Non se pode crear directorios recursivos."
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Propiedades DAV para documentos"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "O nome do directorio debe ser único!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Instale PyWebDAV desde "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "O directorio non pode ser o seu propio pai!"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contexto dinámico"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Propiedades DAV para cartafois"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Servidor WebDAV para xestión de documentos"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "O directorio debe ter un pai ou un almacenamento."
diff --git a/addons/document_webdav/i18n/gu.po b/addons/document_webdav/i18n/gu.po
deleted file mode 100644 (file)
index 115c850..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Gujarati translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-04-23 09:32+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Gujarati <gu@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "બનાવ્યાની તારીખ"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "દસ્તાવેજો"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "ગ્રુપ દ્વારા..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "દસ્તાવેજ"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "ફોલ્ડર્સ"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "ગુણધર્મો"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "નામ"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "મૂલ્ય"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "ડિરેક્ટરી"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "ફેરફાર કર્યાની તારીખ"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "રચનાર"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/hr.po b/addons/document_webdav/i18n/hr.po
deleted file mode 100644 (file)
index d0388f2..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-# Croatian translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-01-27 10:29+0000\n"
-"Last-Translator: Davor Bojkić <bole@dajmi5.com>\n"
-"Language-Team: Croatian <hr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Datum stvaranja"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Dokumenti"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Svojstva dokumenta"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Pretraži svojstva dokumenta"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Imenski prostor"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV svojstva"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupiraj po..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Ova svojstva će biti dodana DAV upitima"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV svojstva za dokumente"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Dokument"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Mape"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WEB DAV svojstva"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV svojstva za mape"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Svojstva"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Naziv"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Vrijednost"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Mapa"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Korisnik posljednje promjene"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Datum izmjene"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Autor"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Svojstva dokumenta"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV svojstva"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Zamijeni"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Pogreška! Ne možete stvarati rekurzivne mape."
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Mapa ne može biti sama sebi nadređena!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Naziv mape mora biti jedinstven!"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Mapa mora imati roditelja ili pohranu (storage)"
diff --git a/addons/document_webdav/i18n/hu.po b/addons/document_webdav/i18n/hu.po
deleted file mode 100644 (file)
index ba8d5de..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#    * document_webdav
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-02-28 23:29+0000\n"
-"Last-Translator: krnkris <Unknown>\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: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Létrehozás dátuma"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Dokumentumok"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Dokumentum tulajdonsága"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Dokumentum tulajdonságok keresése"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Név helye"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV tulajdonságai"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Csoportosítás..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Ezek a tulajdonságok hozzá lesznek adva a WebDAV igényhez"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV tulajdonságok a dokumetumokhoz"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Dokumentum"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Könyvtárak"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV tulajdonságok"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV tulajdonságok a könyvtárakhoz"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Tulajdonságok"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Név"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Érték"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Könyvtár"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Utolsó módosítást végzó felhasználó"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Mappa"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Módosítás dátuma"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Létrehozó"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Dokument tulajdonság"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV tuajdonság"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Helyettesítés"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Hiba! Nem hozhat létre körkörös mappahivatkozást."
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "A könyvtár nevének egyedinek kell lennie !"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dinamikus környezet"
diff --git a/addons/document_webdav/i18n/id.po b/addons/document_webdav/i18n/id.po
deleted file mode 100644 (file)
index 71cd662..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Indonesian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-08-17 09:23+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Indonesian <id@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr ""
diff --git a/addons/document_webdav/i18n/it.po b/addons/document_webdav/i18n/it.po
deleted file mode 100644 (file)
index ba97f13..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Italian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-01-12 13:21+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Italian <it@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Data di creazione"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documenti"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Proprietà documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Cerca proprietà documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Namespace"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Proprietà DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Raggruppa per..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Queste proprietà verranno aggiunte alle richieste WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Proprietà DAV per Documenti"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Cartelle"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Proprietà WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Proprietà DAV per Cartelle"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Proprietà"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nome"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valore"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directory"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Ultimo utente modificatore"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Data ultima modifica"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Creatore"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Proprietà Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "Proprietà DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Sostituire"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Errore! Non è possibile creare directory ricorsive."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "server WebDAV per Gestione Documentale"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contesto dinamico"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Proprietà DAV per cartelle"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "La cartella non può essere padre di sè stessa!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Il nome della cartella deve essere univoco!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Per favore installare PyWebDAV dall'indirizzo: "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV: errore importazione!"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "La Cartella deve avere un padre o uno storage"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Proprietà DAV per documenti"
diff --git a/addons/document_webdav/i18n/ja.po b/addons/document_webdav/i18n/ja.po
deleted file mode 100644 (file)
index ccffd49..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-# Japanese translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-04-21 00:03+0000\n"
-"Last-Translator: Masaki Yamaya <Unknown>\n"
-"Language-Team: Japanese <ja@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "作成日"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "文書"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "文書の特性を検索する"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "ネームスペース"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV特性"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "グループ化…"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "これらの特性はWebDAV要求に追加されます。"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "文書のDAV特性"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "文書"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "フォルダ"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV特性"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "フォルダのDAV特性"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "特性"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "名前"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "値"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "ディレクトリ"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "前回、修正したユーザ"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "ディレクトリ"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "変更日"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "作成者"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV特性"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "代替"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "エラー:ディレクトリを重複して作ることはできません。"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "ディレクトリ名は固有でなければいけません。"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "下記のサイトから PyWebDAV をインストールしてください。 "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAVの取込みエラー"
-
-#~ msgid "Dynamic context"
-#~ msgstr "ダイナミックな文脈"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "ディレクトリはそれ自身の親レベルになれません。"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "ディレクトリは親あるいはストレージを持っていなければいけません。"
diff --git a/addons/document_webdav/i18n/mk.po b/addons/document_webdav/i18n/mk.po
deleted file mode 100644 (file)
index 23cce80..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-# Macedonian translation for openobject-addons
-# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-03-07 12:27+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Macedonian <mk@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Датумот е креиран"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Документи"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Својство на документ"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Барај својства на документ"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Простор за имиња"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV својства"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Групирај по..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Овие својства ќе бидат додадени на WebDAV барањата"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV својства за документи"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Документ"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Папки"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV својства"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV својства за папки"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Својства"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Име"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Вредност"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Директориум"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Корисник на последна измена"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Дир."
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Изменет датум"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Креатор"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Својство на документ"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV својства"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Замена"
diff --git a/addons/document_webdav/i18n/mn.po b/addons/document_webdav/i18n/mn.po
deleted file mode 100644 (file)
index d69bf24..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-# Mongolian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-09-29 11:14+0000\n"
-"Last-Translator: ub121 <ubs121@gmail.com>\n"
-"Language-Team: Mongolian <mn@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Үүсгэсэн огноо"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Баримтууд"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Баримтыг төлөвөөр хайх"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Нэрийн муж"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Бүлэглэвэл..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Баримт"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Хавтсууд"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Үзүүлэлтүүд"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Нэр"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Орлуулах"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Алдаа! Тойрч холбогдсон хавтас үүсгэж болохгүй."
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Хавтасны нэр давхцаж болохгүй!"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Динамик контекст"
diff --git a/addons/document_webdav/i18n/nb.po b/addons/document_webdav/i18n/nb.po
deleted file mode 100644 (file)
index ba87993..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-# Norwegian Bokmal translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-09-07 17:44+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Norwegian Bokmal <nb@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Dato opprettet"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Dokumenter"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Søk Dokumentegenskaper."
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Navnerom"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV egenskaper"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "Dokumentet.WebDAV.fil.egenskap"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupper etter ..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Disse egenskapene vil bli lagt til WebDAV-forespørsler"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV Eiendommer for Dokumenter."
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Dokument"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Mapper"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV egenskaper."
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV egenskaper for mapper."
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Egenskaper"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Navn"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "Dokumentet.WebDAV.dir.eiendom"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Verdi"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Katalog"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Siste endring Bruker"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Retn"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Dato endret"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Opprettet av"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV Egenskaper."
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Erstatte"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Feil! Du kan opprette rekursive kataloger."
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Vennligst installer PyWebDAV fra "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Katalogen kan ikke være overordnede av seg selv!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Katalogen Navnet må være unikt!"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV importere Feil!"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dynamisk sammenheng"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Katalog må ha en overordnede eller en lagringsplass."
diff --git a/addons/document_webdav/i18n/nl.po b/addons/document_webdav/i18n/nl.po
deleted file mode 100644 (file)
index 783df9f..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Dutch translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-11-25 21:00+0000\n"
-"Last-Translator: Erwin van der Ploeg (BAS Solutions) <Unknown>\n"
-"Language-Team: Dutch <nl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Aanmaakdatum"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documenten"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Document eigenschap"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Document eigenschappen zoeken"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Naamruimte"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV eigenschappen"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Groepeer op..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Deze eigenschappen worden toegevoegd bij WebDAV aanvragen"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV instellingen voor documenten"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Document"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Mappen"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV eigenschappen"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV instellingen voor documenten"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Eigenschappen"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Naam"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Waarde"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Map"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Gebruiker laatste wijziging"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Map"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Datum gewijzigd"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Gemaakt door"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Document eigenschap"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV instellingen"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Vervangen"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Fout ! U kunt geen recursieve mappen maken."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "WebDAV server voor documentbeheer"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dynamische context"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV eigenschappen voor mappen"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Map kan niet bovenliggend aan zichzelf zijn!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "De mapnaam moet uniek zijn!"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Map moet een bovenliggende map hebben of opslag zijn"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Installeer aub PyWebDAV vanaf "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV import fout!"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "DAV eigenschappen voor documenten"
diff --git a/addons/document_webdav/i18n/pl.po b/addons/document_webdav/i18n/pl.po
deleted file mode 100644 (file)
index 7a68242..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-# Polish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-12-28 09:13+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Polish <pl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Przestrzeń nazw"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Właściwiości DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupuj wg..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Te właściwości zostaną dodane do zgłoszeń WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Właściwości WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Właściwości"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nazwa"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Wartość"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Katalog"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Kat"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Subsytut"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Katalog nie może być nadrzędny dla samego siebie !"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "Błąd importu PyWebDAV"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Błąd! Nie możesz tworzyć rekurencyjnych katalogów."
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dynamiczny kontekst"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Właściwości DAV dla katalogów"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Nazwa katalogu musi być unikalna !"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Serwer WebDAV do Zarządzania dokumentami"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Katalog musi mieć katalog nadrzędny lub nazwę napędu."
diff --git a/addons/document_webdav/i18n/pt.po b/addons/document_webdav/i18n/pt.po
deleted file mode 100644 (file)
index 732196f..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Portuguese translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-17 14:02+0000\n"
-"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
-"Language-Team: Portuguese <pt@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Data da Criação"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documentos"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Propriedade do documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Procurar propriedades de documentos"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Namespace"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propriedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupo por..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propriedades serão adicionadas às solicitações WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Propriedades DAV para documentos"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Pastas"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV propriedades"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Propriedades DAV para documentos"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propriedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nome"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Directório"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Última Modificação do Utilizador"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Data Modificada"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Criador"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Propriedade do documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "Propriedades DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituir"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "DAV propriedades de documentos"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV Erro de importação!"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Uma pasta não pode ser ascendente de sí própria"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contexto dinâmico"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "O nome da pasta tem de ser único !"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Por favor instale PyWebDAV de "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV propriedades de pastas"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "WebDAV servidor para Gestão de Documentos"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "A pasta tem de ter um ascendente ou um armazenamento"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Erro! Não é possível criar Pastas recursivas."
diff --git a/addons/document_webdav/i18n/pt_BR.po b/addons/document_webdav/i18n/pt_BR.po
deleted file mode 100644 (file)
index 13fa0f2..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-# Brazilian Portuguese translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-12-10 18:01+0000\n"
-"Last-Translator: Projetaty Soluções OpenSource <Unknown>\n"
-"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Dada de Criação"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documentos"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Propriedade do Documento"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Procurar Propriedades dos Documentos"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Namespace"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Propriedades DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Agrupar Por..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Estas propriedades serão adicionadas para requisições WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Propriedades DAV para Documentos"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Pastas"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Propriedades WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Propriedades DAV para as pastas"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Propriedades"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nome"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Diretório"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Usuário da Última Modificação"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Modificado em"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Criador"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Propriedade do Documento"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "Propriedades DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Substituto"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Erro! Você não pode criar diretórios recursivos."
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Diretório não pode ser pai dele mesmo!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "O nome do diretório deve ser único !"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Contexo dinâmico"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Por favor instale o PyWebDAV de "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "Erro de Iimportação PyWEbDAV!"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "O diretório precisa ter um pai ou um armazenamento"
diff --git a/addons/document_webdav/i18n/ro.po b/addons/document_webdav/i18n/ro.po
deleted file mode 100644 (file)
index 3921af3..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Romanian translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-01-04 14:42+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Romanian <ro@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Data Creata"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Documente"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Actul de proprietate"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Cautare Proprietati documente"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Spatiu nume"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Proprietati DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "proprietate.fisier.document.webdav"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupeaza dupa..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Aceste proprietati vor fi adaugate cererilor WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Proprietati DAV pentru Documente"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Document"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Foldere"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Proprietari WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Proprietati DAV pentru Foldere"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Proprietati"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Nume"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "proprietate.dir.document.webdav"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Valoare"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Director"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Utilizatorul ultimei modificari"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Director"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Data modificare"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Creator"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Actul de Proprietate"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "Proprietati DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Inlocuitor"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Eroare! Nu puteti crea Directoare recursive."
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "Proprietati DAV pentru documente"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "Proprietăți DAV pentru fisiere"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Directorul nu poate fi parinte lui insusi"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Numele directorului trebuie sa fie unic !"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "Eroare Import PyWebDAV!"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Context dinamic"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Serverul WebDAV pentru Managementul documentelor"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Directorul trebuie sa aiba un parinte sau o arhiva"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Va rugam sa instalati PyWebDAV de la adresa "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
diff --git a/addons/document_webdav/i18n/ru.po b/addons/document_webdav/i18n/ru.po
deleted file mode 100644 (file)
index b52b83e..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# Russian translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-03-16 00:07+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Russian <ru@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Дата создания"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Документы"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Свойство документа"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Поиск по свойствам документа"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Пространство имён"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "Настройки DAV"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Группировать по ..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Эти свойства будут добавлены к запросам WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Свойства DAV для документов"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Документ"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Папки"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "Настройки WebDAV"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Свойства DAV для папок"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Свойства"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Название"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Значение"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Каталог"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Автор последнего изменения"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Кат."
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Дата изменения"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Создатель"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Свойство документа"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "Свойства DAV"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Заменить"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "DAV-свойства документа"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Каталог не может быть родительским для самого себя!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Имя каталога должно быть уникальным!"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "Ошибка импорта PyWebDAV"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Динамический контекст"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Каталог должен иметь родителя или хранилище"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "Сервер WebDAV для управления документами"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Требуется установить PyWebDAV с адреса "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV-свойства папок"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Ошибка! Нельзя создавать вложенные директории."
diff --git a/addons/document_webdav/i18n/sl.po b/addons/document_webdav/i18n/sl.po
deleted file mode 100644 (file)
index e400dc7..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-# Slovenian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-08-03 06:12+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) <Unknown>\n"
-"Language-Team: Slovenian <sl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Datum nastanka"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Dokumenti"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Lastnost dokumenta"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Iskanje lastnosti dokumenta"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Imenski prostor"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV lasnosti"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Združi po ..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Te lastnosti bodo dodane k WebDAV zahtevkom"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV lastnosti za dokumente"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Dokument"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Mape"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV lastnosti"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV lastnosti za mape"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Lastnosti"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Ime"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Vrednost"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Mapa"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Zadnja sprememba"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Mapa"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Datum spremembe"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Avtor"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Lastnost dokumenta"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV lastnosti"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Zamenjava"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Napaka! Ne morete izdelati rekurzivnih imenikov."
diff --git a/addons/document_webdav/i18n/sr.po b/addons/document_webdav/i18n/sr.po
deleted file mode 100644 (file)
index 69ae370..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-# Serbian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-11-03 07:58+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Serbian <sr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Prostor"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV Svojstva"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupisano po..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Ova ce svojstva biti dodana WebDAV zahtevima"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV Svojstva"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Svojstva"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Ime"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Vrednost"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Direktorijum"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Zamena"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Greska ! Ne mozes kreirati rekursivne Direktorijume."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "WebDAV server za Upravljanje Dokumentima"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dinamicki Kontekst"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV svojstva za foldere"
diff --git a/addons/document_webdav/i18n/sr@latin.po b/addons/document_webdav/i18n/sr@latin.po
deleted file mode 100644 (file)
index d8f448f..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-# Serbian latin translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-12-23 16:24+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Serbian latin <sr@latin@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Prostor"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV osobine"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupisano po..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Ova ce svojstva biti dodana WebDAV zahtevima"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV Svojstva"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Svojstva"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Ime"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Vrednost"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Direktorijum"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dir"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr ""
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Zamena"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Greska ! Ne mozes kreirati rekursivne Direktorijume."
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "WebDAV server za Upravljanje Dokumentima"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dinamicki Kontekst"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "DAV svojstva za foldere"
diff --git a/addons/document_webdav/i18n/sv.po b/addons/document_webdav/i18n/sv.po
deleted file mode 100644 (file)
index 82f59f9..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-# Swedish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2010-11-30 17:03+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: Swedish <sv@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Skapad datum"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Dokument"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Sök bland dokumentens egenskaper"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Namnrymd"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV-attribut"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Gruppera"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Dessa attribut adderas till WebDAV-anropen"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "DAV-attribut för dokument"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Dokument"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Mappar"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV-attribut"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV-attribut för kataloger"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Attribut"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Namn"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Värde"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Katalog"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Senaste ändring av användaren"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Katalog"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Ändringsdatum"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Författare"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV-attribut"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Ersätt"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Katalogen kan inte ha sig själv som förälder!"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Fel! Ni kan inte skapa rekursiva kataloger"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV importfel!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Katalognamnet måste vara unikt !"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Vänligen installera PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dynamiskt sammanhang"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Katalogen måste ha en förälder eller en lagringsplats"
diff --git a/addons/document_webdav/i18n/tr.po b/addons/document_webdav/i18n/tr.po
deleted file mode 100644 (file)
index 5e0cfe6..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-# Turkish translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-01-25 17:22+0000\n"
-"Last-Translator: Ahmet Altınışık <Unknown>\n"
-"Language-Team: Turkish <tr@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "Oluşturma Tarihi"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "Belgeler"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "Döküman özelliği"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "Belge özelliklerini ara"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "İsimalanı"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV özellikleri"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "belge.webdav.dosya.özellik"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "Grupla..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "Özellikler WebDAV isteklerine aklenecektir"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "Belgeler için DAV Özellikleri"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "Belge"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "Klasörler"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV özellikleri"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "Klasörler için DAV özellikleri"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "Özellikler"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "Adı"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "belge.webdav.diz.özellik"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "Değer"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "Dizin"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "Son Değiştiren Kullanıcı"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "Dizin"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "Değiştirilme Tarihi"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "Oluşturan"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "Döküman özelliği"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV Özellikleri"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "Yedek"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "Hata! Yinelenen Dizinler oluşturamazsınız."
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV İçeaktarma Hatası!"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "Dizin kendisinin üstü olamaz!"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "Dizin adı eşsiz olmalı"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "Lütfen PyWebDAV2 "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/ adresinden kurun"
-
-#~ msgid "Dynamic context"
-#~ msgstr "Dinamik içerik"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "Dizinin bir üst dizini ya da depolaması olmalı"
diff --git a/addons/document_webdav/i18n/zh_CN.po b/addons/document_webdav/i18n/zh_CN.po
deleted file mode 100644 (file)
index fbfb09c..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#      * document_ics
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-11-27 16:44+0000\n"
-"Last-Translator: 盈通 ccdos <ccdos@intoerp.com>\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: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "创建时间"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "文档"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr "单据属性"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "文档属性列表"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "命名空间"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV属性"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "Copy text \t document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "分组..."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "这些属性将被添加到WebDAV请求上"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "文档的DAV属性"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "文件"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "目录"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "webDAV 属性"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "目录的DAV属性"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "属性"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "名称"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "值"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "目录"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "最近修改用户"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "目录"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "修改日期"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "创建人"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr "单据属性"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV属性"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "替换"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "错误:你无法建立递归的目录"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV导入错误!"
-
-#~ msgid "DAV properties for documents"
-#~ msgstr "文档的DAV属性"
-
-#~ msgid "DAV properties for folders"
-#~ msgstr "目录的DAV属性"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "目录名必须唯一!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "请从这里下载安装PyWebDAV \r\n"
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-
-#~ msgid "WebDAV server for Document Management"
-#~ msgstr "文档管理系统的WebDAV服务器"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "目录不能设为自己的父目录。"
-
-#~ msgid "Dynamic context"
-#~ msgstr "动态上下文"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "目录必须有父目录或一个存储区"
diff --git a/addons/document_webdav/i18n/zh_TW.po b/addons/document_webdav/i18n/zh_TW.po
deleted file mode 100644 (file)
index 4bf552c..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-# Chinese (Traditional) translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2012-08-30 11:51+0000\n"
-"Last-Translator: Bonnie Duan <bonnie.duan@cenoq.com>\n"
-"Language-Team: Cenoq Corp.\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-03-04 07:26+0000\n"
-"X-Generator: Launchpad (build 16948)\n"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_date:0
-#: field:document.webdav.file.property,create_date:0
-msgid "Date Created"
-msgstr "建立日期"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_document_props
-msgid "Documents"
-msgstr "文件"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Document property"
-msgstr ""
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Search Document properties"
-msgstr "搜尋文件目錄"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: field:document.webdav.dir.property,namespace:0
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,namespace:0
-msgid "Namespace"
-msgstr "Namespace"
-
-#. module: document_webdav
-#: field:document.directory,dav_prop_ids:0
-msgid "DAV properties"
-msgstr "DAV 內容"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_file_property
-msgid "document.webdav.file.property"
-msgstr "document.webdav.file.property"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Group By..."
-msgstr "群組...."
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "These properties will be added to WebDAV requests"
-msgstr "這些內容將被加到 WebDAV 請求"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
-msgid "DAV Properties for Documents"
-msgstr "文件的DAV 內容"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-#: field:document.webdav.file.property,file_id:0
-msgid "Document"
-msgstr "文件"
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_folder_props
-msgid "Folders"
-msgstr "檔案夾"
-
-#. module: document_webdav
-#: view:document.directory:0
-msgid "WebDAV properties"
-msgstr "WebDAV 內容"
-
-#. module: document_webdav
-#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
-msgid "DAV Properties for Folders"
-msgstr "DAV 檔案夾內容"
-
-#. module: document_webdav
-#: view:document.directory:0
-#: view:document.webdav.dir.property:0
-#: view:document.webdav.file.property:0
-msgid "Properties"
-msgstr "內容"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,name:0
-#: field:document.webdav.file.property,name:0
-msgid "Name"
-msgstr "名稱"
-
-#. module: document_webdav
-#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
-msgid "document.webdav.dir.property"
-msgstr "document.webdav.dir.property"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,value:0
-#: field:document.webdav.file.property,value:0
-msgid "Value"
-msgstr "價值"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,dir_id:0
-#: model:ir.model,name:document_webdav.model_document_directory
-msgid "Directory"
-msgstr "目錄"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_uid:0
-#: field:document.webdav.file.property,write_uid:0
-msgid "Last Modification User"
-msgstr "最後修改使用者"
-
-#. module: document_webdav
-#: view:document.webdav.dir.property:0
-msgid "Dir"
-msgstr "路徑"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,write_date:0
-#: field:document.webdav.file.property,write_date:0
-msgid "Date Modified"
-msgstr "修改日期"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,create_uid:0
-#: field:document.webdav.file.property,create_uid:0
-msgid "Creator"
-msgstr "建立者"
-
-#. module: document_webdav
-#: view:document.webdav.file.property:0
-msgid "Document Property"
-msgstr ""
-
-#. module: document_webdav
-#: model:ir.ui.menu,name:document_webdav.menu_properties
-msgid "DAV Properties"
-msgstr "DAV 內容"
-
-#. module: document_webdav
-#: field:document.webdav.dir.property,do_subst:0
-#: field:document.webdav.file.property,do_subst:0
-msgid "Substitute"
-msgstr "替代項目"
-
-#~ msgid "Error! You can not create recursive Directories."
-#~ msgstr "錯誤! 您不能建立循環的目錄"
-
-#, python-format
-#~ msgid "PyWebDAV Import Error!"
-#~ msgstr "PyWebDAV 匯入錯誤!"
-
-#~ msgid "Directory cannot be parent of itself!"
-#~ msgstr "目錄不能成為自己的母目錄!"
-
-#~ msgid "Dynamic context"
-#~ msgstr "動態背景"
-
-#~ msgid "The directory name must be unique !"
-#~ msgstr "目錄名不能重覆!"
-
-#, python-format
-#~ msgid ""
-#~ "Please install PyWebDAV from "
-#~ "http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/"
-#~ msgstr ""
-#~ "從 http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
-#~ "0.9.4.tar.gz&can=2&q=/,請安裝 PyWebDAV"
-
-#~ msgid "Directory must have a parent or a storage"
-#~ msgstr "目錄必須要有母目錄或儲存室"
diff --git a/addons/document_webdav/nodes.py b/addons/document_webdav/nodes.py
deleted file mode 100644 (file)
index 9a35f3c..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2010 Tiny SPRL (<http://tiny.be>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-import time
-import urllib
-import uuid
-
-from openerp import SUPERUSER_ID
-from openerp.tools.safe_eval import safe_eval as eval
-
-from openerp.addons.document import document as nodes
-
-def dict_filter(srcdic, keys, res=None):
-    ''' Return a copy of srcdic that has only keys set.
-    If any of keys are missing from srcdic, the result won't have them, 
-    either.
-    @param res If given, result will be updated there, instead of a new dict.
-    '''
-    if res is None:
-        res = {}
-    for k in keys:
-        if k in srcdic:
-            res[k] = srcdic[k]
-    return res
-
-class node_acl_mixin(object):
-    def _get_dav_owner(self, cr):
-        return self.uuser
-
-    def _get_dav_group(self, cr):
-        return self.ugroup
-        
-    def _get_dav_supported_privilege_set(self, cr):
-        return '' # TODO
-    
-    def _get_dav_current_user_privilege_set(self, cr):
-        return '' # TODO
-
-    def _get_dav_props_hlpr(self, cr, par_class, prop_model, 
-                            prop_ref_field, res_id):
-        """ Helper for dav properties, usable in subclasses
-        
-        @param par_class The parent class
-        @param prop_model The name of the orm model holding the properties
-        @param prop_ref_field The name of the field at prop_model pointing to us
-        @param res_id the id of self in the corresponing orm table, that should
-                        match prop_model.prop_ref_field
-        """
-        ret = par_class.get_dav_props(self, cr)
-        if prop_model:
-            propobj = self.context._dirobj.pool[prop_model]
-            uid = self.context.uid
-            ctx = self.context.context.copy()
-            ctx.update(self.dctx)
-            # Not really needed because we don't do eval here:
-            # ctx.update({'uid': uid, 'dbname': self.context.dbname })
-            # dict_filter(self.context.extra_ctx, ['username', 'groupname', 'webdav_path'], ctx)
-            sdomain = [(prop_ref_field, '=', False),]
-            if res_id:
-                sdomain = ['|', (prop_ref_field, '=', res_id)] + sdomain
-            prop_ids = propobj.search(cr, uid, sdomain, context=ctx)
-            if prop_ids:
-                ret = ret.copy()
-                for pbro in propobj.browse(cr, uid, prop_ids, context=ctx):
-                    ret[pbro.namespace] = ret.get(pbro.namespace, ()) + \
-                        (pbro.name,)
-                    # Note that we cannot have properties to conditionally appear
-                    # on the context, yet.
-                
-        return ret
-
-    def _get_dav_eprop_hlpr(self, cr, ns, prop,
-                            par_class, prop_model, 
-                            prop_ref_field, res_id):
-        """ Helper for get dav eprop, usable in subclasses
-        
-        @param namespace the one to search for
-        @param name Name to search for
-        @param par_class The parent class
-        @param prop_model The name of the orm model holding the properties
-        @param prop_ref_field The name of the field at prop_model pointing to us
-        @param res_id the id of self in the corresponing orm table, that should
-                        match prop_model.prop_ref_field
-        """
-        ret = par_class.get_dav_eprop(self, cr, ns, prop)
-        if ret is not None:
-            return ret
-        if prop_model:
-            propobj = self.context._dirobj.pool[prop_model]
-            uid = self.context.uid
-            ctx = self.context.context.copy()
-            ctx.update(self.dctx)
-            ctx.update({'uid': uid, 'dbname': self.context.dbname })
-            ctx['node_classname'] = "%s.%s" % (self.__class__.__module__, self.__class__.__name__)
-            dict_filter(self.context.extra_ctx, ['username', 'groupname', 'webdav_path'], ctx)
-            sdomain = [(prop_ref_field, '=', False),('namespace', '=', ns), ('name','=', prop)]
-            if res_id:
-                sdomain = ['|', (prop_ref_field, '=', res_id)] + sdomain
-            prop_ids = propobj.search(cr, uid, sdomain, context=ctx)
-            if prop_ids:
-                pbro = propobj.browse(cr, uid, prop_ids[0], context=ctx)
-                val = pbro.value
-                if pbro.do_subst:
-                    if val.startswith("('") and val.endswith(")"):
-                        glbls = { 'urlquote': urllib.quote, }
-                        val = eval(val, glbls, ctx)
-                    else:
-                        val = val % ctx
-                return val
-        return None
-
-    def _dav_lock_hlpr(self, cr, lock_data, par_class, prop_model,
-                            prop_ref_field, res_id):
-        """ Helper, which uses the dav properties table for placing locks
-        
-        @param lock_data a dictionary of input to this function.
-        @return list of tuples, DAV:activelock _contents_ structure.
-                See webdav.py:class Prop2Xml() for semantics
-        
-        Note: although the DAV response shall be an <activelock/>, this
-        function will only return the elements inside the activelock,
-        because the calling function needs to append the <lockroot/> in
-        it. See webdav.py:mk_lock_response()
-        
-        In order to reuse code, this function can be called with 
-        lock_data['unlock_mode']=True, in order to unlock.
-        
-        @return bool in unlock mode, (davstruct, prop_id, token) in lock/refresh,
-                    or (False, prop_id, token) if already locked,
-                    or (False, False, False) if lock not found to refresh
-        """
-        assert prop_model
-        assert res_id
-        assert isinstance(lock_data, dict), '%r' % lock_data
-        propobj = self.context._dirobj.pool[prop_model]
-        uid = self.context.uid
-        ctx = self.context.context.copy()
-        ctx.update(self.dctx)
-        ctx.update({'uid': uid, 'dbname': self.context.dbname })
-        ctx['node_classname'] = "%s.%s" % (self.__class__.__module__, self.__class__.__name__)
-        dict_filter(self.context.extra_ctx, ['username', 'groupname', 'webdav_path'], ctx)
-        sdomain = [(prop_ref_field, '=', res_id), ('namespace', '=', 'DAV:'),
-                    ('name','=', 'lockdiscovery')]
-        props_to_delete = []
-        lock_found = False
-        lock_val = None
-        tmout2 = int(lock_data.get('timeout', 3*3600))
-        
-        prop_ids = propobj.search(cr, uid, sdomain, context=ctx)
-        if prop_ids:
-            for pbro in propobj.browse(cr, uid, prop_ids, context=ctx):
-                val = pbro.value
-                if pbro.do_subst:
-                    if val.startswith("('") and val.endswith(")"):
-                        glbls = { 'urlquote': urllib.quote, }
-                        val = eval(val, glbls, ctx)
-                    else:
-                        # all locks should be at "subst" format
-                        continue
-                if not (val and isinstance(val, tuple) 
-                        and val[0:2] == ( 'activelock','DAV:')):
-                    # print "Value is not activelock:", val
-                    continue
-                
-                old_token = False
-                old_owner = False
-                try:
-                    # discover the timeout. If anything goes wrong, delete
-                    # the lock (cleanup)
-                    tmout = False
-                    for parm in val[2]:
-                        if parm[1] != 'DAV:':
-                            continue
-                        if parm[0] == 'timeout':
-                            if isinstance(parm[2], basestring) \
-                                    and parm[2].startswith('Second-'):
-                                tmout = int(parm[2][7:])
-                        elif parm[0] == 'locktoken':
-                            if isinstance(parm[2], basestring):
-                                old_token = parm[2]
-                            elif isinstance(parm[2], tuple) and \
-                                parm[2][0:2] == ('href','DAV:'):
-                                    old_token = parm[2][2]
-                            else:
-                                # print "Mangled token in DAV property: %r" % parm[2]
-                                props_to_delete.append(pbro.id)
-                                continue
-                        elif parm[0] == 'owner':
-                            old_owner = parm[2] # not used yet
-                    if tmout:
-                        mdate = pbro.write_date or pbro.create_date
-                        mdate = time.mktime(time.strptime(mdate,'%Y-%m-%d %H:%M:%S'))
-                        if mdate + tmout < time.time():
-                            props_to_delete.append(pbro.id)
-                            continue
-                    else:
-                        props_to_delete.append(pbro.id)
-                        continue
-                except ValueError:
-                    props_to_delete.append(pbro.id)
-                    continue
-                
-                # A valid lock is found here
-                if lock_data.get('refresh', False):
-                    if old_token != lock_data.get('token'):
-                        continue
-                    # refresh mode. Just touch anything and the ORM will update
-                    # the write uid+date, won't it?
-                    # Note: we don't update the owner, because incoming refresh
-                    # wouldn't have a body, anyway.
-                    propobj.write(cr, uid, [pbro.id,], { 'name': 'lockdiscovery'})
-                elif lock_data.get('unlock_mode', False):
-                    if old_token != lock_data.get('token'):
-                        continue
-                    props_to_delete.append(pbro.id)
-                
-                lock_found = pbro.id
-                lock_val = val
-
-        if tmout2 > 3*3600: # 3 hours maximum
-            tmout2 = 3*3600
-        elif tmout2 < 300:
-            # 5 minutes minimum, but an unlock request can always
-            # break it at any time. Ensures no negative values, either.
-            tmout2 = 300
-        
-        if props_to_delete:
-            # explicitly delete, as admin, any of the ids we have identified.
-            propobj.unlink(cr, SUPERUSER_ID, props_to_delete)
-        
-        if lock_data.get('unlock_mode', False):
-            return lock_found and True
-        elif (not lock_found) and not (lock_data.get('refresh', False)):
-            # Create a new lock, attach and return it.
-            new_token = uuid.uuid4().urn
-            lock_val = ('activelock', 'DAV:', 
-                    [ ('locktype', 'DAV:', (lock_data.get('locktype',False) or 'write','DAV:')),
-                      ('lockscope', 'DAV:', (lock_data.get('lockscope',False) or 'exclusive','DAV:')),
-                      # ? ('depth', 'DAV:', lock_data.get('depth','0') ),
-                      ('timeout','DAV:', 'Second-%d' % tmout2),
-                      ('locktoken', 'DAV:', ('href', 'DAV:', new_token)),
-                      # ('lockroot', 'DAV: ..., we don't store that, appended by caller
-                    ])
-            new_owner = lock_data.get('lockowner',False) or ctx.get('username', False)
-            if new_owner:
-                lock_val[2].append( ('owner', 'DAV:',  new_owner) )
-            prop_id = propobj.create(cr, uid, { prop_ref_field: res_id,
-                    'namespace': 'DAV:', 'name': 'lockdiscovery',
-                    'do_subst': True, 'value': repr(lock_val) })
-            return (lock_val[2], prop_id, new_token )
-        elif not lock_found: # and refresh
-            return (False, False, False)
-        elif lock_found and not lock_data.get('refresh', False):
-            # already locked
-            return (False, lock_found, old_token)
-        else:
-            return (lock_val[2], lock_found, old_token )
-
-class node_dir(node_acl_mixin, nodes.node_dir):
-    """ override node_dir and add DAV functionality
-    """
-    DAV_PROPS = { "DAV:": ('owner', 'group', 
-                            'supported-privilege-set', 
-                            'current-user-privilege-set'), 
-                }
-    DAV_M_NS = { "DAV:" : '_get_dav',}
-    http_options = { 'DAV': ['access-control',] }
-
-    def get_dav_resourcetype(self, cr):
-        return ('collection', 'DAV:')
-
-    def get_dav_props(self, cr):
-        return self._get_dav_props_hlpr(cr, nodes.node_dir, 
-                'document.webdav.dir.property', 'dir_id', self.dir_id)
-
-    def get_dav_eprop(self, cr, ns, prop):
-        return self._get_dav_eprop_hlpr(cr, ns, prop, nodes.node_dir,
-                'document.webdav.dir.property', 'dir_id', self.dir_id)
-
-
-class node_file(node_acl_mixin, nodes.node_file):
-    DAV_PROPS = { "DAV:": ('owner', 'group', 
-                            'supported-privilege-set', 
-                            'current-user-privilege-set',
-                            ), 
-                }
-    DAV_M_NS = { "DAV:" : '_get_dav',}
-    http_options = { 'DAV': ['access-control', ] }
-    pass
-
-    def get_dav_resourcetype(self, cr):
-        return ''
-
-    def get_dav_props(self, cr):
-        return self._get_dav_props_hlpr(cr, nodes.node_file, 
-                'document.webdav.file.property', 'file_id', self.file_id)
-
-    def dav_lock(self, cr, lock_data):
-        """ Locks or unlocks the node, using DAV semantics.
-        
-        Unlocking will be done when lock_data['unlock_mode'] == True
-        
-        See _dav_lock_hlpr() for calling details.
-        
-        It is fundamentally OK to use this function from non-DAV endpoints,
-        but they will all have to emulate the tuple-in-list structure of
-        the DAV lock data. RFC if this translation should be done inside
-        the _dav_lock_hlpr (to ease other protocols).
-        """
-        return self._dav_lock_hlpr(cr, lock_data, nodes.node_file, 
-                'document.webdav.file.property', 'file_id', self.file_id)
-
-    def dav_unlock(self, cr, token):
-        """Releases the token lock held for the node
-        
-        This is a utility complement of dav_lock()
-        """
-        lock_data = { 'token': token, 'unlock_mode': True }
-        return self._dav_lock_hlpr(cr, lock_data, nodes.node_file, 
-                'document.webdav.file.property', 'file_id', self.file_id)
-
-    def get_dav_eprop(self, cr, ns, prop):
-        if ns == 'DAV:' and prop == 'supportedlock':
-            return [ ('lockentry', 'DAV:', 
-                        [ ('lockscope','DAV:', ('shared', 'DAV:')),
-                          ('locktype','DAV:', ('write', 'DAV:')),
-                        ]),
-                   ('lockentry', 'DAV:', 
-                        [ ('lockscope','DAV:', ('exclusive', 'DAV:')),
-                          ('locktype','DAV:', ('write', 'DAV:')),
-                        ] )
-                   ]
-        return self._get_dav_eprop_hlpr(cr, ns, prop, nodes.node_file,
-                'document.webdav.file.property', 'file_id', self.file_id)
-
-class node_database(nodes.node_database):
-    def get_dav_resourcetype(self, cr):
-        return ('collection', 'DAV:')
-
-    def get_dav_props(self, cr):
-        return self._get_dav_props_hlpr(cr, nodes.node_database,
-                'document.webdav.dir.property', 'dir_id', False)
-
-    def get_dav_eprop(self, cr, ns, prop):
-        return self._get_dav_eprop_hlpr(cr, nodes.node_database, ns, prop,
-                'document.webdav.dir.property', 'dir_id', False)
-
-class node_res_obj(node_acl_mixin, nodes.node_res_obj):
-    DAV_PROPS = { "DAV:": ('owner', 'group', 
-                            'supported-privilege-set', 
-                            'current-user-privilege-set'), 
-                }
-    DAV_M_NS = { "DAV:" : '_get_dav',}
-    http_options = { 'DAV': ['access-control',] }
-
-    def get_dav_resourcetype(self, cr):
-        return ('collection', 'DAV:')
-
-    def get_dav_props(self, cr):
-        return self._get_dav_props_hlpr(cr, nodes.node_res_obj, 
-                'document.webdav.dir.property', 'dir_id', self.dir_id)
-
-    def get_dav_eprop(self, cr, ns, prop):
-        return self._get_dav_eprop_hlpr(cr, ns, prop, nodes.node_res_obj,
-                'document.webdav.dir.property', 'dir_id', self.dir_id)
-
-
-class node_res_dir(node_acl_mixin, nodes.node_res_dir):
-    DAV_PROPS = { "DAV:": ('owner', 'group', 
-                            'supported-privilege-set', 
-                            'current-user-privilege-set'), 
-                }
-    DAV_M_NS = { "DAV:" : '_get_dav',}
-    http_options = { 'DAV': ['access-control',] }
-    res_obj_class = node_res_obj
-
-    def get_dav_resourcetype(self, cr):
-        return ('collection', 'DAV:')
-
-    def get_dav_props(self, cr):
-        return self._get_dav_props_hlpr(cr, nodes.node_res_dir, 
-                'document.webdav.dir.property', 'dir_id', self.dir_id)
-
-    def get_dav_eprop(self, cr, ns, prop):
-        return self._get_dav_eprop_hlpr(cr, ns, prop, nodes.node_res_dir,
-                'document.webdav.dir.property', 'dir_id', self.dir_id)
-
-# Some copies, so that this module can replace 'from document import nodes'
-get_node_context = nodes.get_node_context
-node_context = nodes.node_context
-node_class = nodes.node_class
-node_descriptor = nodes.node_descriptor
-
-
-#eof
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/public_html/index.html b/addons/document_webdav/public_html/index.html
deleted file mode 100644 (file)
index b3a841a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
-<head>
-<title>OpenERP server</title>
-</head>
-<body>
-This is an OpenERP server. Nothing to GET here.
-</body>
-</html>
-
diff --git a/addons/document_webdav/redirect.py b/addons/document_webdav/redirect.py
deleted file mode 100644 (file)
index 41cbe3b..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2010 OpenERP s.a. (<http://openerp.com>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-import logging
-import urlparse
-from openerp.service.websrv_lib import FixSendError, HTTPHandler, HttpOptions
-from openerp.service.http_server import HttpLogHandler
-_logger = logging.getLogger(__name__)
-class RedirectHTTPHandler(HttpLogHandler, FixSendError, HttpOptions, HTTPHandler):
-    
-    _HTTP_OPTIONS = { 'Allow': ['OPTIONS', 'GET', 'HEAD', 'PROPFIND'] }
-    redirect_paths = {}
-
-    def __init__(self, request, client_address, server):
-        HTTPHandler.__init__(self,request,client_address,server)
-
-    def send_head(self):
-        """Common code for GET and HEAD commands.
-
-        It will either send the correct redirect (Location) response
-        or a 404.
-        """
-
-        if self.path.endswith('/'):
-            self.path = self.path[:-1]
-        
-        if not self.path:
-            # Return an empty page
-            self.send_response(200)
-            self.send_header("Content-Length", 0)
-            self.end_headers()
-            return None
-        
-        redir_path = self._find_redirect()
-        if redir_path is False:
-            self.send_error(404, "File not found")
-            return None
-        elif redir_path is None:
-            return None
-
-        server_proto = getattr(self.server, 'proto', 'http').lower()
-        addr, port = self.server.server_name, self.server.server_port
-        try:
-            addr, port = self.request.getsockname()
-        except Exception, e:
-            self.log_error("Cannot calculate own address:" , e)
-        
-        if self.headers.has_key('Host'):
-            uparts = list(urlparse.urlparse("%s://%s:%d"% (server_proto, addr,port)))
-            uparts[1] = self.headers['Host']
-            baseuri = urlparse.urlunparse(uparts)
-        else:
-            baseuri = "%s://%s:%d"% (server_proto, addr, port )
-
-
-        location = baseuri + redir_path
-        # relative uri: location = self.redirect_paths[self.path]
-
-        self.send_response(301)
-        self.send_header("Location", location)
-        self.send_header("Content-Length", 0)
-        self.end_headers()
-        # Do we need a Cache-content: header here?
-        _logger.debug("redirecting %s to %s", self.path, redir_path)
-        return None
-
-    def do_PROPFIND(self):
-        self._get_ignore_body()
-        return self.do_HEAD()
-
-    def _find_redirect(self):
-        """ Locate self.path among the redirects we can handle
-        @return The new path, False for 404 or None for already sent error
-        """
-        return self.redirect_paths.get(self.path, False)
-
-    def _get_ignore_body(self):
-        if not self.headers.has_key("content-length"):
-            return
-        max_chunk_size = 10*1024*1024
-        size_remaining = int(self.headers["content-length"])
-        got = ''
-        while size_remaining:
-            chunk_size = min(size_remaining, max_chunk_size)
-            got = self.rfile.read(chunk_size)
-            size_remaining -= len(got)
-
-#eof
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/security/ir.model.access.csv b/addons/document_webdav/security/ir.model.access.csv
deleted file mode 100644 (file)
index fa81bce..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink\r
-access_webdav_dir_property_all,webdav.dir.property all,model_document_webdav_dir_property,,1,0,0,0\r
-access_webdav_dir_property_group_doc_manager,webdav.dir.property document manager,model_document_webdav_dir_property,base.group_system,1,1,1,1\r
-access_webdav_dir_property_group_system,webdav.dir.property group system,model_document_webdav_dir_property,base.group_system,1,1,1,1\r
-access_webdav_file_property_all,webdav.file.property all,model_document_webdav_file_property,,1,1,1,1\r
diff --git a/addons/document_webdav/test/webdav_test1.yml b/addons/document_webdav/test/webdav_test1.yml
deleted file mode 100644 (file)
index ae91d7c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
--
-    In order to test the document_webdav functionality
--
-    I open the HTTP port and perform an OPTIONS request to the server
--
-    !python {model: ir.attachment}: |
-        from document_webdav import test_davclient as te
-        reload(te) # reload..
-        dc = te.DAVClient(timeout=2.0)
-        # have a small timeout, enough for any heavily-loaded test server to
-        # respond, but small so that this test won't block further loading.
-        # Don't catch the exception, so that the whole YAML test will abort
-        # if the WebDAV service is not available (eg. during an upgrade from
-        # command line).
-        dc.gd_options()
-        dc.get_creds(self, cr, uid)
-        dc.gd_options(path=cr.dbname, expect={'DAV': ['1',]})
--
-    I will test the propnames at the document root
--
-    !python {model: ir.attachment}: |
-        from document_webdav import test_davclient as te
-        dc = te.DAVClient()
-        dc.get_creds(self, cr, uid)
-        dc.gd_propname(path=cr.dbname+'/Documents/')
--
-    I will test the ETags of the document root
--
-    !python {model: ir.attachment}: |
-        from document_webdav import test_davclient as te
-        dc = te.DAVClient()
-        dc.get_creds(self, cr, uid)
-        dc.gd_getetag(path=cr.dbname+'/Documents/')
-
--
-    I will now ls -l the document root.
--
-    !python {model: ir.attachment}: |
-        from document_webdav import test_davclient as te
-        dc = te.DAVClient()
-        dc.get_creds(self, cr, uid)
-        res = dc.gd_lsl(path=cr.dbname+'/Documents/')
-        for lin in res:
-            print "%(type)s\t%(uid)s\t%(gid)s\t%(size)s\t%(mtime)s\t%(name)s" % lin
--
-    I will put a file to the server
--
-    !python {model: ir.attachment}: |
-        from document_webdav import test_davclient as te
-        dc = te.DAVClient()
-        dc.get_creds(self, cr, uid)
-        tdp = openerp.modules.module.get_module_resource('document_webdav', 'test_davclient.py')
-        res = dc.gd_put(path=cr.dbname+'/Documents/test_davclient.py', srcpath=tdp)
--
-    I will try to get the file from the root
--
-    !python {model: ir.attachment}: |
-        from document_webdav import test_davclient as te
-        import addons
-        dc = te.DAVClient()
-        dc.get_creds(self, cr, uid)
-        tdp = openerp.modules.module.get_module_resource('document_webdav', 'test_davclient.py')
-        res = dc.gd_get(path=cr.dbname+'/Documents/test_davclient.py', crange=(4,508), compare=tdp)
diff --git a/addons/document_webdav/test_davclient.py b/addons/document_webdav/test_davclient.py
deleted file mode 100644 (file)
index f3a8b35..0000000
+++ /dev/null
@@ -1,707 +0,0 @@
-# -*- encoding: utf-8 -*-
-#
-# Copyright P. Christeas <p_christ@hol.gr> 2008,2009
-# Copyright OpenERP SA. (http://www.openerp.com) 2010
-#
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-###############################################################################
-
-""" A trivial HTTP/WebDAV client, used for testing the server
-"""
-# code taken from the 'http-client.py' script:
-# http://git.hellug.gr/?p=xrg/openerp;a=history;f=tests/http-client.py;hb=refs/heads/xrg-60
-
-import gzip
-import logging
-import xml.dom.minidom
-
-import httplib
-
-from openerp.tools import config
-from xmlrpclib import Transport, ProtocolError
-import StringIO
-import base64
-from openerp import SUPERUSER_ID
-
-_logger = logging.getLogger(__name__)
-
-class HTTP11(httplib.HTTP):
-        _http_vsn = 11
-        _http_vsn_str = 'HTTP/1.1'
-
-class PersistentTransport(Transport):
-    """Handles an HTTP transaction to an XML-RPC server, persistently."""
-
-    def __init__(self, use_datetime=0):
-        self._use_datetime = use_datetime
-        self._http = {}
-        log.debug("Using persistent transport")
-
-    def make_connection(self, host):
-        # create a HTTP connection object from a host descriptor
-        if not self._http.has_key(host):
-                host, extra_headers, x509 = self.get_host_info(host)
-                self._http[host] = HTTP11(host)
-                _logger.debug("New connection to %s", host)
-        return self._http[host]
-
-    def get_host_info(self, host):
-        host, extra_headers, x509 = Transport.get_host_info(self,host)
-        if extra_headers == None:
-                extra_headers = []
-
-        extra_headers.append( ( 'Connection', 'keep-alive' ))
-
-        return host, extra_headers, x509
-
-    def _parse_response(self, file, sock, response):
-        """ read response from input file/socket, and parse it
-            We are persistent, so it is important to only parse
-            the right amount of input
-        """
-
-        p, u = self.getparser()
-
-        if response.msg.get('content-encoding') == 'gzip':
-            gzdata = StringIO.StringIO()
-            while not response.isclosed():
-                rdata = response.read(1024)
-                if not rdata:
-                    break
-                gzdata.write(rdata)
-            gzdata.seek(0)
-            rbuffer = gzip.GzipFile(mode='rb', fileobj=gzdata)
-            while True:
-                respdata = rbuffer.read()
-                if not respdata:
-                    break
-                p.feed(respdata)
-        else:
-            while not response.isclosed():
-                rdata = response.read(1024)
-                if not rdata:
-                        break
-                p.feed(rdata)
-                if len(rdata)<1024:
-                        break
-
-        p.close()
-        return u.close()
-
-    def request(self, host, handler, request_body, verbose=0):
-        # issue XML-RPC request
-
-        h = self.make_connection(host)
-        if verbose:
-            h.set_debuglevel(1)
-
-        self.send_request(h, handler, request_body)
-        self.send_host(h, host)
-        self.send_user_agent(h)
-        self.send_content(h, request_body)
-
-        resp = h._conn.getresponse()
-        # TODO: except BadStatusLine, e:
-
-        errcode, errmsg, headers = resp.status, resp.reason, resp.msg
-
-
-        if errcode != 200:
-            raise ProtocolError(
-                host + handler,
-                errcode, errmsg,
-                headers
-                )
-
-        self.verbose = verbose
-
-        try:
-            sock = h._conn.sock
-        except AttributeError:
-            sock = None
-
-        return self._parse_response(h.getfile(), sock, resp)
-
-class CompressedTransport(PersistentTransport):
-    def send_content(self, connection, request_body):
-        connection.putheader("Content-Type", "text/xml")
-
-        if len(request_body) > 512 or True:
-            buffer = StringIO.StringIO()
-            output = gzip.GzipFile(mode='wb', fileobj=buffer)
-            output.write(request_body)
-            output.close()
-            buffer.seek(0)
-            request_body = buffer.getvalue()
-            connection.putheader('Content-Encoding', 'gzip')
-
-        connection.putheader("Content-Length", str(len(request_body)))
-        connection.putheader("Accept-Encoding",'gzip')
-        connection.endheaders()
-        if request_body:
-            connection.send(request_body)
-
-    def send_request(self, connection, handler, request_body):
-        connection.putrequest("POST", handler, skip_accept_encoding=1)
-
-class SafePersistentTransport(PersistentTransport):
-    def make_connection(self, host):
-        # create a HTTP connection object from a host descriptor
-        if not self._http.has_key(host):
-                host, extra_headers, x509 = self.get_host_info(host)
-                self._http[host] = httplib.HTTPS(host, None, **(x509 or {}))
-                _logger.debug("New connection to %s", host)
-        return self._http[host]
-
-class AuthClient(object):
-    def getAuth(self, atype, realm):
-        raise NotImplementedError("Cannot authenticate for %s" % atype)
-
-    def resolveFailedRealm(self, realm):
-        """ Called when, using a known auth type, the realm is not in cache
-        """
-        raise NotImplementedError("Cannot authenticate for realm %s" % realm)
-
-class BasicAuthClient(AuthClient):
-    def __init__(self):
-        self._realm_dict = {}
-
-    def getAuth(self, atype, realm):
-        if atype != 'Basic' :
-            return super(BasicAuthClient,self).getAuth(atype, realm)
-
-        if not self._realm_dict.has_key(realm):
-            _logger.debug("realm dict: %r", self._realm_dict)
-            _logger.debug("missing key: \"%s\"" % realm)
-            self.resolveFailedRealm(realm)
-        return 'Basic '+ self._realm_dict[realm]
-
-    def addLogin(self, realm, username, passwd):
-        """ Add some known username/password for a specific login.
-            This function should be called once, for each realm
-            that we want to authenticate against
-        """
-        assert realm
-        auths = base64.encodestring(username + ':' + passwd)
-        if auths[-1] == "\n":
-            auths = auths[:-1]
-        self._realm_dict[realm] = auths
-
-class addAuthTransport:
-    """ Intermediate class that authentication algorithm to http transport
-    """
-
-    def setAuthClient(self, authobj):
-        """ Set the authentication client object.
-            This method must be called before any request is issued, that
-            would require http authentication
-        """
-        assert isinstance(authobj, AuthClient)
-        self._auth_client = authobj
-
-
-    def request(self, host, handler, request_body, verbose=0):
-        # issue XML-RPC request
-
-        h = self.make_connection(host)
-        if verbose:
-            h.set_debuglevel(1)
-
-        tries = 0
-        atype = None
-        realm = None
-
-        while(tries < 3):
-            self.send_request(h, handler, request_body)
-            self.send_host(h, host)
-            self.send_user_agent(h)
-            if atype:
-                # This line will bork if self.setAuthClient has not
-                # been issued. That is a programming error, fix your code!
-                auths = self._auth_client.getAuth(atype, realm)
-                _logger.debug("sending authorization: %s", auths)
-                h.putheader('Authorization', auths)
-            self.send_content(h, request_body)
-
-            resp = h._conn.getresponse()
-            #  except BadStatusLine, e:
-            tries += 1
-
-            if resp.status == 401:
-                if 'www-authenticate' in resp.msg:
-                    (atype,realm) = resp.msg.getheader('www-authenticate').split(' ',1)
-                    data1 = resp.read()
-                    if data1:
-                        log.warning("Why have data on a 401 auth. message?")
-                    if realm.startswith('realm="') and realm.endswith('"'):
-                        realm = realm[7:-1]
-                    _logger.debug("Resp: %r %r", resp.version,resp.isclosed(), resp.will_close)
-                    _logger.debug("Want to do auth %s for realm %s", atype, realm)
-                    if atype != 'Basic':
-                        raise ProtocolError(host+handler, 403,
-                                        "Unknown authentication method: %s" % atype, resp.msg)
-                    continue # with the outer while loop
-                else:
-                    raise ProtocolError(host+handler, 403,
-                                'Server-incomplete authentication', resp.msg)
-
-            if resp.status != 200:
-                raise ProtocolError( host + handler,
-                    resp.status, resp.reason, resp.msg )
-
-            self.verbose = verbose
-
-            try:
-                sock = h._conn.sock
-            except AttributeError:
-                sock = None
-
-            return self._parse_response(h.getfile(), sock, resp)
-
-        raise ProtocolError(host+handler, 403, "No authentication.",'')
-
-class PersistentAuthTransport(addAuthTransport,PersistentTransport):
-    pass
-
-class PersistentAuthCTransport(addAuthTransport,CompressedTransport):
-    pass
-
-class HTTPSConnection(httplib.HTTPSConnection):
-        certs_file = None
-        def connect(self):
-            "Connect to a host on a given (SSL) port. check the certificate"
-            import socket, ssl
-
-            if HTTPSConnection.certs_file:
-                ca_certs = HTTPSConnection.certs_file
-                cert_reqs = ssl.CERT_REQUIRED
-            else:
-                ca_certs = None
-                cert_reqs = ssl.CERT_NONE
-            sock = socket.create_connection((self.host, self.port), self.timeout)
-            self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file,
-                                ca_certs=ca_certs,
-                                cert_reqs=cert_reqs)
-
-
-        def getpeercert(self):
-                import ssl
-                cert = None
-                if self.sock:
-                        cert =  self.sock.getpeercert()
-                else:
-                        cert = ssl.get_server_certificate((self.host,self.port),
-                                ssl_version=ssl.PROTOCOL_SSLv23 )
-                        lf = (len(ssl.PEM_FOOTER)+1)
-                        if cert[0-lf] != '\n':
-                                cert = cert[:0-lf]+'\n'+cert[0-lf:]
-                        _logger.debug("len-footer: %s cert: %r", lf, cert[0-lf])
-
-                return cert
-
-
-class DAVClient(object):
-    """An instance of a WebDAV client, connected to the OpenERP server
-    """
-
-    def __init__(self, user=None, passwd=None, dbg=0, use_ssl=False, useragent=False, timeout=None):
-        if use_ssl:
-            self.host = config.get_misc('httpsd', 'interface', False)
-            self.port = config.get_misc('httpsd', 'port', 8071)
-            if not self.host:
-                self.host = config.get('xmlrpcs_interface')
-                self.port = config.get('xmlrpcs_port')
-        else:
-            self.host = config.get_misc('httpd', 'interface')
-            self.port = config.get_misc('httpd', 'port', 8069)
-            if not self.host:
-                self.host = config.get('xmlrpc_interface')
-                self.port = config.get('xmlrpc_port') or self.port
-        if self.host == '0.0.0.0' or not self.host:
-            self.host = '127.0.0.1'
-        self.port = int(self.port)
-        if not config.get_misc('webdav','enable',True):
-            raise Exception("WebDAV is disabled, cannot continue")
-        self.davpath = '/' + config.get_misc('webdav','vdir','webdav')
-        self.user = user
-        self.passwd = passwd
-        self.dbg = dbg
-        self.timeout = timeout or 5.0 # seconds, tests need to respond pretty fast!
-        self.hdrs = {}
-        if useragent:
-            self.set_useragent(useragent)
-
-    def get_creds(self, obj, cr, uid):
-        """Read back the user credentials from cr, uid
-
-        @param obj is any orm object, in order to use its pool
-        @param uid is the numeric id, which we will try to reverse resolve
-
-        note: this is a hackish way to get the credentials. It is expected
-        to break if "base_crypt" is used.
-        """
-        ruob = obj.pool.get('res.users')
-        res = ruob.read(cr, SUPERUSER_ID, [uid,], ['login', 'password'])
-        assert res, "uid %s not found" % uid
-        self.user = res[0]['login']
-        self.passwd = res[0]['password']
-        if self.passwd.startswith('$1$'):
-            # md5 by base crypt. We cannot decode, wild guess
-            # that passwd = login
-            self.passwd = self.user
-        return True
-
-    def set_useragent(self, uastr):
-        """ Set the user-agent header to something meaningful.
-        Some shorthand names will be replaced by stock strings.
-        """
-        if uastr in ('KDE4', 'Korganizer'):
-            self.hdrs['User-Agent'] = "Mozilla/5.0 (compatible; Konqueror/4.4; Linux) KHTML/4.4.3 (like Gecko)"
-        elif uastr == 'iPhone3':
-            self.hdrs['User-Agent'] = "DAVKit/5.0 (765); iCalendar/5.0 (79); iPhone/4.1 8B117"
-        elif uastr == "MacOS":
-            self.hdrs['User-Agent'] = "WebDAVFS/1.8 (01808000) Darwin/9.8.0 (i386)"
-        else:
-            self.hdrs['User-Agent'] = uastr
-
-    def _http_request(self, path, method='GET', hdrs=None, body=None):
-        if not hdrs:
-            hdrs = {}
-        import base64
-        dbg = self.dbg
-        hdrs.update(self.hdrs)
-        _logger.debug("Getting %s http://%s:%d/%s", method, self.host, self.port, path)
-        conn = httplib.HTTPConnection(self.host, port=self.port, timeout=self.timeout)
-        conn.set_debuglevel(dbg)
-        if not path:
-            path = "/index.html"
-        if not hdrs.has_key('Connection'):
-                hdrs['Connection']= 'keep-alive'
-        conn.request(method, path, body, hdrs )
-        try:
-                r1 = conn.getresponse()
-        except httplib.BadStatusLine, bsl:
-                log.warning("Bad status line: %s", bsl.line)
-                raise Exception('Bad status line.')
-        if r1.status == 401: # and r1.headers:
-                if 'www-authenticate' in r1.msg:
-                        (atype,realm) = r1.msg.getheader('www-authenticate').split(' ',1)
-                        data1 = r1.read()
-                        if not self.user:
-                                raise Exception('Must auth, have no user/pass!')
-                        _logger.debug("Ver: %s, closed: %s, will close: %s", r1.version,r1.isclosed(), r1.will_close)
-                        _logger.debug("Want to do auth %s for realm %s", atype, realm)
-                        if atype == 'Basic' :
-                                auths = base64.encodestring(self.user + ':' + self.passwd)
-                                if auths[-1] == "\n":
-                                        auths = auths[:-1]
-                                hdrs['Authorization']= 'Basic '+ auths
-                                #sleep(1)
-                                conn.request(method, path, body, hdrs )
-                                r1 = conn.getresponse()
-                        else:
-                                raise Exception("Unknown auth type %s" %atype)
-                else:
-                        _logger.warning("Got 401, cannot auth")
-                        raise Exception('No auth')
-
-        _logger.debug("Reponse: %s %s",r1.status, r1.reason)
-        data1 = r1.read()
-        if method != 'GET':
-            _logger.debug("Body:\n%s\nEnd of body", data1)
-            try:
-                ctype = r1.msg.getheader('content-type')
-                if ctype and ';' in ctype:
-                    ctype, encoding = ctype.split(';',1)
-                if ctype == 'text/xml':
-                    doc = xml.dom.minidom.parseString(data1)
-                    _logger.debug("XML Body:\n %s", doc.toprettyxml(indent="\t"))
-            except Exception:
-                _logger.warning("Cannot print XML.", exc_info=True)
-                pass
-        conn.close()
-        return r1.status, r1.msg, data1
-
-    def _assert_headers(self, expect, msg):
-        """ Assert that the headers in msg contain the expect values
-        """
-        for k, v in expect.items():
-            hval = msg.getheader(k)
-            if not hval:
-                raise AssertionError("Header %s not defined in http response" % k)
-            if isinstance(v, (list, tuple)):
-                delim = ','
-                hits = map(str.strip, hval.split(delim))
-                mvits= []
-                for vit in v:
-                    if vit not in hits:
-                        mvits.append(vit)
-                if mvits:
-                    raise AssertionError("HTTP header \"%s\" is missing: %s" %(k, ', '.join(mvits)))
-            else:
-                if hval.strip() != v.strip():
-                    raise AssertionError("HTTP header \"%s: %s\"" % (k, hval))
-
-    def gd_options(self, path='*', expect=None):
-        """ Test the http options functionality
-            If a dictionary is defined in expect, those options are
-            asserted.
-        """
-        if path != '*':
-            path = self.davpath + path
-        hdrs = { 'Content-Length': 0
-                }
-        s, m, d = self._http_request(path, method='OPTIONS', hdrs=hdrs)
-        assert s == 200, "Status: %r" % s
-        assert 'OPTIONS' in m.getheader('Allow')
-        _logger.debug('Options: %r', m.getheader('Allow'))
-
-        if expect:
-            self._assert_headers(expect, m)
-
-    def _parse_prop_response(self, data):
-        """ Parse a propfind/propname response
-        """
-        def getText(node):
-            rc = []
-            for node in node.childNodes:
-                if node.nodeType == node.TEXT_NODE:
-                    rc.append(node.data)
-            return ''.join(rc)
-
-        def getElements(node, namespaces=None, strict=False):
-            for cnod in node.childNodes:
-                if cnod.nodeType != node.ELEMENT_NODE:
-                    if strict:
-                        _logger.debug("Found %r inside <%s>", cnod, node.tagName)
-                    continue
-                if namespaces and (cnod.namespaceURI not in namespaces):
-                    _logger.debug("Ignoring <%s> in <%s>", cnod.tagName, node.localName)
-                    continue
-                yield cnod
-
-        nod = xml.dom.minidom.parseString(data)
-        nod_r = nod.documentElement
-        res = {}
-        assert nod_r.localName == 'multistatus', nod_r.tagName
-        for resp in nod_r.getElementsByTagNameNS('DAV:', 'response'):
-            href = None
-            status = 200
-            res_nss = {}
-            for cno in getElements(resp, namespaces=['DAV:',]):
-                if cno.localName == 'href':
-                    assert href is None, "Second href in same response"
-                    href = getText(cno)
-                elif cno.localName == 'propstat':
-                    for pno in getElements(cno, namespaces=['DAV:',]):
-                        rstatus = None
-                        if pno.localName == 'prop':
-                            for prop in getElements(pno):
-                                key = prop.localName
-                                tval = getText(prop).strip()
-                                val = tval or (True, rstatus or status)
-                                if prop.namespaceURI == 'DAV:' and prop.localName == 'resourcetype':
-                                    val = 'plain'
-                                    for rte in getElements(prop, namespaces=['DAV:',]):
-                                        # Note: we only look at DAV:... elements, we
-                                        # actually expect only one DAV:collection child
-                                        val = rte.localName
-                                res_nss.setdefault(prop.namespaceURI,{})[key] = val
-                        elif pno.localName == 'status':
-                            rstr = getText(pno)
-                            htver, sta, msg = rstr.split(' ', 3)
-                            assert htver == 'HTTP/1.1'
-                            rstatus = int(sta)
-                        else:
-                            _logger.debug("What is <%s> inside a <propstat>?", pno.tagName)
-
-                else:
-                    _logger.debug("Unknown node: %s", cno.tagName)
-
-            res.setdefault(href,[]).append((status, res_nss))
-
-        return res
-
-    def gd_propfind(self, path, props=None, depth=0):
-        if not props:
-            propstr = '<allprop/>'
-        else:
-            propstr = '<prop>'
-            nscount = 0
-            for p in props:
-                ns = None
-                if isinstance(p, tuple):
-                    p, ns = p
-                if ns is None or ns == 'DAV:':
-                    propstr += '<%s/>' % p
-                else:
-                    propstr += '<ns%d:%s xmlns:ns%d="%s" />' %(nscount, p, nscount, ns)
-                    nscount += 1
-            propstr += '</prop>'
-
-        body="""<?xml version="1.0" encoding="utf-8"?>
-            <propfind xmlns="DAV:">%s</propfind>""" % propstr
-        hdrs = { 'Content-Type': 'text/xml; charset=utf-8',
-                'Accept': 'text/xml',
-                'Depth': depth,
-                }
-
-        s, m, d = self._http_request(self.davpath + path, method='PROPFIND',
-                                    hdrs=hdrs, body=body)
-        assert s == 207, "Bad status: %s" % s
-        ctype = m.getheader('Content-Type').split(';',1)[0]
-        assert ctype == 'text/xml', m.getheader('Content-Type')
-        res = self._parse_prop_response(d)
-        if depth == 0:
-            assert len(res) == 1
-            res = res.values()[0]
-        else:
-            assert len(res) >= 1
-        return res
-
-
-    def gd_propname(self, path, depth=0):
-        body="""<?xml version="1.0" encoding="utf-8"?>
-            <propfind xmlns="DAV:"><propname/></propfind>"""
-        hdrs = { 'Content-Type': 'text/xml; charset=utf-8',
-                'Accept': 'text/xml',
-                'Depth': depth
-                }
-        s, m, d = self._http_request(self.davpath + path, method='PROPFIND',
-                                    hdrs=hdrs, body=body)
-        assert s == 207, "Bad status: %s" % s
-        ctype = m.getheader('Content-Type').split(';',1)[0]
-        assert ctype == 'text/xml', m.getheader('Content-Type')
-        res = self._parse_prop_response(d)
-        if depth == 0:
-            assert len(res) == 1
-            res = res.values()[0]
-        else:
-            assert len(res) >= 1
-        return res
-
-    def gd_getetag(self, path, depth=0):
-        return self.gd_propfind(path, props=['getetag',], depth=depth)
-
-    def gd_lsl(self, path):
-        """ Return a list of 'ls -l' kind of data for a folder
-
-            This is based on propfind.
-        """
-
-        lspairs = [ ('name', 'displayname', 'n/a'), ('size', 'getcontentlength', '0'),
-                ('type', 'resourcetype', '----------'), ('uid', 'owner', 'nobody'),
-                ('gid', 'group', 'nogroup'), ('mtime', 'getlastmodified', 'n/a'),
-                ('mime', 'getcontenttype', 'application/data'), ]
-
-        propnames = [ l[1] for l in lspairs]
-        propres = self.gd_propfind(path, props=propnames, depth=1)
-
-        res = []
-        for href, pr in propres.items():
-            lsline = {}
-            for st, nsdic in pr:
-                davprops = nsdic['DAV:']
-                if st == 200:
-                    for lsp in lspairs:
-                        if lsp[1] in davprops:
-                            if lsp[1] == 'resourcetype':
-                                if davprops[lsp[1]] == 'collection':
-                                    lsline[lsp[0]] = 'dr-xr-x---'
-                                else:
-                                    lsline[lsp[0]] = '-r-xr-x---'
-                            else:
-                                lsline[lsp[0]] = davprops[lsp[1]]
-                elif st in (404, 403):
-                    for lsp in lspairs:
-                        if lsp[1] in davprops:
-                            lsline[lsp[0]] = lsp[2]
-                else:
-                    _logger.debug("Strange status: %s", st)
-
-            res.append(lsline)
-
-        return res
-
-    def gd_get(self, path, crange=None, mime=None, compare=None):
-        """ HTTP GET for path, supporting Partial ranges
-        """
-        hdrs = { 'Accept': mime or '*/*', }
-        if crange:
-            if isinstance(crange, tuple):
-                crange = [crange,]
-            if not isinstance(crange, list):
-                raise TypeError("Range must be a tuple or list of tuples.")
-            rs = []
-            for r in crange:
-                rs.append('%d-%d' % r)
-            hdrs['Range'] = 'bytes='+ (','.join(rs))
-        s, m, d = self._http_request(self.davpath + path, method='GET', hdrs=hdrs)
-        assert s in (200, 206), "Bad status: %s" % s
-        ctype = m.getheader('Content-Type')
-        if ctype and ';' in ctype:
-            ctype = ctype.split(';',1)[0]
-        if mime:
-            assert ctype == mime, m.getheader('Content-Type')
-        rrange = None
-        rrh = m.getheader('Content-Range')
-        if rrh:
-            assert rrh.startswith('bytes '), rrh
-            rrh=rrh[6:].split('/',1)[0]
-            rrange = map(int, rrh.split('-',1))
-        if compare:
-            # we need to compare the returned data with that of compare
-            fd = open(compare, 'rb')
-            d2 = fd.read()
-            fd.close()
-            if crange:
-                if len(crange) > 1:
-                    raise NotImplementedError
-                r = crange[0]
-                d2 = d2[r[0]:r[1]+1]
-            assert d2 == d, "Data does not match"
-        return ctype, rrange, d
-
-    def gd_put(self, path, body=None, srcpath=None, mime=None, noclobber=False):
-        """ HTTP PUT
-            @param noclobber will prevent overwritting a resource (If-None-Match)
-            @param mime will set the content-type
-        """
-        hdrs = { }
-        if not (body or srcpath):
-            raise ValueError("PUT must have something to send.")
-        if (not body) and srcpath:
-            fd = open(srcpath, 'rb')
-            body = fd.read()
-            fd.close()
-        if mime:
-            hdrs['Content-Type'] = mime
-        if noclobber:
-            hdrs['If-None-Match'] = '*'
-        s, m, d = self._http_request(self.davpath + path, method='PUT',
-                            hdrs=hdrs, body=body)
-        assert s == (201), "Bad status: %s" % s
-        etag = m.getheader('ETag')
-        return etag or True
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/webdav.py b/addons/document_webdav/webdav.py
deleted file mode 100644 (file)
index aedad05..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#    Copyright (c) 1999 Christian Scholz (ruebe@aachen.heimat.de)
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import logging
-
-_logger = logging.getLogger(__name__)
-import xml.dom.minidom
-domimpl = xml.dom.minidom.getDOMImplementation()
-from xml.dom.minicompat import StringTypes
-
-import urlparse
-import urllib
-from openerp.osv import osv
-from openerp.tools.translate import _
-
-try:
-    from pywebdav.lib import utils
-    from pywebdav.lib.propfind import PROPFIND
-    from pywebdav.lib.report import REPORT
-except ImportError:
-    from DAV import utils
-    from DAV.propfind import PROPFIND
-    from DAV.report import REPORT
-
-from openerp import tools
-
-class Text2(xml.dom.minidom.Text):
-    def writexml(self, writer, indent="", addindent="", newl=""):
-        data = "%s%s%s" % (indent, self.data, newl)
-        data = data.replace("&", "&amp;").replace("<", "&lt;")
-        data = data.replace(">", "&gt;")
-        writer.write(data)
-
-class Prop2xml(object):
-    """ A helper class to convert property structs to DAV:XML
-    
-        Written to generalize the use of _prop_child(), a class is 
-        needed to hold some persistent data accross the recursions 
-        of _prop_elem_child().
-    """
-    
-    def __init__(self, doc, namespaces, nsnum):
-        """ Init the structure
-        @param doc the xml doc element
-        @param namespaces a dict of namespaces
-        @param nsnum the next namespace number to define
-        """
-        self.doc = doc
-        self.namespaces = namespaces
-        self.nsnum = nsnum
-
-    def createText2Node(self, data):
-        if not isinstance(data, StringTypes):
-            raise TypeError, "Node contents must be a string."
-        t = Text2()
-        t.data = data
-        t.ownerDocument = self.doc
-        return t
-
-    def _prop_child(self, xnode, ns, prop, value):
-        """Append a property xml node to xnode, with <prop>value</prop>
-
-           And a little smarter than that, it will consider namespace and
-           also allow nested properties etc.
-
-           :param ns the namespace of the <prop/> node
-           :param prop the name of the property
-           :param value the value. Can be:
-                    string: text node
-                    tuple ('elem', 'ns') for empty sub-node <ns:elem />
-                    tuple ('elem', 'ns', sub-elems) for sub-node with elements
-                    tuple ('elem', 'ns', sub-elems, {attrs}) for sub-node with 
-                            optional elements and attributes
-                    list, of above tuples
-        """
-        if ns == 'DAV:':
-            ns_prefix = 'D:'
-        else:
-            ns_prefix="ns"+str(self.namespaces.index(ns))+":"
-
-        pe = self.doc.createElement(ns_prefix+str(prop))
-        if hasattr(value, '__class__') and value.__class__.__name__ == 'Element':
-            pe.appendChild(value)
-        else:
-            if ns == 'DAV:' and prop=="resourcetype" and isinstance(value, int):
-                # hack, to go..
-                if value == 1:
-                    ve = self.doc.createElement("D:collection")
-                    pe.appendChild(ve)
-            else:
-                self._prop_elem_child(pe, ns, value, ns_prefix)
-
-            xnode.appendChild(pe)
-
-    def _prop_elem_child(self, pnode, pns, v, pns_prefix):
-
-        if isinstance(v, list):
-            for vit in v:
-                self._prop_elem_child(pnode, pns, vit, pns_prefix)
-        elif isinstance(v,tuple):
-            need_ns = False
-            if v[1] == pns:
-                ns_prefix = pns_prefix
-            elif v[1] == 'DAV:':
-                ns_prefix = 'D:'
-            elif v[1] in self.namespaces:
-                ns_prefix="ns"+str(self.namespaces.index(v[1]))+":"
-            else:
-                ns_prefix="ns"+str(self.nsnum)+":"
-                need_ns = True
-
-            ve = self.doc.createElement(ns_prefix+v[0])
-            if need_ns:
-                ve.setAttribute("xmlns:ns"+str(self.nsnum), v[1])
-            if len(v) > 2 and v[2] is not None:
-                if isinstance(v[2], (list, tuple)):
-                    # support nested elements like:
-                    # ( 'elem', 'ns:', [('sub-elem1', 'ns1'), ...]
-                    self._prop_elem_child(ve, v[1], v[2], ns_prefix)
-                else:
-                    vt = self.createText2Node(tools.ustr(v[2]))
-                    ve.appendChild(vt)
-            if len(v) > 3 and v[3]:
-                assert isinstance(v[3], dict)
-                for ak, av in v[3].items():
-                    ve.setAttribute(ak, av)
-            pnode.appendChild(ve)
-        else:
-            ve = self.createText2Node(tools.ustr(v))
-            pnode.appendChild(ve)
-
-
-super_mk_prop_response = PROPFIND.mk_prop_response
-def mk_prop_response(self, uri, good_props, bad_props, doc):
-    """ make a new <prop> result element
-
-    We differ between the good props and the bad ones for
-    each generating an extra <propstat>-Node (for each error
-    one, that means).
-
-    """
-    re=doc.createElement("D:response")
-    # append namespaces to response
-    nsnum=0
-    namespaces = self.namespaces[:]
-    if 'DAV:' in namespaces:
-        namespaces.remove('DAV:')
-    for nsname in namespaces:
-        re.setAttribute("xmlns:ns"+str(nsnum),nsname)
-        nsnum=nsnum+1
-
-    propgen = Prop2xml(doc, namespaces, nsnum)
-    # write href information
-    uparts=urlparse.urlparse(uri)
-    fileloc=uparts[2]
-    if uparts[3]:
-        fileloc += ';' + uparts[3]
-    if isinstance(fileloc, unicode):
-        fileloc = fileloc.encode('utf-8')
-    href=doc.createElement("D:href")
-    davpath = self._dataclass.parent.get_davpath()
-    if uparts[0] and uparts[1]:
-        hurl = '%s://%s%s%s' % (uparts[0], uparts[1], davpath, urllib.quote(fileloc))
-    else:
-        # When the request has been relative, we don't have enough data to
-        # reply with absolute url here.
-        hurl = '%s%s' % (davpath, urllib.quote(fileloc))
-    huri=doc.createTextNode(hurl)
-    href.appendChild(huri)
-    re.appendChild(href)
-
-    # write good properties
-    ps=doc.createElement("D:propstat")
-    if good_props:
-        re.appendChild(ps)
-    s=doc.createElement("D:status")
-    t=doc.createTextNode("HTTP/1.1 200 OK")
-    s.appendChild(t)
-    ps.appendChild(s)
-
-    gp=doc.createElement("D:prop")
-    for ns in good_props.keys():
-        if ns == 'DAV:':
-            ns_prefix = 'D:'
-        else:
-            ns_prefix="ns"+str(namespaces.index(ns))+":"
-        for p,v in good_props[ns].items():
-            if v is None:
-                continue
-            propgen._prop_child(gp, ns, p, v)
-
-    ps.appendChild(gp)
-    re.appendChild(ps)
-
-    # now write the errors!
-    if len(bad_props.items()):
-
-        # write a propstat for each error code
-        for ecode in bad_props.keys():
-            ps=doc.createElement("D:propstat")
-            re.appendChild(ps)
-            s=doc.createElement("D:status")
-            t=doc.createTextNode(utils.gen_estring(ecode))
-            s.appendChild(t)
-            ps.appendChild(s)
-            bp=doc.createElement("D:prop")
-            ps.appendChild(bp)
-
-            for ns in bad_props[ecode].keys():
-                if ns == 'DAV:':
-                    ns_prefix='D:'
-                else:
-                    ns_prefix="ns"+str(self.namespaces.index(ns))+":"
-
-            for p in bad_props[ecode][ns]:
-                pe=doc.createElement(ns_prefix+str(p))
-                bp.appendChild(pe)
-
-            re.appendChild(ps)
-
-    # return the new response element
-    return re
-
-
-def mk_propname_response(self, uri, propnames, doc):
-    """ make a new <prop> result element for a PROPNAME request
-
-    This will simply format the propnames list.
-    propnames should have the format {NS1 : [prop1, prop2, ...], NS2: ...}
-
-    """
-    re=doc.createElement("D:response")
-
-    # write href information
-    uparts=urlparse.urlparse(uri)
-    fileloc=uparts[2]
-    if uparts[3]:
-        fileloc += ';' + uparts[3]
-    if isinstance(fileloc, unicode):
-        fileloc = fileloc.encode('utf-8')
-    href=doc.createElement("D:href")
-    davpath = self._dataclass.parent.get_davpath()
-    if uparts[0] and uparts[1]:
-        hurl = '%s://%s%s%s' % (uparts[0], uparts[1], davpath, urllib.quote(fileloc))
-    else:
-        # When the request has been relative, we don't have enough data to
-        # reply with absolute url here.
-        hurl = '%s%s' % (davpath, urllib.quote(fileloc))
-    huri=doc.createTextNode(hurl)
-    href.appendChild(huri)
-    re.appendChild(href)
-
-    ps=doc.createElement("D:propstat")
-    nsnum=0
-
-    for ns,plist in propnames.items():
-        # write prop element
-        pr=doc.createElement("D:prop")
-        if ns == 'DAV':
-            nsp = 'D'
-        else:
-            nsp="ns"+str(nsnum)
-            ps.setAttribute("xmlns:"+nsp,ns)
-            nsnum=nsnum+1
-
-        # write propertynames
-        for p in plist:
-            pe=doc.createElement(nsp+":"+p)
-            pr.appendChild(pe)
-
-        ps.appendChild(pr)
-
-    re.appendChild(ps)
-
-    return re
-
-PROPFIND.mk_prop_response = mk_prop_response
-PROPFIND.mk_propname_response = mk_propname_response
-
-def mk_lock_response(self, uri, props):
-    """ Prepare the data response to a DAV LOCK command
-    
-    This function is here, merely to be in the same file as the
-    ones above, that have similar code.
-    """
-    doc = domimpl.createDocument('DAV:', "D:prop", None)
-    ms = doc.documentElement
-    ms.setAttribute("xmlns:D", "DAV:")
-    # ms.tagName = 'D:multistatus'
-    namespaces = []
-    nsnum = 0
-    propgen = Prop2xml(doc, namespaces, nsnum)
-    # write href information
-    uparts=urlparse.urlparse(uri)
-    fileloc=uparts[2]
-    if uparts[3]:
-        fileloc += ';' + uparts[3]
-    if isinstance(fileloc, unicode):
-        fileloc = fileloc.encode('utf-8')
-    davpath = self.parent.get_davpath()
-    if uparts[0] and uparts[1]:
-        hurl = '%s://%s%s%s' % (uparts[0], uparts[1], davpath, urllib.quote(fileloc))
-    else:
-        # When the request has been relative, we don't have enough data to
-        # reply with absolute url here.
-        hurl = '%s%s' % (davpath, urllib.quote(fileloc))
-        
-    props.append( ('lockroot', 'DAV:', ('href', 'DAV:', (hurl))))
-    pld = doc.createElement('D:lockdiscovery')
-    ms.appendChild(pld)
-    propgen._prop_child(pld, 'DAV:', 'activelock', props)
-
-    return doc.toxml(encoding="utf-8")
-
-super_create_prop = REPORT.create_prop
-
-def create_prop(self):
-    try:
-        if (self.filter is not None) and self._depth == "0":
-            hrefs = self.filter.getElementsByTagNameNS('DAV:', 'href')
-            if hrefs:
-                self._depth = "1"
-    except Exception:
-        pass
-    return super_create_prop(self)
-
-REPORT.create_prop = create_prop
-
-#eof
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/webdav_demo.xml b/addons/document_webdav/webdav_demo.xml
deleted file mode 100644 (file)
index 9bd68b8..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<openerp>
-<data>
-<record id="document_webdav_dir_property_nodeclass0" model="document.webdav.dir.property">
-    <field name="namespace">debug:</field>
-    <field name="name">node_class</field>
-    <field name="value">%(node_classname)s</field>
-    <field eval="1" name="do_subst"/>
-</record>
-
-<!--
-<record id="document_webdav_dir_property_debug0" model="document.webdav.dir.property">
-    <field name="namespace">debug:</field>
-    <field name="name">node_context</field>
-    <field name="value">%r</field>
-    <! dash dash This will expose the whole context at the property !>
-    <field eval="1" name="do_subst"/>
-</record>
--->
-
-</data>
-</openerp>
diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py
deleted file mode 100644 (file)
index e495f5c..0000000
+++ /dev/null
@@ -1,676 +0,0 @@
-# -*- encoding: utf-8 -*-
-############################################################################9
-#
-# Copyright P. Christeas <p_christ@hol.gr> 2008-2010
-# Copyright OpenERP SA, 2010 (http://www.openerp.com )
-#
-# Disclaimer: Many of the functions below borrow code from the
-#   python-webdav library (http://code.google.com/p/pywebdav/ ),
-#   which they import and override to suit OpenERP functionality.
-# python-webdav was written by: Simon Pamies <s.pamies@banality.de>
-#                               Christian Scholz <mrtopf@webdav.de>
-#                               Vince Spicer <vince@vince.ca>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 3
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-###############################################################################
-
-
-import logging
-import openerp
-from dav_fs import openerp_dav_handler
-from openerp.tools.config import config
-try:
-    from pywebdav.lib.WebDAVServer import DAVRequestHandler
-    from pywebdav.lib.utils import IfParser, TagList
-    from pywebdav.lib.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
-    from pywebdav.lib.propfind import PROPFIND
-except ImportError:
-    from DAV.WebDAVServer import DAVRequestHandler
-    from DAV.utils import IfParser, TagList
-    from DAV.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
-    from DAV.propfind import PROPFIND
-from openerp.service import http_server
-from openerp.service.websrv_lib import FixSendError, HttpOptions
-from BaseHTTPServer import BaseHTTPRequestHandler
-import urlparse
-import urllib
-import re
-import time
-from string import atoi
-import socket
-# from DAV.constants import DAV_VERSION_1, DAV_VERSION_2
-from xml.dom import minidom
-from redirect import RedirectHTTPHandler
-_logger = logging.getLogger(__name__)
-khtml_re = re.compile(r' KHTML/([0-9\.]+) ')
-
-def OpenDAVConfig(**kw):
-    class OpenDAV:
-        def __init__(self, **kw):
-            self.__dict__.update(**kw)
-
-        def getboolean(self, word):
-            return self.__dict__.get(word, False)
-
-    class Config:
-        DAV = OpenDAV(**kw)
-
-    return Config()
-
-
-class DAVHandler(DAVRequestHandler, HttpOptions, FixSendError):
-    verbose = False
-
-    protocol_version = 'HTTP/1.1'
-    _HTTP_OPTIONS= { 'DAV' : ['1', '2'],
-                    'Allow' : [ 'GET', 'HEAD', 'COPY', 'MOVE', 'POST', 'PUT',
-                            'PROPFIND', 'PROPPATCH', 'OPTIONS', 'MKCOL',
-                            'DELETE', 'TRACE', 'REPORT', ]
-                    }
-
-    def __init__(self, request, client_address, server):
-        self.request = request
-        self.client_address = client_address
-        self.server = server
-        self.setup()
-
-    def get_userinfo(self, user, pw):
-        return False
-
-    def _log(self, message):
-        self._logger.debug(message)
-
-    def handle(self):
-        """Handle multiple requests if necessary."""
-        self.close_connection = 1
-        try:
-            self.handle_one_request()
-            while not self.close_connection:
-                self.handle_one_request()
-        except Exception as e:
-            try:
-                self.log_error("Request timed out: %r \n Trying old version of HTTPServer", e)
-                self._init_buffer()
-            except Exception as e:
-                #a read or a write timed out.  Discard this connection
-                self.log_error("Not working neither, closing connection\n %r", e)
-                self.close_connection = 1
-
-    def finish(self):
-        pass
-
-    def get_db_from_path(self, uri):
-        # interface class will handle all cases.
-        res =  self.IFACE_CLASS.get_db(uri, allow_last=True)
-        return res
-
-    def setup(self):
-        self.davpath = '/'+config.get_misc('webdav','vdir','webdav')
-        addr, port = self.server.server_name, self.server.server_port
-        server_proto = getattr(self.server,'proto', 'http').lower()
-        # Too early here to use self.headers
-        self.baseuri = "%s://%s:%d/"% (server_proto, addr, port)
-        self.IFACE_CLASS  = openerp_dav_handler(self, self.verbose)
-
-    def copymove(self, CLASS):
-        """ Our uri scheme removes the /webdav/ component from there, so we
-        need to mangle the header, too.
-        """
-        up = urlparse.urlparse(urllib.unquote(self.headers['Destination']))
-        if up.path.startswith(self.davpath):
-            self.headers['Destination'] = up.path[len(self.davpath):]
-        else:
-            raise DAV_Forbidden("Not allowed to copy/move outside webdav path.")
-        # TODO: locks
-        DAVRequestHandler.copymove(self, CLASS)
-
-    def get_davpath(self):
-        return self.davpath
-
-    def log_message(self, format, *args):
-        _logger.debug(format % args)
-
-    def log_error(self, format, *args):
-        _logger.warning(format % args)
-
-    def _prep_OPTIONS(self, opts):
-        ret = opts
-        dc=self.IFACE_CLASS
-        uri=urlparse.urljoin(self.get_baseuri(dc), self.path)
-        uri=urllib.unquote(uri)
-        try:
-            ret = dc.prep_http_options(uri, opts)
-        except DAV_Error, (ec,dd):
-            pass
-        except Exception,e:
-            self.log_error("Error at options: %s", str(e))
-            raise
-        return ret
-
-    def send_response(self, code, message=None):
-        # the BufferingHttpServer will send Connection: close , while
-        # the BaseHTTPRequestHandler will only accept int code.
-        # workaround both of them.
-        if self.command == 'PROPFIND' and int(code) == 404:
-            kh = khtml_re.search(self.headers.get('User-Agent',''))
-            if kh and (kh.group(1) < '4.5'):
-                # There is an ugly bug in all khtml < 4.5.x, where the 404
-                # response is treated as an immediate error, which would even
-                # break the flow of a subsequent PUT request. At the same time,
-                # the 200 response  (rather than 207 with content) is treated
-                # as "path not exist", so we send this instead
-                # https://bugs.kde.org/show_bug.cgi?id=166081
-                code = 200
-        BaseHTTPRequestHandler.send_response(self, int(code), message)
-
-    def send_header(self, key, value):
-        if key == 'Connection' and value == 'close':
-            self.close_connection = 1
-        DAVRequestHandler.send_header(self, key, value)
-
-    def send_body(self, DATA, code=None, msg=None, desc=None, ctype='application/octet-stream', headers=None):
-        if headers and 'Connection' in headers:
-            pass
-        elif self.request_version in ('HTTP/1.0', 'HTTP/0.9'):
-            pass
-        elif self.close_connection == 1: # close header already sent
-            pass
-        elif headers and self.headers.get('Connection',False) == 'Keep-Alive':
-            headers['Connection'] = 'keep-alive'
-
-        if headers is None:
-            headers = {}
-
-        DAVRequestHandler.send_body(self, DATA, code=code, msg=msg, desc=desc,
-                    ctype=ctype, headers=headers)
-
-    def do_PUT(self):
-        dc=self.IFACE_CLASS
-        uri=urlparse.urljoin(self.get_baseuri(dc), self.path)
-        uri=urllib.unquote(uri)
-        # Handle If-Match
-        if self.headers.has_key('If-Match'):
-            test = False
-            etag = None
-
-            for match in self.headers['If-Match'].split(','):
-                if match == '*':
-                    if dc.exists(uri):
-                        test = True
-                        break
-                else:
-                    if dc.match_prop(uri, match, "DAV:", "getetag"):
-                        test = True
-                        break
-            if not test:
-                self._get_body()
-                self.send_status(412)
-                return
-
-        # Handle If-None-Match
-        if self.headers.has_key('If-None-Match'):
-            test = True
-            etag = None
-            for match in self.headers['If-None-Match'].split(','):
-                if match == '*':
-                    if dc.exists(uri):
-                        test = False
-                        break
-                else:
-                    if dc.match_prop(uri, match, "DAV:", "getetag"):
-                        test = False
-                        break
-            if not test:
-                self._get_body()
-                self.send_status(412)
-                return
-
-        # Handle expect
-        expect = self.headers.get('Expect', '')
-        if (expect.lower() == '100-continue' and
-                self.protocol_version >= 'HTTP/1.1' and
-                self.request_version >= 'HTTP/1.1'):
-            self.send_status(100)
-            self._flush()
-
-        # read the body
-        body=self._get_body()
-
-        # locked resources are not allowed to be overwritten
-        if self._l_isLocked(uri):
-            return self.send_body(None, '423', 'Locked', 'Locked')
-
-        ct=None
-        if self.headers.has_key("Content-Type"):
-            ct=self.headers['Content-Type']
-        try:
-            location = dc.put(uri, body, ct)
-        except DAV_Error, (ec,dd):
-            self.log_error("Cannot PUT to %s: %s", uri, dd)
-            return self.send_status(ec)
-
-        headers = {}
-        etag = None
-        if location and isinstance(location, tuple):
-            etag = location[1]
-            location = location[0]
-            # note that we have allowed for > 2 elems
-        if location:
-            headers['Location'] = location
-        else:
-            try:
-                if not etag:
-                    etag = dc.get_prop(location or uri, "DAV:", "getetag")
-                if etag:
-                    headers['ETag'] = str(etag)
-            except Exception:
-                pass
-
-        self.send_body(None, '201', 'Created', '', headers=headers)
-
-    def _get_body(self):
-        body = None
-        if self.headers.has_key("Content-Length"):
-            l=self.headers['Content-Length']
-            body=self.rfile.read(atoi(l))
-        return body
-
-    def do_DELETE(self):
-        try:
-            DAVRequestHandler.do_DELETE(self)
-        except DAV_Error, (ec, dd):
-            return self.send_status(ec)
-
-    def do_UNLOCK(self):
-        """ Unlocks given resource """
-
-        dc = self.IFACE_CLASS
-        self.log_message('UNLOCKing resource %s' % self.headers)
-
-        uri = urlparse.urljoin(self.get_baseuri(dc), self.path)
-        uri = urllib.unquote(uri)
-
-        token = self.headers.get('Lock-Token', False)
-        if token:
-            token = token.strip()
-            if token[0] == '<' and token[-1] == '>':
-                token = token[1:-1]
-            else:
-                token = False
-
-        if not token:
-            return self.send_status(400, 'Bad lock token')
-
-        try:
-            res = dc.unlock(uri, token)
-        except DAV_Error, (ec, dd):
-            return self.send_status(ec, dd)
-
-        if res == True:
-            self.send_body(None, '204', 'OK', 'Resource unlocked.')
-        else:
-            # We just differentiate the description, for debugging purposes
-            self.send_body(None, '204', 'OK', 'Resource not locked.')
-
-    def do_LOCK(self):
-        """ Attempt to place a lock on the given resource.
-        """
-
-        dc = self.IFACE_CLASS
-        lock_data = {}
-
-        self.log_message('LOCKing resource %s' % self.headers)
-
-        body = None
-        if self.headers.has_key('Content-Length'):
-            l = self.headers['Content-Length']
-            body = self.rfile.read(atoi(l))
-
-        depth = self.headers.get('Depth', 'infinity')
-
-        uri = urlparse.urljoin(self.get_baseuri(dc), self.path)
-        uri = urllib.unquote(uri)
-        self.log_message('do_LOCK: uri = %s' % uri)
-
-        ifheader = self.headers.get('If')
-
-        if ifheader:
-            ldif = IfParser(ifheader)
-            if isinstance(ldif, list):
-                if len(ldif) !=1 or (not isinstance(ldif[0], TagList)) \
-                        or len(ldif[0].list) != 1:
-                    raise DAV_Error(400, "Cannot accept multiple tokens.")
-                ldif = ldif[0].list[0]
-                if ldif[0] == '<' and ldif[-1] == '>':
-                    ldif = ldif[1:-1]
-
-            lock_data['token'] = ldif
-
-        if not body:
-            lock_data['refresh'] = True
-        else:
-            lock_data['refresh'] = False
-            lock_data.update(self._lock_unlock_parse(body))
-
-        if lock_data['refresh'] and not lock_data.get('token', False):
-            raise DAV_Error(400, 'Lock refresh must specify token.')
-
-        lock_data['depth'] = depth
-
-        try:
-            created, data, lock_token = dc.lock(uri, lock_data)
-        except DAV_Error, (ec, dd):
-            return self.send_status(ec, dd)
-
-        headers = {}
-        if not lock_data['refresh']:
-            headers['Lock-Token'] = '<%s>' % lock_token
-
-        if created:
-            self.send_body(data, '201', 'Created',  ctype='text/xml', headers=headers)
-        else:
-            self.send_body(data, '200', 'OK', ctype='text/xml', headers=headers)
-
-    def _lock_unlock_parse(self, body):
-        # Override the python-webdav function, with some improvements
-        # Unlike the py-webdav one, we also parse the owner minidom elements into
-        # pure pythonic struct.
-        doc = minidom.parseString(body)
-
-        data = {}
-        owners = []
-        for info in doc.getElementsByTagNameNS('DAV:', 'lockinfo'):
-            for scope in info.getElementsByTagNameNS('DAV:', 'lockscope'):
-                for scc in scope.childNodes:
-                    if scc.nodeType == info.ELEMENT_NODE \
-                            and scc.namespaceURI == 'DAV:':
-                        data['lockscope'] = scc.localName
-                        break
-            for ltype in info.getElementsByTagNameNS('DAV:', 'locktype'):
-                for ltc in ltype.childNodes:
-                    if ltc.nodeType == info.ELEMENT_NODE \
-                            and ltc.namespaceURI == 'DAV:':
-                        data['locktype'] = ltc.localName
-                        break
-            for own in info.getElementsByTagNameNS('DAV:', 'owner'):
-                for ono in own.childNodes:
-                    if ono.nodeType == info.TEXT_NODE:
-                        if ono.data:
-                            owners.append(ono.data)
-                    elif ono.nodeType == info.ELEMENT_NODE \
-                            and ono.namespaceURI == 'DAV:' \
-                            and ono.localName == 'href':
-                        href = ''
-                        for hno in ono.childNodes:
-                            if hno.nodeType == info.TEXT_NODE:
-                                href += hno.data
-                        owners.append(('href','DAV:', href))
-
-            if len(owners) == 1:
-                data['lockowner'] = owners[0]
-            elif not owners:
-                pass
-            else:
-                data['lockowner'] = owners
-        return data
-
-from openerp.service.http_server import reg_http_service,OpenERPAuthProvider
-
-class DAVAuthProvider(OpenERPAuthProvider):
-    def authenticate(self, db, user, passwd, client_address):
-        """ authenticate, but also allow the False db, meaning to skip
-            authentication when no db is specified.
-        """
-        if db is False:
-            return True
-        return OpenERPAuthProvider.authenticate(self, db, user, passwd, client_address)
-
-
-class dummy_dav_interface(object):
-    """ Dummy dav interface """
-    verbose = True
-
-    PROPS={"DAV:" : ('creationdate',
-                     'displayname',
-                     'getlastmodified',
-                     'resourcetype',
-                     ),
-           }
-
-    M_NS={"DAV:" : "_get_dav", }
-
-    def __init__(self, parent):
-        self.parent = parent
-
-    def get_propnames(self, uri):
-        return self.PROPS
-
-    def get_prop(self, uri, ns, propname):
-        if self.M_NS.has_key(ns):
-            prefix=self.M_NS[ns]
-        else:
-            raise DAV_NotFound
-        mname=prefix+"_"+propname.replace('-', '_')
-        try:
-            m=getattr(self,mname)
-            r=m(uri)
-            return r
-        except AttributeError:
-            raise DAV_NotFound
-
-    def get_data(self, uri, range=None):
-        raise DAV_NotFound
-
-    def _get_dav_creationdate(self, uri):
-        return time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
-
-    def _get_dav_getlastmodified(self, uri):
-        return time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime())
-
-    def _get_dav_displayname(self, uri):
-        return uri
-
-    def _get_dav_resourcetype(self, uri):
-        return ('collection', 'DAV:')
-
-    def exists(self, uri):
-        """ return 1 or None depending on if a resource exists """
-        uri2 = uri.split('/')
-        if len(uri2) < 3:
-            return True
-        _logger.debug("Requested uri: %s", uri)
-        return None # no
-
-    def is_collection(self, uri):
-        """ return 1 or None depending on if a resource is a collection """
-        return None # no
-
-class DAVStaticHandler(http_server.StaticHTTPHandler):
-    """ A variant of the Static handler, which will serve dummy DAV requests
-    """
-
-    verbose = False
-    protocol_version = 'HTTP/1.1'
-    _HTTP_OPTIONS= { 'DAV' : ['1', '2'],
-                    'Allow' : [ 'GET', 'HEAD',
-                            'PROPFIND', 'OPTIONS', 'REPORT', ]
-                    }
-
-    def send_body(self, content, code, message='OK', content_type='text/xml'):
-        self.send_response(int(code), message)
-        self.send_header("Content-Type", content_type)
-        # self.send_header('Connection', 'close')
-        self.send_header('Content-Length', len(content) or 0)
-        self.end_headers()
-        if hasattr(self, '_flush'):
-            self._flush()
-
-        if self.command != 'HEAD':
-            self.wfile.write(content)
-
-    def do_PROPFIND(self):
-        """Answer to PROPFIND with generic data.
-
-        A rough copy of python-webdav's do_PROPFIND, but hacked to work
-        statically.
-        """
-
-        dc = dummy_dav_interface(self)
-
-        # read the body containing the xml request
-        # iff there is no body then this is an ALLPROP request
-        body = None
-        if self.headers.has_key('Content-Length'):
-            l = self.headers['Content-Length']
-            body = self.rfile.read(atoi(l))
-
-        path = self.path.rstrip('/')
-        uri = urllib.unquote(path)
-
-        pf = PROPFIND(uri, dc, self.headers.get('Depth', 'infinity'), body)
-
-        try:
-            DATA = '%s\n' % pf.createResponse()
-        except DAV_Error, (ec,dd):
-            return self.send_error(ec,dd)
-        except Exception:
-            self.log_exception("Cannot PROPFIND")
-            raise
-
-        # work around MSIE DAV bug for creation and modified date
-        # taken from Resource.py @ Zope webdav
-        if (self.headers.get('User-Agent') ==
-            'Microsoft Data Access Internet Publishing Provider DAV 1.1'):
-            DATA = DATA.replace('<ns0:getlastmodified xmlns:ns0="DAV:">',
-                                    '<ns0:getlastmodified xmlns:n="DAV:" xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/" b:dt="dateTime.rfc1123">')
-            DATA = DATA.replace('<ns0:creationdate xmlns:ns0="DAV:">',
-                                    '<ns0:creationdate xmlns:n="DAV:" xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/" b:dt="dateTime.tz">')
-
-        self.send_body(DATA, '207','Multi-Status','Multiple responses')
-
-    def not_get_baseuri(self):
-        baseuri = '/'
-        if self.headers.has_key('Host'):
-            uparts = list(urlparse.urlparse('/'))
-            uparts[1] = self.headers['Host']
-            baseuri = urlparse.urlunparse(uparts)
-        return baseuri
-
-    def get_davpath(self):
-        return ''
-
-
-try:
-
-    if (config.get_misc('webdav','enable',True)):
-        directory = '/'+config.get_misc('webdav','vdir','webdav')
-        handler = DAVHandler
-        verbose = config.get_misc('webdav','verbose',True)
-        handler.debug = config.get_misc('webdav','debug',True)
-        _dc = { 'verbose' : verbose,
-                'directory' : directory,
-                'lockemulation' : True,
-                }
-
-        conf = OpenDAVConfig(**_dc)
-        handler._config = conf
-        reg_http_service(directory, DAVHandler, DAVAuthProvider)
-        _logger.info("WebDAV service registered at path: %s/ "% directory)
-
-        if not (config.get_misc('webdav', 'no_root_hack', False)):
-            # Now, replace the static http handler with the dav-enabled one.
-            # If a static-http service has been specified for our server, then
-            # read its configuration and use that dir_path.
-            # NOTE: this will _break_ any other service that would be registered
-            # at the root path in future.
-            base_path = False
-            if config.get_misc('static-http','enable', False):
-                base_path = config.get_misc('static-http', 'base_path', '/')
-            if base_path and base_path == '/':
-                dir_path = config.get_misc('static-http', 'dir_path', False)
-            else:
-                dir_path = openerp.modules.module.get_module_resource('document_webdav','public_html')
-                # an _ugly_ hack: we put that dir back in tools.config.misc, so that
-                # the StaticHttpHandler can find its dir_path.
-                config.misc.setdefault('static-http',{})['dir_path'] = dir_path
-
-            reg_http_service('/', DAVStaticHandler)
-
-except Exception, e:
-    _logger.error('Cannot launch webdav: %s' % e)
-
-
-def init_well_known():
-    reps = RedirectHTTPHandler.redirect_paths
-
-    num_svcs = config.get_misc('http-well-known', 'num_services', '0')
-
-    for nsv in range(1, int(num_svcs)+1):
-        uri = config.get_misc('http-well-known', 'service_%d' % nsv, False)
-        path = config.get_misc('http-well-known', 'path_%d' % nsv, False)
-        if not (uri and path):
-            continue
-        reps['/'+uri] = path
-
-    if int(num_svcs):
-        reg_http_service('/.well-known', RedirectHTTPHandler)
-
-init_well_known()
-
-class PrincipalsRedirect(RedirectHTTPHandler):
-
-
-    redirect_paths = {}
-
-    def _find_redirect(self):
-        for b, r in self.redirect_paths.items():
-            if self.path.startswith(b):
-                return r + self.path[len(b):]
-        return False
-
-def init_principals_redirect():
-    """ Some devices like the iPhone will look under /principals/users/xxx for
-    the user's properties. In OpenERP we _cannot_ have a stray /principals/...
-    working path, since we have a database path and the /webdav/ component. So,
-    the best solution is to redirect the url with 301. Luckily, it does work in
-    the device. The trick is that we need to hard-code the database to use, either
-    the one centrally defined in the config, or a "forced" one in the webdav
-    section.
-    """
-    dbname = config.get_misc('webdav', 'principal_dbname', False)
-    if (not dbname) and not config.get_misc('webdav', 'no_principals_redirect', False):
-        dbname = config.get('db_name', False)
-    if dbname:
-        PrincipalsRedirect.redirect_paths[''] = '/webdav/%s/principals' % dbname
-        reg_http_service('/principals', PrincipalsRedirect)
-        _logger.info(
-                "Registered HTTP redirect handler for /principals to the %s db.",
-                dbname)
-
-init_principals_redirect()
-
-#eof
-
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document_webdav/webdav_setup.xml b/addons/document_webdav/webdav_setup.xml
deleted file mode 100644 (file)
index dbf6bc8..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-<openerp>
-<data noupdate="1">
-<!--This file contains a typical setup of a WebDAV folders' structure, 
-    which conforms to the RFCs and extensions of the protocol.
-    In OpenERP, this is not enforced by any code inside the server, it
-    is rather a matter of setting these records in our document configuration.
--->
-
-        <!-- /principals tree -->
-        <record id="document_directory_principals0" model="document.directory">
-                <field name="domain">[]</field>
-                <field eval="1" name="resource_find_all"/>
-                <field eval="0" name="ressource_tree"/>
-                <field name="user_id" eval="False"/>
-                <field name="company_id" ref="base.main_company"/>
-                <field name="type">directory</field>
-                <field eval="[(6,0,[])]" name="group_ids"/>
-                <field name="name">principals</field>
-        </record>
-
-        <record id="document_directory_groups0" model="document.directory">
-            <field name="domain">[]</field>
-            <field eval="1" name="resource_find_all"/>
-            <field eval="0" name="ressource_tree"/>
-            <field name="user_id" eval="False"/>
-            <field name="company_id" ref="base.main_company"/>
-            <field name="parent_id" ref="document_directory_principals0"/>
-            <field name="type">directory</field>
-            <field eval="[(6,0,[])]" name="group_ids"/>
-            <field name="name">groups</field>
-        </record>
-
-        <record id="document_directory_resources0" model="document.directory">
-            <field name="domain">[]</field>
-            <field eval="1" name="resource_find_all"/>
-            <field eval="0" name="ressource_tree"/>
-            <field name="company_id" ref="base.main_company"/>
-            <field name="parent_id" ref="document_directory_principals0"/>
-            <field name="type">directory</field>
-            <field eval="[(6,0,[])]" name="group_ids"/>
-            <field name="name">resources</field>
-        </record>
-        <record id="document_directory_uids1" model="document.directory">
-            <field name="domain">[('id','=',uid)]</field>
-            <field eval="1" name="resource_find_all"/>
-            <field eval="0" name="ressource_tree"/>
-            <field name="user_id" eval="False"/>
-            <field name="resource_field" ref="base.field_res_users_login"/>
-            <field name="company_id" ref="base.main_company"/>
-            <field name="parent_id" ref="document_directory_principals0"/>
-            <field name="type">ressource</field>
-            <field name="ressource_type_id" ref="base.model_res_users"/>
-            <field eval="[(6,0,[])]" name="group_ids"/>
-            <field name="name">__uids__</field>
-        </record>
-        <record id="document_directory_users1" model="document.directory">
-            <field name="domain">[('id','=',uid)]</field>
-            <field eval="1" name="resource_find_all"/>
-            <field eval="0" name="ressource_tree"/>
-            <field name="user_id" eval="False"/>
-            <field name="resource_field" ref="base.field_res_users_login"/>
-            <field name="company_id" ref="base.main_company"/>
-            <field name="parent_id" ref="document_directory_principals0"/>
-            <field name="type">ressource</field>
-            <field name="ressource_type_id" ref="base.model_res_users"/>
-            <field eval="[(6,0,[])]" name="group_ids"/>
-            <field name="name">users</field>
-        </record>
-        <record id="document_directory_locations0" model="document.directory">
-            <field name="domain">[]</field>
-            <field eval="1" name="resource_find_all"/>
-            <field eval="0" name="ressource_tree"/>
-            <field name="company_id" ref="base.main_company"/>
-            <field name="parent_id" ref="document_directory_principals0"/>
-            <field name="type">directory</field>
-            <field eval="[(6,0,[])]" name="group_ids"/>
-            <field name="name">locations</field>
-        </record>
-        <record id="document_webdav_dir_property_currentuserprincipal0" model="document.webdav.dir.property">
-            <field name="namespace">DAV:</field>
-            <field name="name">current-user-principal</field>
-            <field name="value">('href','DAV:','/%s/%s/principals/users/%s' % ('webdav',dbname, username ) )</field>
-            <field eval="1" name="do_subst"/>
-        </record>
-        <record id="document_webdav_dir_property_principalurl0" model="document.webdav.dir.property">
-            <field name="namespace">DAV:</field>
-            <field name="name">principal-URL</field>
-            <field name="value">('href','DAV:','/%s/%s/principals/users/%s' % ('webdav',dbname, username ) )</field>
-            <field eval="1" name="do_subst"/>
-        </record>
-
-</data>
-</openerp>
\ No newline at end of file
diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml
deleted file mode 100644 (file)
index 5a0cb75..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0"?>
-<openerp>
-<data>
-
-    <record model="ir.ui.view" id="view_dir_props_form">
-        <field name="name">document.webdav.dir.property.form</field>
-        <field name="model">document.webdav.dir.property</field>
-        <field name="arch" type="xml">
-            <form string="Properties">
-                <group col="4">
-                    <field name="namespace"/>
-                    <field name="name"/>
-                    <field name="dir_id" />
-                    <field name="do_subst" />
-                </group>
-                <field name="value" colspan="4" />
-            </form>
-        </field>
-    </record>
-
-    <record model="ir.ui.view" id="view_dir_props_tree">
-        <field name="name">document.webdav.dir.property.tree</field>
-        <field name="model">document.webdav.dir.property</field>
-        <field name="arch" type="xml">
-            <tree string="Properties" toolbar="1">
-                <field name="dir_id" />
-                <field name="namespace"/>
-                <field name="name"/>
-            </tree>
-        </field>
-    </record>
-
-    <record id="view_dir_props_filter" model="ir.ui.view">
-            <field name="name">Search View: Directory DAV properties</field>
-            <field name="model">document.webdav.dir.property</field>
-            <field name="arch" type="xml">
-                <search string="Search Document properties">
-                    <field name="name" filter_domain="['|', ('name','ilike',self), ('namespace','ilike',self)]" string="Document property"/>
-                    <group expand="0" string="Group By..." groups="base.group_no_one">
-                        <filter string="Dir" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'dir_id'}"/>
-                        <filter string="Namespace" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'namespace'}"/>
-                    </group>
-               </search>
-            </field>
-        </record>
-
-    <record model="ir.actions.act_window" id="action_dir_props_form">
-        <field name="name">DAV Properties for Folders</field>
-        <field name="type">ir.actions.act_window</field>
-        <field name="res_model">document.webdav.dir.property</field>
-        <field name="view_type">form</field>
-        <field name="view_mode">tree,form</field>
-        <field name="search_view_id" ref="view_dir_props_filter"/>
-    </record>
-   <menuitem
-        name="DAV Properties"
-        id="menu_properties"
-        groups="base.group_no_one"
-        parent="document.menu_document_management_configuration"/>
-
-      <menuitem
-        name="Folders"
-        action="action_dir_props_form"
-        id="menu_folder_props"
-        groups="base.group_no_one"
-        parent="menu_properties"/>
-
-    <!-- Add the properties to the directory form -->
-    <record model="ir.ui.view" id="view_document_directory_form1">
-        <field name="name">document.directory.webdav.inherit</field>
-        <field name="model">document.directory</field>
-        <field name="inherit_id" ref="document.view_document_directory_form" />
-        <field name="arch" type="xml">
-        <xpath expr="/form/notebook/page[@string='Dynamic context']" position="after" version="7.0">
-        <page string="WebDAV properties">
-            <label string="These properties will be added to WebDAV requests" colspan="4" />
-
-            <field name="dav_prop_ids" nolabel="1" colspan="4">
-                <tree string="Properties">
-                    <field name="namespace"/>
-                    <field name="name"/>
-                </tree>
-                <form string="Properties" version="7.0">
-                    <group col="4">
-                        <field name="namespace"/>
-                        <field name="name"/>
-                        <newline />
-                        <field name="do_subst" />
-                    </group>
-                    <field name="value"/>
-                </form>
-            </field>
-        </page>
-        </xpath>
-    </field>
-    </record>
-
-    <!-- File properties -->
-    <record model="ir.ui.view" id="view_file_props_form">
-        <field name="name">document.webdav.file.property.form</field>
-        <field name="model">document.webdav.file.property</field>
-        <field name="arch" type="xml">
-            <form string="Properties">
-                <group col="4">
-                    <field name="namespace"/>
-                    <field name="name"/>
-                    <newline />
-                    <field name="file_id" />
-                    <field name="do_subst" />
-                </group>
-                <field name="value"/>
-            </form>
-        </field>
-    </record>
-
-    <record model="ir.ui.view" id="view_file_props_tree">
-        <field name="name">document.webdav.file.property.tree</field>
-        <field name="model">document.webdav.file.property</field>
-        <field name="arch" type="xml">
-            <tree string="Properties" toolbar="1">
-        <field name="file_id" />
-        <field name="namespace"/>
-        <field name="name"/>
-            </tree>
-        </field>
-    </record>
-
-    <record id="view_file_props_filter" model="ir.ui.view">
-            <field name="name">Search View: File DAV properties</field>
-            <field name="model">document.webdav.file.property</field>
-            <field name="arch" type="xml">
-                <search string="Search Document properties">
-                    <field name="name" filter_domain="['|', ('name','ilike',self), ('namespace','ilike',self)]" string="Document Property"/>
-                    <group expand="0" string="Group By..." groups="base.group_no_one">
-                        <filter string="Document" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'file_id'}"/>
-                        <filter string="Namespace" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'namespace'}"/>
-                    </group>
-               </search>
-            </field>
-        </record>
-
-    <record model="ir.actions.act_window" id="action_file_props_form">
-        <field name="name">DAV Properties for Documents</field>
-        <field name="type">ir.actions.act_window</field>
-        <field name="res_model">document.webdav.file.property</field>
-        <field name="view_type">form</field>
-        <field name="view_mode">tree,form</field>
-        <field name="search_view_id" ref="view_file_props_filter"/>
-    </record>
-   <menuitem
-        name="Documents"
-        action="action_file_props_form"
-        id="menu_document_props"
-        groups="base.group_no_one"
-        parent="menu_properties"/>
-</data>
-</openerp>
index 5a34528..118532d 100644 (file)
@@ -26,15 +26,8 @@ class knowledge_config_settings(osv.osv_memory):
     _inherit = 'res.config.settings'
     _columns = {
         'module_document': fields.boolean('Manage documents',
-            help='This is a complete document management system, with: user authentication, '
-                 'full document search (but pptx and docx are not supported), and a document dashboard.\n'
+            help='Document indexation, full text search of attachements.\n'
                  '-This installs the module document.'),
-        'module_document_ftp': fields.boolean('Share repositories (FTP)',
-            help='Access your documents in OpenERP through an FTP interface.\n'
-                 '-This installs the module document_ftp.'),
-        'module_document_webdav': fields.boolean('Share repositories (WebDAV)',
-            help='Access your documents in OpenERP through WebDAV.\n'
-                 '-This installs the module document_webdav.'),
     }
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index cbf9295..5a526f0 100644 (file)
                                 <field name="module_document" class="oe_inline"/>
                                 <label for="module_document"/>
                             </div>
-                            <div name="module_document_ftp">
-                                <field name="module_document_ftp" class="oe_inline"/>
-                                <label for="module_document_ftp"/>
-                            </div>
-                            <div>
-                                <field name="module_document_webdav" class="oe_inline"/>
-                                <label for="module_document_webdav"/>
-                            </div>
                         </div>
                     </group>
                 </form>
index 5a9f875..4ae47a9 100644 (file)
@@ -126,7 +126,7 @@ class mail_group(osv.Model):
         vals['menu_id'] = menu_id
 
         # Create group and alias
-        create_context = dict(context, alias_model_name=self._name, alias_parent_model_name=self._name)
+        create_context = dict(context, alias_model_name=self._name, alias_parent_model_name=self._name, mail_create_nolog=True)
         mail_group_id = super(mail_group, self).create(cr, uid, vals, context=create_context)
         group = self.browse(cr, uid, mail_group_id, context=context)
         self.pool.get('mail.alias').write(cr, uid, [group.alias_id.id], {"alias_force_thread_id": mail_group_id, 'alias_parent_thread_id': mail_group_id}, context)
index 12c35f3..a376d39 100644 (file)
@@ -19,6 +19,7 @@
 #
 ##############################################################################
 
+from openerp.tools import html2plaintext
 from openerp.tools.translate import _
 from openerp.osv import osv, fields
 
@@ -26,7 +27,21 @@ from openerp.osv import osv, fields
 class MailMessage(osv.Model):
     _inherit = 'mail.message'
 
+    def _get_description_short(self, cr, uid, ids, name, arg, context=None):
+        res = dict.fromkeys(ids, False)
+        for message in self.browse(cr, uid, ids, context=context):
+            if message.subject:
+                res[message.id] = message.subject
+            else:
+                plaintext_ct = html2plaintext(message.body)
+                res[message.id] = plaintext_ct + '%s' % (' [...]' if len(plaintext_ct) >= 20 else '')
+        return res
+
     _columns = {
+        'description': fields.function(
+            _get_description_short, type='char',
+            help='Message description: either the subject, or the beginning of the body'
+        ),
         'website_published': fields.boolean(
             'Published', help="Visible on the website as a comment"
         ),
index fe13343..628aa87 100644 (file)
@@ -1,34 +1,29 @@
 # -*- coding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2013-Today OpenERP SA (<http://www.openerp.com>).
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
 
+import datetime
+
+from openerp import tools
 from openerp.addons.web import http
+from openerp.addons.website.models.website import slug
 from openerp.addons.web.http import request
 
 
 class MailGroup(http.Controller):
     _thread_per_page = 10
 
-    @http.route([
-        "/groups",
-    ], type='http', auth="public", website=True)
+    def _get_archives(self, group_id):
+        MailMessage = request.registry['mail.message']
+        groups = MailMessage.read_group(
+            request.cr, request.uid, [('model', '=', 'mail.group'), ('res_id', '=', group_id)], ['subject', 'date'],
+            groupby="date", orderby="date asc", context=request.context)
+        for group in groups:
+            begin_date = datetime.datetime.strptime(group['__domain'][0][2], tools.DEFAULT_SERVER_DATETIME_FORMAT).date()
+            end_date = datetime.datetime.strptime(group['__domain'][1][2], tools.DEFAULT_SERVER_DATETIME_FORMAT).date()
+            group['date_begin'] = '%s' % datetime.date.strftime(begin_date, tools.DEFAULT_SERVER_DATE_FORMAT)
+            group['date_end'] = '%s' % datetime.date.strftime(end_date, tools.DEFAULT_SERVER_DATE_FORMAT)
+        return groups
+
+    @http.route("/groups", type='http', auth="public", website=True)
     def view(self, **post):
         cr, uid, context = request.cr, request.uid, request.context
         group_obj = request.registry.get('mail.group')
@@ -37,7 +32,7 @@ class MailGroup(http.Controller):
         return request.website.render('website_mail_group.mail_groups', values)
 
     @http.route(["/groups/subscription/"], type='json', auth="user")
-    def subscription(self, group_id=0, action=False ,**post):
+    def subscription(self, group_id=0, action=False, **post):
         cr, uid, context = request.cr, request.uid, request.context
         group_obj = request.registry.get('mail.group')
         if action:
@@ -47,45 +42,50 @@ class MailGroup(http.Controller):
         return []
 
     @http.route([
-        "/groups/<model('mail.group'):group>/<any(thread,list):mode>",
-        "/groups/<model('mail.group'):group>/<any(thread,list):mode>/page/<int:page>"
+        "/groups/<model('mail.group'):group>",
+        "/groups/<model('mail.group'):group>/page/<int:page>"
     ], type='http', auth="public", website=True)
-    def thread(self, group, mode='thread', page=1, **post):
+    def thread_headers(self, group, page=1, mode='thread', date_begin=None, date_end=None, **post):
         cr, uid, context = request.cr, request.uid, request.context
-
         thread_obj = request.registry.get('mail.message')
-        domain = [('model','=','mail.group'), ('res_id','=',group.id)]
-        if mode=='thread':
-            domain.append(('parent_id','=',False))
+
+        domain = [('model', '=', 'mail.group'), ('res_id', '=', group.id)]
+        if mode == 'thread':
+            domain += [('parent_id', '=', False)]
+        if date_begin and date_end:
+            domain += [('date', '>=', date_begin), ('date', '<=', date_end)]
+
         thread_count = thread_obj.search_count(cr, uid, domain, context=context)
         pager = request.website.pager(
-            url='/groups/%s/%s/' % (group.id, mode),
+            url='/groups/%s' % slug(group),
             total=thread_count,
             page=page,
             step=self._thread_per_page,
+            url_args={'mode': mode, 'date_begin': date_begin or '', 'date_end': date_end or ''},
         )
         thread_ids = thread_obj.search(cr, uid, domain, limit=self._thread_per_page, offset=pager['offset'])
-
         messages = thread_obj.browse(cr, uid, thread_ids, context)
-        for m in messages:
-            print m.subject
         values = {
             'messages': messages,
             'group': group,
             'pager': pager,
-            'mode': mode
+            'mode': mode,
+            'archives': self._get_archives(group.id),
+            'date_begin': date_begin,
+            'date_end': date_end,
         }
         return request.website.render('website_mail_group.group_messages', values)
 
     @http.route([
-        "/groups/<model('mail.group'):group>/message/<model('mail.message'):message>",
+        "/groups/<model('mail.group'):group>/<model('mail.message'):message>",
     ], type='http', auth="public", website=True)
-    def get_thread(self, group, message, mode='thread', page=1, **post):
+    def thread_discussion(self, group, message, mode='thread', date_begin=None, date_end=None, **post):
         cr, uid, context = request.cr, request.uid, request.context
         values = {
             'message': message,
             'group': group,
             'mode': mode,
-            'page': page,
+            'date_begin': date_begin,
+            'date_end': date_end,
         }
         return request.website.render('website_mail_group.group_message', values)
index fb18ee9..87f8755 100644 (file)
                     <div class="col-sm-4" style="height: 140px" t-foreach="groups" t-as="group">
                         <img t-att-src="'/website/image?model=mail.group&amp;field=image_small&amp;id='+str(group['id'])" class="pull-left"/>
                         <div>
-                            <strong><a t-attf-href="/groups/#{ slug(group) }/thread" t-esc="group.name"/></strong>
+                            <strong><a t-attf-href="/groups/#{ slug(group) }" t-esc="group.name"/></strong>
                             <div t-esc="group.description" class="text-muted"/>
-
-                            <div class="input-group js_follow"
-                                      t-att-data-id="group.id"
-                                      data-object="mail.group"
-                                      data-follow="off">
-                                <input
-                                      type="email"
-                                      name="email"
-                                      class="js_follow_email form-control"
-                                      placeholder="your email..."/>
-                                <span class="input-group-btn">
-                                    <a href="#" class="btn btn-default js_unfollow_btn">unsubscribe</a>
-                                    <a href="#" class="btn btn-primary js_follow_btn">subscribe</a>
-                                </span>
-                                <div class="alert alert-success hidden">You have been subscribed!</div>
-                            </div>
+                            <t t-call="website_mail.follow"><t t-set="object" t-value="group"/></t>
                         </div>
                     </div>
                 </div>
                     <div class="col-md-3">
                         <ul class="nav nav-pills nav-stacked" id="group_mode">
                             <li t-attf-class="#{mode=='thread' and 'active' or ''}">
-                                <a t-attf-href="/groups/#{ slug(group) }/thread">By thread</a>
+                                <a t-attf-href="/groups/#{ slug(group) }?mode=thread">By thread</a>
                             </li>
-                            <li t-attf-class="#{mode=='list' and 'active' or ''}">
-                                <a t-attf-href="/groups/#{ slug(group) }/list">By date</a>
+                            <li t-attf-class="#{mode=='date' and not date_begin and 'active' or ''}">
+                                <a t-attf-href="/groups/#{ slug(group) }?mode=date">By date</a>
+                                <ul class="nav nav-pills nav-stacked" style="margin-left: 8px;">
+                                    <t t-foreach="archives" t-as="month_archive">
+                                    <li t-att-class="month_archive['date_begin'] == date_begin and 'active' or None">
+                                        <a t-ignore="True" t-attf-href="/groups/#{ slug(group) }?mode=date&amp;date_begin=#{ month_archive['date_begin'] }&amp;date_end=#{month_archive['date_end']}">
+                                            <t t-esc="month_archive['date']"/>
+                                            <span class="pull-right badge" t-esc="month_archive['date_count']"/>
+                                        </a>
+                                    </li>
+                                    </t>
+                                </ul>
                             </li>
                         </ul>
                     </div>
@@ -86,7 +81,7 @@
                         <ol class="breadcrumb mb8">
                             <li><a href="/groups">Mailing Lists</a></li>
                             <li>
-                                <a t-attf-href="/groups/#{ slug(group) }/#{mode}/page/#{str(page)}">
+                                <a t-attf-href="/groups/#{slug(group)}?mode=#{mode}&amp;date_begin=#{date_begin}&amp;date_end=#{date_end}">
                                     <span t-field="group.name"/>
                                 </a>
                             </li>
                 <h1 t-field="message.subject"/>
                 <img class="img-rounded pull-left" t-att-src="'/website/image?model=mail.message&amp;field=author_avatar&amp;id='+str(message.id)" style="width : 30px"/>
                 <h4 class="mt0 mb32">
-                     <span t-field="message.author_id.name"/>
+                    <t t-if="message.author_id">
+                         <span t-field="message.author_id" style="display: inline-block;" t-field-options='{
+                                "widget": "contact",
+                                "fields": ["name"]
+                            }'/>
+                    </t>
+                    <t t-if="not message.author_id"><t t-esc="message.email_from"/></t>
                     on <span t-field="message.date"/>
                 </h4>
                 <div t-raw="message.body"/>
                         Join this mailing list to follow or participate to this discussion.<br/>
                         <span t-field="group.name"/>: <i t-field="group.description"/>
                     </p>
-
-                    <div style="max-width: 400px">
-                        <div class="input-group js_follow"
-                                  t-att-data-id="group.id"
-                                  data-object="mail.group"
-                                  data-follow="off">
-                            <input
-                                  type="email"
-                                  name="email"
-                                  class="js_follow_email form-control"
-                                  placeholder="your email..."/>
-                            <span class="input-group-btn">
-                                <a href="#" class="btn btn-default js_unfollow_btn">unsubscribe</a>
-                                <a href="#" class="btn btn-primary js_follow_btn">subscribe</a>
-                            </span>
-                            <div class="alert alert-success hidden">You have been subscribed!</div>
-                        </div>
-                    </div>
-
+                    <t t-call="website_mail.follow"><t t-set="object" t-value="group"/></t>
                 </div>
             </div>
         </t>
     <template id="messages_short">
         <ul class="media-list">
             <li t-foreach="messages" t-as="thread" class="media">
-                <a t-attf-href="/groups/#{group.id}/message/#{ slug(thread) }?mode=#{mode}" class="pull-left">
-                    <img class="img-rounded pull-right mt0" style="height: 40px"
-                        t-att-src="'/website/image?model=mail.message&amp;field=author_avatar&amp;id='+str(thread.id)"/>
-                </a>
+                <img class="img-rounded pull-left mt0 media-object" style="height: 40px"
+                    t-att-src="'/website/image?model=mail.message&amp;field=author_avatar&amp;id='+str(thread.id)"/>
                 <div class="media-body">
                     <h4 class="media-heading">
-                        <a t-attf-href="/groups/#{ slug(group) }/message/#{ slug(thread) }" t-esc="thread.subject"/>
-                        <br/>
-                        <small>by <t t-esc="thread.author_id.name and thread.author_id.name or thread.email_from"/> on <t t-esc="thread.date"/></small>
+                        <a t-attf-href="/groups/#{slug(group)}/#{slug(thread)}?mode=#{mode}&amp;date_begin=#{date_begin}&amp;date_end=#{date_end}" t-esc="thread.description"/>
                     </h4>
+                    <small>
+                        by
+                        <t t-if="thread.author_id">
+                            <span t-field="thread.author_id" style="display: inline-block;" t-field-options='{
+                                "widget": "contact",
+                                "fields": ["name"]
+                            }'/>
+                        </t>
+                        <t t-if="not thread.author_id"><t t-esc="thread.email_from"/></t>
+                        <span class="fa fa-comment-o">
+                            <t t-raw="len(thread.child_ids)"/> replies
+                        </span>
+                    </small>
                 </div>
             </li>
         </ul>