From b06fded288a7bfd4390378c394976f71a2d4880d Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Fri, 25 Feb 2011 14:56:54 +0100 Subject: [PATCH 01/17] [IMP] Allow to send an email if there is a bug in the OpenERP Server, avoid to lose the email. The email will send the full trace back with the original email and the parameters of the mailgateway [IMP] Add a new class for the configuration bzr revid: stephane@openerp.com-20110225135654-kjwzgb2ucyoy7syn --- .../openerp_mailgate/openerp_mailgate.py | 160 +++++++++++++++--- 1 file changed, 132 insertions(+), 28 deletions(-) diff --git a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py index 204cb2d5d03..bcff408ef46 100644 --- a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py +++ b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py @@ -19,15 +19,71 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see # -########################################################################################### +############################################################################## +""" + openerp_mailgate.py +""" -import logging +import cgitb +import time import optparse import sys import xmlrpclib +import smtplib +from email.MIMEMultipart import MIMEMultipart +from email.MIMEBase import MIMEBase +from email.MIMEText import MIMEText +from email.Utils import COMMASPACE, formatdate +from email import Encoders -class rpc_proxy(object): - def __init__(self, uid, passwd, host='localhost', port=8069, path='object', dbname='openerp'): +class DefaultConfig(object): + """ + Default configuration + """ + OPENERP_DEFAULT_USER_ID = 1 + OPENERP_DEFAULT_PASSWORD = 'admin' + OPENERP_HOSTNAME = 'localhost' + OPENERP_PORT = 8069 + OPENERP_DEFAULT_DATABASE = 'openerp' + MAIL_ERROR = 'error@example.com' + MAIL_SERVER = 'localhost' + MAIL_ADMINS = ('admin@example.com',) + +config = DefaultConfig() + + +def send_mail(_from_, to_, subject, text, files=None, server=config.MAIL_SERVER): + assert isinstance(to_, (list, tuple)) + + if files is None: + files = [] + + msg = MIMEMultipart() + msg['From'] = _from_ + msg['To'] = COMMASPACE.join(to_) + msg['Date'] = formatdate(localtime=True) + msg['Subject'] = subject + + msg.attach( MIMEText(text) ) + + for file_name, file_content in files: + part = MIMEBase('application', "octet-stream") + part.set_payload( file_content ) + Encoders.encode_base64(part) + part.add_header('Content-Disposition', 'attachment; filename="%s"' + % file_name) + msg.attach(part) + + smtp = smtplib.SMTP(server) + smtp.sendmail(_from_, to_, msg.as_string() ) + smtp.close() + +class RPCProxy(object): + def __init__(self, uid, passwd, + host=config.OPENERP_HOSTNAME, + port=config.OPENERP_PORT, + path='object', + dbname=config.OPENERP_DEFAULT_DATABASE): self.rpc = xmlrpclib.ServerProxy('http://%s:%s/xmlrpc/%s' % (host, port, path), allow_none=True) self.user_id = uid self.passwd = passwd @@ -36,9 +92,9 @@ class rpc_proxy(object): def __call__(self, *request, **kwargs): return self.rpc.execute(self.dbname, self.user_id, self.passwd, *request, **kwargs) -class email_parser(object): +class EmailParser(object): def __init__(self, uid, password, model, email_default, dbname, host, port): - self.rpc = rpc_proxy(uid, password, host=host, port=port, dbname=dbname) + self.rpc = RPCProxy(uid, password, host=host, port=port, dbname=dbname) try: self.model_id = int(model) self.model = str(model) @@ -51,44 +107,92 @@ class email_parser(object): def parse(self, message, custom_values=None): if custom_values is None: custom_values = {} - try: - # pass message as bytes because we don't know its encoding until we parse its headers - # and hence can't convert it to utf-8 for transport - res_id = self.rpc('email.server.tools', 'process_email', self.model, xmlrpclib.Binary(message), custom_values) - except Exception: - logger = logging.getLogger('mail-gateway') - logger.warning('Failed to process incoming email. Source of the failed mail is available at debug level.', exc_info=True) - logger.debug('Source of the mail that failed to parse:', message) + # pass message as bytes because we don't know its encoding until we parse its headers + # and hence can't convert it to utf-8 for transport + self.rpc('email.server.tools', + 'process_email', + self.model, + xmlrpclib.Binary(message), + custom_values) -if __name__ == '__main__': - parser = optparse.OptionParser(usage='usage: %prog [options]', version='%prog v1.0') +def configure_parser(): + parser = optparse.OptionParser(usage='usage: %prog [options]', version='%prog v1.1') group = optparse.OptionGroup(parser, "Note", "This program parse a mail from standard input and communicate " "with the OpenERP server for case management in the CRM module.") parser.add_option_group(group) - parser.add_option("-u", "--user", dest="userid", help="ID of the user in OpenERP", default=1, type='int') - parser.add_option("-p", "--password", dest="password", help="Password of the user in OpenERP", default='admin') - parser.add_option("-o", "--model", dest="model", help="Name or ID of crm model", default="crm.lead") - parser.add_option("-m", "--default", dest="default", help="Default eMail in case of any trouble.", default=None) - parser.add_option("-d", "--dbname", dest="dbname", help="Database name (default: openerp)", default='openerp') - parser.add_option("--host", dest="host", help="Hostname of the OpenERP Server", default="localhost") - parser.add_option("--port", dest="port", help="Port of the OpenERP Server", default="8069") - parser.add_option("--custom-values", dest="custom_values", help="Add Custom Values to the object", default=None) + parser.add_option("-u", "--user", dest="userid", + help="ID of the user in OpenERP", + default=config.OPENERP_DEFAULT_USER_ID, type='int') + parser.add_option("-p", "--password", dest="password", + help="Password of the user in OpenERP", + default=config.OPENERP_DEFAULT_PASSWORD) + parser.add_option("-o", "--model", dest="model", + help="Name or ID of crm model", + default="crm.lead") + parser.add_option("-m", "--default", dest="default", + help="Default eMail in case of any trouble.", + default=None) + parser.add_option("-d", "--dbname", dest="dbname", + help="Database name (default: %default)", + default=config.OPENERP_DEFAULT_DATABASE) + parser.add_option("--host", dest="host", + help="Hostname of the OpenERP Server", + default=config.OPENERP_HOSTNAME) + parser.add_option("--port", dest="port", + help="Port of the OpenERP Server", + default=config.OPENERP_PORT) + parser.add_option("--custom-values", dest="custom_values", + help="Add Custom Values to the object", + default=None) + return parser + +def main(): + """ + Receive the email via the stdin and send it to the OpenERP Server + """ + parser = configure_parser() (options, args) = parser.parse_args() - logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s") - parser = email_parser(options.userid, options.password, options.model, options.default, dbname=options.dbname, host=options.host, port=options.port) + email_parser = EmailParser(options.userid, + options.password, + options.model, + options.default, + dbname=options.dbname, + host=options.host, + port=options.port) + msg_txt = sys.stdin.read() custom_values = {} try: - custom_values = dict(eval(options.custom_values)) + custom_values = dict(eval(options.custom_values or {} )) except: pass - parser.parse(msg_txt, custom_values) + try: + email_parser.parse(msg_txt, custom_values) + except Exception: + msg = '\n'.join([ + 'parameters', + '==========', + '%r' % (options,), + 'traceback', + '=========', + '%s' % (cgitb.text(sys.exc_info())), + ]) + + subject = '[OPENERP]:ERROR: Mailgateway - %s' % time.strftime('%Y-%m-%d %H:%M:%S') + send_mail( + config.MAIL_ERROR, + config.MAIL_ADMINS, + subject, msg, files=[('message.txt', msg_txt)] + ) + +if __name__ == '__main__': + main() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 3a30b348636be2fc67ffc72cb2e6e00513e25b4f Mon Sep 17 00:00:00 2001 From: "ksa (Open ERP)" Date: Tue, 8 Mar 2011 14:09:39 +0530 Subject: [PATCH 02/17] [IMP]:Put names in act_windows because of blank names we are not able to find some act_windows bzr revid: ksa@tinyerp.co.in-20110308083939-ebfhrlt53g7ysuo5 --- addons/auction/auction_view.xml | 5 ++++- addons/auction/board_auction_view.xml | 2 ++ addons/auction/report/report_auction_view.xml | 3 +++ addons/caldav/caldav_view.xml | 1 + addons/crm/board_crm_statistical_view.xml | 3 +++ addons/crm/board_crm_view.xml | 3 +++ addons/crm/crm_meeting_menu.xml | 1 + addons/crm/crm_report_view.xml | 4 ++++ addons/document/document_view.xml | 1 + addons/document_webdav/webdav_view.xml | 2 ++ addons/event/event_view.xml | 1 + addons/membership/report/report_membership_view.xml | 1 + addons/sale_crm/board_sale_crm_view.xml | 1 + addons/share/res_users_view.xml | 2 ++ addons/stock/board_warehouse_view.xml | 2 ++ 15 files changed, 31 insertions(+), 1 deletion(-) diff --git a/addons/auction/auction_view.xml b/addons/auction/auction_view.xml index e55938d2ecd..3805dc602dc 100644 --- a/addons/auction/auction_view.xml +++ b/addons/auction/auction_view.xml @@ -39,6 +39,7 @@ + Auction Artist auction.artists form @@ -76,12 +77,13 @@ + Auction object Categories auction.lot.category form - @@ -759,6 +761,7 @@ + Bid Open auction.bid tree,form diff --git a/addons/auction/board_auction_view.xml b/addons/auction/board_auction_view.xml index 12ef99043b0..298b96199b8 100644 --- a/addons/auction/board_auction_view.xml +++ b/addons/auction/board_auction_view.xml @@ -6,12 +6,14 @@ + Report latest object tree auction.lots form tree,form + Report latest deposit tree auction.deposit form tree,form diff --git a/addons/auction/report/report_auction_view.xml b/addons/auction/report/report_auction_view.xml index b521ce38e78..67a4984fe28 100644 --- a/addons/auction/report/report_auction_view.xml +++ b/addons/auction/report/report_auction_view.xml @@ -168,12 +168,14 @@ Objects per Day + Report Auction object date tree report.auction.object.date form graph,tree [('user_id','=',uid),('month','=',time.strftime('%Y-%m-01'))] + Report Auction object date report.auction.object.date form graph,tree @@ -211,6 +213,7 @@ Auction adjudication + Report Auction Adjudication tree report.auction.adjudication form graph,tree diff --git a/addons/caldav/caldav_view.xml b/addons/caldav/caldav_view.xml index 6ddcde0bd59..50a19012992 100644 --- a/addons/caldav/caldav_view.xml +++ b/addons/caldav/caldav_view.xml @@ -48,6 +48,7 @@ + Document directory form [('calendar_collection','=',False)] diff --git a/addons/crm/board_crm_statistical_view.xml b/addons/crm/board_crm_statistical_view.xml index 333a8684764..2176af102eb 100644 --- a/addons/crm/board_crm_statistical_view.xml +++ b/addons/crm/board_crm_statistical_view.xml @@ -43,6 +43,7 @@ + Opportunities Categories Opportunities by Categories crm.lead.report form @@ -53,6 +54,7 @@ + Opportunities stage crm.lead.report form graph,tree,form @@ -62,6 +64,7 @@ + Opportunities stage user Planned revenue by user and stage crm.lead.report form diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index 41628b61f8f..0357f87494a 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -87,6 +87,7 @@ + My Meetings crm.meeting form tree,form @@ -95,6 +96,7 @@ + My opportunity stage crm.lead.report form graph,tree,form @@ -104,6 +106,7 @@ + sales pipeline crm.lead.report form graph,tree,form diff --git a/addons/crm/crm_meeting_menu.xml b/addons/crm/crm_meeting_menu.xml index 3f07b140e75..6a7bc79e5b9 100644 --- a/addons/crm/crm_meeting_menu.xml +++ b/addons/crm/crm_meeting_menu.xml @@ -13,6 +13,7 @@ /> + Create Partner for Meeting diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml index ee5a6ac35f4..7d133a0532f 100644 --- a/addons/crm/crm_report_view.xml +++ b/addons/crm/crm_report_view.xml @@ -90,6 +90,7 @@ + crm case section report.crm.case.section.categ2 form graph,tree @@ -180,6 +181,7 @@ + crm case section stage report.crm.case.section.stage form graph,tree @@ -271,6 +273,7 @@ + crm case section category stage report.crm.case.section.categ.stage form tree,graph @@ -363,6 +366,7 @@ + case section category report.crm.case.section.categ.categ2 form tree,graph diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml index 6f82dde0a4f..0447fae6bdd 100644 --- a/addons/document/document_view.xml +++ b/addons/document/document_view.xml @@ -51,6 +51,7 @@ + Document Storage ir.actions.act_window document.storage form diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml index 4e76346469a..bfa3685783e 100644 --- a/addons/document_webdav/webdav_view.xml +++ b/addons/document_webdav/webdav_view.xml @@ -50,6 +50,7 @@ + Dir Property ir.actions.act_window document.webdav.dir.property form @@ -142,6 +143,7 @@ + webdev file property ir.actions.act_window document.webdav.file.property form diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index c91d279021b..d6babcc9750 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -34,6 +34,7 @@ + Event Type event.type form diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml index b14d3dcb88c..17e04884393 100644 --- a/addons/membership/report/report_membership_view.xml +++ b/addons/membership/report/report_membership_view.xml @@ -87,6 +87,7 @@ + Report Membership report.membership form diff --git a/addons/sale_crm/board_sale_crm_view.xml b/addons/sale_crm/board_sale_crm_view.xml index 132d7c699c5..5e1d6c3774a 100644 --- a/addons/sale_crm/board_sale_crm_view.xml +++ b/addons/sale_crm/board_sale_crm_view.xml @@ -40,6 +40,7 @@ + Turnover By Month account.invoice.report form graph,tree diff --git a/addons/share/res_users_view.xml b/addons/share/res_users_view.xml index 09733e81a01..990bf29a84a 100644 --- a/addons/share/res_users_view.xml +++ b/addons/share/res_users_view.xml @@ -17,6 +17,7 @@ + Users {'search_default_no_share': 1} @@ -37,6 +38,7 @@ + Groups {'search_default_no_share': 1} diff --git a/addons/stock/board_warehouse_view.xml b/addons/stock/board_warehouse_view.xml index a4b0054a124..0de341b4c1e 100644 --- a/addons/stock/board_warehouse_view.xml +++ b/addons/stock/board_warehouse_view.xml @@ -27,6 +27,7 @@ + stock incoming product delay report.stock.move form graph,tree @@ -35,6 +36,7 @@ {'search_default_month-1':1,'search_default_in':1,'group_by':['day'], 'group_by_no_leaf':1} + stock outcoming product delay report.stock.move form graph,tree From 71f60b3c3db166c98b8da5d6086ce82613e3e207 Mon Sep 17 00:00:00 2001 From: "ksa (Open ERP)" Date: Tue, 15 Mar 2011 10:17:38 +0530 Subject: [PATCH 03/17] [IMP]: Give proper action name bzr revid: ksa@tinyerp.co.in-20110315044738-lw641vlh1tq0lela --- addons/auction/auction_view.xml | 2 +- addons/auction/board_auction_view.xml | 6 +++--- addons/auction/report/report_auction_view.xml | 6 +++--- addons/crm/board_crm_statistical_view.xml | 6 ++---- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/addons/auction/auction_view.xml b/addons/auction/auction_view.xml index 3805dc602dc..82efe655c5b 100644 --- a/addons/auction/auction_view.xml +++ b/addons/auction/auction_view.xml @@ -761,7 +761,7 @@ - Bid Open + Open Bids auction.bid tree,form diff --git a/addons/auction/board_auction_view.xml b/addons/auction/board_auction_view.xml index 298b96199b8..613d058ab98 100644 --- a/addons/auction/board_auction_view.xml +++ b/addons/auction/board_auction_view.xml @@ -6,14 +6,14 @@ - Report latest object tree + Latest object Report auction.lots form tree,form - Report latest deposit tree + Latest Deposit Report auction.deposit form tree,form @@ -112,7 +112,7 @@ action="open_board_auction" sequence="1" id="menu_board_auction_open" icon="terp-graph" parent="menu_board_auction"/> - + diff --git a/addons/auction/report/report_auction_view.xml b/addons/auction/report/report_auction_view.xml index 67a4984fe28..71f069f7dd7 100644 --- a/addons/auction/report/report_auction_view.xml +++ b/addons/auction/report/report_auction_view.xml @@ -168,14 +168,14 @@ Objects per Day - Report Auction object date tree + Auction object Date Report report.auction.object.date form graph,tree [('user_id','=',uid),('month','=',time.strftime('%Y-%m-01'))] - Report Auction object date + Auction object Date Report Tree report.auction.object.date form graph,tree @@ -213,7 +213,7 @@ Auction adjudication - Report Auction Adjudication tree + Auction Adjudication Report report.auction.adjudication form graph,tree diff --git a/addons/crm/board_crm_statistical_view.xml b/addons/crm/board_crm_statistical_view.xml index 2176af102eb..cc24dfe259d 100644 --- a/addons/crm/board_crm_statistical_view.xml +++ b/addons/crm/board_crm_statistical_view.xml @@ -43,8 +43,7 @@ - Opportunities Categories - Opportunities by Categories + Opportunities by Categories crm.lead.report form graph,tree,form @@ -64,8 +63,7 @@ - Opportunities stage user - Planned revenue by user and stage + Planned revenue by user and stage crm.lead.report form graph,tree,form From 30c2f1c33023e0072c9f87c40ceec145dabd3690 Mon Sep 17 00:00:00 2001 From: "ksa (Open ERP)" Date: Tue, 15 Mar 2011 14:08:26 +0530 Subject: [PATCH 04/17] [IMP]: Give proper action name bzr revid: ksa@tinyerp.co.in-20110315083826-q4te23k1c7m521ov --- addons/auction/auction_view.xml | 4 ++-- addons/auction/board_auction_view.xml | 4 ++-- addons/auction/report/report_auction_view.xml | 4 ++-- addons/caldav/caldav_view.xml | 2 +- addons/crm/board_crm_statistical_view.xml | 2 +- addons/crm/board_crm_view.xml | 4 ++-- addons/crm/crm_report_view.xml | 8 ++++---- addons/document/document_view.xml | 2 +- addons/document_webdav/webdav_view.xml | 8 ++++---- addons/event/event_view.xml | 2 +- addons/membership/report/report_membership_view.xml | 2 +- addons/sale_crm/board_sale_crm_view.xml | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/addons/auction/auction_view.xml b/addons/auction/auction_view.xml index 82efe655c5b..500e55f805b 100644 --- a/addons/auction/auction_view.xml +++ b/addons/auction/auction_view.xml @@ -1,7 +1,7 @@ - @@ -39,7 +39,7 @@ - Auction Artist + Auction Artists auction.artists form diff --git a/addons/auction/board_auction_view.xml b/addons/auction/board_auction_view.xml index 613d058ab98..ec45ab19811 100644 --- a/addons/auction/board_auction_view.xml +++ b/addons/auction/board_auction_view.xml @@ -6,14 +6,14 @@ - Latest object Report + Latest objects auction.lots form tree,form - Latest Deposit Report + Latest Deposits auction.deposit form tree,form diff --git a/addons/auction/report/report_auction_view.xml b/addons/auction/report/report_auction_view.xml index 71f069f7dd7..d8c821e041b 100644 --- a/addons/auction/report/report_auction_view.xml +++ b/addons/auction/report/report_auction_view.xml @@ -168,14 +168,14 @@ Objects per Day - Auction object Date Report + My Auction object Date Report report.auction.object.date form graph,tree [('user_id','=',uid),('month','=',time.strftime('%Y-%m-01'))] - Auction object Date Report Tree + Auction object Date Report report.auction.object.date form graph,tree diff --git a/addons/caldav/caldav_view.xml b/addons/caldav/caldav_view.xml index 50a19012992..dd0cc2151ba 100644 --- a/addons/caldav/caldav_view.xml +++ b/addons/caldav/caldav_view.xml @@ -48,7 +48,7 @@ - Document directory form + Document directory [('calendar_collection','=',False)] diff --git a/addons/crm/board_crm_statistical_view.xml b/addons/crm/board_crm_statistical_view.xml index cc24dfe259d..d2d52e2701b 100644 --- a/addons/crm/board_crm_statistical_view.xml +++ b/addons/crm/board_crm_statistical_view.xml @@ -53,7 +53,7 @@ - Opportunities stage + Opportunities by Stage crm.lead.report form graph,tree,form diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index 0357f87494a..048a20a6025 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -96,7 +96,7 @@ - My opportunity stage + My Planned Revenues by Stage crm.lead.report form graph,tree,form @@ -106,7 +106,7 @@ - sales pipeline + My Win/Lost Ratio for the Last Year crm.lead.report form graph,tree,form diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml index 7d133a0532f..16015c950e0 100644 --- a/addons/crm/crm_report_view.xml +++ b/addons/crm/crm_report_view.xml @@ -90,7 +90,7 @@ - crm case section + cases by section and category report.crm.case.section.categ2 form graph,tree @@ -181,7 +181,7 @@ - crm case section stage + cases by section and stage report.crm.case.section.stage form graph,tree @@ -273,7 +273,7 @@ - crm case section category stage + cases by section ,category and stage report.crm.case.section.categ.stage form tree,graph @@ -366,7 +366,7 @@ - case section category + cases by section ,category and category2 report.crm.case.section.categ.categ2 form tree,graph diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml index 0447fae6bdd..8a76b8cfabb 100644 --- a/addons/document/document_view.xml +++ b/addons/document/document_view.xml @@ -51,7 +51,7 @@ - Document Storage + Storage Media ir.actions.act_window document.storage form diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml index bfa3685783e..db74cbfa264 100644 --- a/addons/document_webdav/webdav_view.xml +++ b/addons/document_webdav/webdav_view.xml @@ -50,7 +50,7 @@ - Dir Property + DAV properties for folders ir.actions.act_window document.webdav.dir.property form @@ -74,7 +74,7 @@ - + document.webdav.file.property.form @@ -143,7 +143,7 @@ - webdev file property + DAV properties for documents ir.actions.act_window document.webdav.file.property form diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index d6babcc9750..8968169cf7d 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -34,7 +34,7 @@ - Event Type + Types of Events event.type form diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml index 17e04884393..9cff243e930 100644 --- a/addons/membership/report/report_membership_view.xml +++ b/addons/membership/report/report_membership_view.xml @@ -87,7 +87,7 @@ - Report Membership + Members Analysis report.membership form diff --git a/addons/sale_crm/board_sale_crm_view.xml b/addons/sale_crm/board_sale_crm_view.xml index 5e1d6c3774a..27adce0ca9d 100644 --- a/addons/sale_crm/board_sale_crm_view.xml +++ b/addons/sale_crm/board_sale_crm_view.xml @@ -40,7 +40,7 @@ - Turnover By Month + Monthly Turnover account.invoice.report form graph,tree From 972f5e2186cecf0d7894fc78a832001056695527 Mon Sep 17 00:00:00 2001 From: "ksa (Open ERP)" Date: Fri, 18 Mar 2011 15:18:38 +0530 Subject: [PATCH 05/17] [IMP]: Improve act window name and menu name bzr revid: ksa@tinyerp.co.in-20110318094838-k2xkyhc98zyhmeff --- addons/auction/report/report_auction_view.xml | 4 +-- addons/caldav/caldav_view.xml | 2 +- addons/crm/board_crm_statistical_view.xml | 6 ++--- addons/crm/board_crm_view.xml | 4 +-- addons/crm/crm_meeting_menu.xml | 2 +- addons/crm/crm_report_view.xml | 8 +++--- addons/document_webdav/webdav_view.xml | 25 +++++++++++-------- addons/stock/board_warehouse_view.xml | 4 +-- 8 files changed, 30 insertions(+), 25 deletions(-) diff --git a/addons/auction/report/report_auction_view.xml b/addons/auction/report/report_auction_view.xml index d8c821e041b..b021ebfb650 100644 --- a/addons/auction/report/report_auction_view.xml +++ b/addons/auction/report/report_auction_view.xml @@ -168,14 +168,14 @@ Objects per Day - My Auction object Date Report + My Auction Object Date report.auction.object.date form graph,tree [('user_id','=',uid),('month','=',time.strftime('%Y-%m-01'))] - Auction object Date Report + Auction Object Date report.auction.object.date form graph,tree diff --git a/addons/caldav/caldav_view.xml b/addons/caldav/caldav_view.xml index dd0cc2151ba..4e0c6218bf6 100644 --- a/addons/caldav/caldav_view.xml +++ b/addons/caldav/caldav_view.xml @@ -48,7 +48,7 @@ - Document directory + Document Directory [('calendar_collection','=',False)] diff --git a/addons/crm/board_crm_statistical_view.xml b/addons/crm/board_crm_statistical_view.xml index d2d52e2701b..da9c78ebf01 100644 --- a/addons/crm/board_crm_statistical_view.xml +++ b/addons/crm/board_crm_statistical_view.xml @@ -43,7 +43,7 @@ - Opportunities by Categories + Opportunities By Categories crm.lead.report form graph,tree,form @@ -53,7 +53,7 @@ - Opportunities by Stage + Opportunities By Stage crm.lead.report form graph,tree,form @@ -63,7 +63,7 @@ - Planned revenue by user and stage + Planned Revenue By User and Stage crm.lead.report form graph,tree,form diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index 048a20a6025..f10f7283586 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -96,7 +96,7 @@ - My Planned Revenues by Stage + My Planned Revenues By Stage crm.lead.report form graph,tree,form @@ -106,7 +106,7 @@ - My Win/Lost Ratio for the Last Year + My Win/Lost Ratio for The Last Year crm.lead.report form graph,tree,form diff --git a/addons/crm/crm_meeting_menu.xml b/addons/crm/crm_meeting_menu.xml index 6a7bc79e5b9..61ef9942464 100644 --- a/addons/crm/crm_meeting_menu.xml +++ b/addons/crm/crm_meeting_menu.xml @@ -13,7 +13,7 @@ /> - Create Partner for Meeting + Create Partner For Meeting diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml index 16015c950e0..6a8a0438a25 100644 --- a/addons/crm/crm_report_view.xml +++ b/addons/crm/crm_report_view.xml @@ -90,7 +90,7 @@ - cases by section and category + Cases By Section and Category report.crm.case.section.categ2 form graph,tree @@ -181,7 +181,7 @@ - cases by section and stage + Cases By Section and Stage report.crm.case.section.stage form graph,tree @@ -273,7 +273,7 @@ - cases by section ,category and stage + Cases By Section ,Category and Stage report.crm.case.section.categ.stage form tree,graph @@ -366,7 +366,7 @@ - cases by section ,category and category2 + Cases By Section ,Category and Category2 report.crm.case.section.categ.categ2 form tree,graph diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml index db74cbfa264..b50c989e797 100644 --- a/addons/document_webdav/webdav_view.xml +++ b/addons/document_webdav/webdav_view.xml @@ -50,7 +50,7 @@ - DAV properties for folders + Folder Properties ir.actions.act_window document.webdav.dir.property form @@ -58,12 +58,18 @@ + + document.directory.webdav.inherit @@ -143,7 +149,7 @@ - DAV properties for documents + Document Properties ir.actions.act_window document.webdav.file.property form @@ -151,11 +157,10 @@ - + id="menu_document_props" + groups="base.group_extended" + parent="menu_properties"/> diff --git a/addons/stock/board_warehouse_view.xml b/addons/stock/board_warehouse_view.xml index 0de341b4c1e..df2ea7ce438 100644 --- a/addons/stock/board_warehouse_view.xml +++ b/addons/stock/board_warehouse_view.xml @@ -27,7 +27,7 @@ - stock incoming product delay + Incoming Products Delay report.stock.move form graph,tree @@ -36,7 +36,7 @@ {'search_default_month-1':1,'search_default_in':1,'group_by':['day'], 'group_by_no_leaf':1} - stock outcoming product delay + Outgoing Products Delay report.stock.move form graph,tree From e0c2ec4559bd484508fb183d930f57dfd8bb85a9 Mon Sep 17 00:00:00 2001 From: "ksa (Open ERP)" Date: Fri, 18 Mar 2011 15:26:30 +0530 Subject: [PATCH 06/17] [IMP]: Improve act window name bzr revid: ksa@tinyerp.co.in-20110318095630-tv3sfn25y83a4kmw --- addons/crm/board_crm_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index f10f7283586..ec3e2a9c1e5 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -96,7 +96,7 @@ - My Planned Revenues By Stage + Planned Revenue By Stage crm.lead.report form graph,tree,form From 91cd6bfda1033caae7f3ee79afd1244a4e4cc5e0 Mon Sep 17 00:00:00 2001 From: "Rucha (Open ERP)" Date: Fri, 18 Mar 2011 15:45:01 +0530 Subject: [PATCH 07/17] [IMP]: document_webdav: Minor improvement for action name suggested by xrg bzr revid: rpa@tinyerp.com-20110318101501-h97b9u5i7kegvro6 --- addons/document_webdav/webdav_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml index b50c989e797..c9b924ddc1a 100644 --- a/addons/document_webdav/webdav_view.xml +++ b/addons/document_webdav/webdav_view.xml @@ -50,7 +50,7 @@ - Folder Properties + DAV Properties for Folders ir.actions.act_window document.webdav.dir.property form @@ -149,7 +149,7 @@ - Document Properties + DAV Properties for Documents ir.actions.act_window document.webdav.file.property form From 7b44cfe195324b5113799cbd5ec8320bd14e1774 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 4 May 2011 14:36:53 +0200 Subject: [PATCH 08/17] [FIX] Fixed QWeb2 foreach on objects bzr revid: fme@openerp.com-20110504123653-tpeaknuvwu7hmxdm --- addons/base/static/lib/qweb/qweb2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/lib/qweb/qweb2.js b/addons/base/static/lib/qweb/qweb2.js index 18e38c30c52..cd72c2579f5 100644 --- a/addons/base/static/lib/qweb/qweb2.js +++ b/addons/base/static/lib/qweb/qweb2.js @@ -126,7 +126,7 @@ var QWeb2 = { new_dict[as_index] = index; new_dict[as_first] = index === 0; new_dict[as_parity] = (j % 2 == 1 ? 'odd' : 'even'); - new_dict[as] = v; + new_dict[as] = k; callback(context, new_dict); index += 1; } From 4244b9ac1d1cb502a8938a05693d0f85671a6ca8 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 4 May 2011 14:50:01 +0200 Subject: [PATCH 09/17] [ADD] Added QWeb2 benchmark bzr revid: fme@openerp.com-20110504125001-sbfrn60f67b73kle --- .../base/static/lib/qweb/qweb-benchmark.html | 42 +++++++++++++ .../base/static/lib/qweb/qweb-benchmark.xml | 61 +++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 addons/base/static/lib/qweb/qweb-benchmark.html create mode 100644 addons/base/static/lib/qweb/qweb-benchmark.xml diff --git a/addons/base/static/lib/qweb/qweb-benchmark.html b/addons/base/static/lib/qweb/qweb-benchmark.html new file mode 100644 index 00000000000..2863d3e551a --- /dev/null +++ b/addons/base/static/lib/qweb/qweb-benchmark.html @@ -0,0 +1,42 @@ + + + + + + + + + + +Please, check your console for results + + + + diff --git a/addons/base/static/lib/qweb/qweb-benchmark.xml b/addons/base/static/lib/qweb/qweb-benchmark.xml new file mode 100644 index 00000000000..124f420e2cd --- /dev/null +++ b/addons/base/static/lib/qweb/qweb-benchmark.xml @@ -0,0 +1,61 @@ + + + + +
+
+ x +

title

+

text

+
+
+ x + +

title

+

text

+
+
+ + d.iter = 'one,two,three,four,five'.split(',') + + + + + + + + 1 + true +
+
+ + height: 200px; border: 1px solid red; +
+ + * : + + Ok this is good ! + Hi there ! + [] + + + () + +
+
+
+ x +

title

+

text

+
+
+ + +
+ x + +

Here's your value : () !!

+
+
+ + From ff691a34b5b25ff2365ac8c0ba451757c50cfbf8 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 4 May 2011 16:05:35 +0200 Subject: [PATCH 10/17] [ADD] sorting support in list views * Fix sorting in DataSet.do_search_read (would not fix ordering of read results, yielding a semi-random order instead of the one returned by search) * Add sort parameter support to ListView.fill() * Improve handling of sort parameter on DataSetSearch - Queue up fields to sort on (most important last) by calling 'dataset.sort(fieldname)' repeatedly - Get back a sort string fit for sending to OpenERP (server) by calling 'dataset.sort()' (without arguments) * Adds sorting on list view by clicking on headers bzr revid: xmo@openerp.com-20110504140535-ydj8zs33lt0dgcwy --- addons/base/controllers/main.py | 16 +++++++++----- addons/base/static/src/js/data.js | 33 +++++++++++++++++++++++++++-- addons/base/static/src/js/list.js | 10 ++++++++- addons/base/static/src/xml/base.xml | 2 +- 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 8faca685300..424313bc6d2 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -346,12 +346,17 @@ class DataSet(openerpweb.Controller): :rtype: list """ Model = request.session.model(model) + ids = Model.search(domain or [], offset or 0, limit or False, sort or False, request.context) + if fields and fields == ['id']: # shortcut read if we only want the ids return map(lambda id: {'id': id}, ids) - return Model.read(ids, fields or False, request.context) + + reads = Model.read(ids, fields or False, request.context) + reads.sort(key=lambda obj: ids.index(obj['id'])) + return reads @openerpweb.jsonrequest def get(self, request, model, ids, fields=False): @@ -556,11 +561,11 @@ class ListView(View): @openerpweb.jsonrequest def fill(self, request, model, id, domain, - offset=0, limit=False): - return self.do_fill(request, model, id, domain, offset, limit) + offset=0, limit=False, sort=None): + return self.do_fill(request, model, id, domain, offset, limit, sort) def do_fill(self, request, model, id, domain, - offset=0, limit=False): + offset=0, limit=False, sort=None): """ Returns all information needed to fill a table: * view with processed ``editable`` flag @@ -580,9 +585,10 @@ class ListView(View): """ view = self.fields_view_get(request, model, id, toolbar=True) + print sort rows = DataSet().do_search_read(request, model, offset=offset, limit=limit, - domain=domain) + domain=domain, sort=sort) eval_context = request.session.evaluation_context( request.context) return { diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 6d566f4de0a..c7c129e7fec 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -144,7 +144,7 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ init: function(session, model) { this._super(session, model); this.domain = []; - this.sort = []; + this._sort = []; this.offset = 0; // subset records[offset:offset+limit] // is it necessary ? @@ -166,7 +166,7 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ fields: fields, domain: this.domain, context: this.context, - sort: this.sort, + sort: this.sort(), offset: offset, limit: limit }, function (records) { @@ -177,6 +177,35 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ } callback(records); }); + }, + /** + * Reads or changes sort criteria on the dataset. + * + * If not provided with any argument, serializes the sort criteria to + * an SQL-like form usable by OpenERP's ORM. + * + * If given a field, will set that field as first sorting criteria or, + * if the field is already the first sorting criteria, will reverse it. + * + * @param {String} [field] field to sort on, reverses it (toggle from ASC to DESC) if already the main sort criteria + * @param {Boolean} [force_reverse=false] forces inserting the field as DESC + * @returns {String|undefined} + */ + sort: function (field, force_reverse) { + if (!field) { + return _.map(this._sort, function (criteria) { + if (criteria[0] === '-') { + return criteria.slice(1) + ' DESC'; + } + return criteria; + }).join(', '); + } + + var reverse = force_reverse || (this._sort[0] === field); + this._sort = _.without(this._sort, field, '-' + field); + + this._sort.unshift((reverse ? '-' : '') + field); + return undefined; } }); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index cc84efa65f2..308b73f8925 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -130,6 +130,13 @@ openerp.base.ListView = openerp.base.Controller.extend( this.$element.find('#oe-list-delete') .hide() .click(this.do_delete_selected); + this.$element.find('thead').delegate('th[data-id]', 'click', function (e) { + e.stopPropagation(); + + self.dataset.sort($(this).data('id')); + + self.do_reload(); + }); var $table = this.$element.find('table'); // Cell events @@ -318,7 +325,8 @@ openerp.base.ListView = openerp.base.Controller.extend( 'model': this.dataset.model, 'id': this.view_id, 'context': this.dataset.context, - 'domain': this.dataset.domain + 'domain': this.dataset.domain, + 'sort': this.dataset.sort && this.dataset.sort() }, this.do_fill_table); }, /** diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index ef4cbba46b0..b2b2bd7d2c4 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -181,7 +181,7 @@ - + From d133fde981eb19e911c407afdfe09667bb736962 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 4 May 2011 16:38:40 +0200 Subject: [PATCH 11/17] [IMP] QWeb2 optimization bzr revid: fme@openerp.com-20110504143840-gl3lypjt4n85ixpm --- .../base/static/lib/qweb/qweb-benchmark.html | 1 + .../base/static/lib/qweb/qweb-benchmark.xml | 3 +- addons/base/static/lib/qweb/qweb2.js | 65 ++++++++++--------- 3 files changed, 38 insertions(+), 31 deletions(-) diff --git a/addons/base/static/lib/qweb/qweb-benchmark.html b/addons/base/static/lib/qweb/qweb-benchmark.html index 2863d3e551a..0cc67e7e54f 100644 --- a/addons/base/static/lib/qweb/qweb-benchmark.html +++ b/addons/base/static/lib/qweb/qweb-benchmark.html @@ -16,6 +16,7 @@ console.time("Load template with QWeb2"); var engine = new QWeb2.Engine("qweb-benchmark.xml") + engine.debug = true; console.timeEnd("Load template with QWeb2") var iter = 1000; diff --git a/addons/base/static/lib/qweb/qweb-benchmark.xml b/addons/base/static/lib/qweb/qweb-benchmark.xml index 124f420e2cd..71452572e51 100644 --- a/addons/base/static/lib/qweb/qweb-benchmark.xml +++ b/addons/base/static/lib/qweb/qweb-benchmark.xml @@ -2,8 +2,7 @@ - -
+
x

title

diff --git a/addons/base/static/lib/qweb/qweb2.js b/addons/base/static/lib/qweb/qweb2.js index cd72c2579f5..4343e10923f 100644 --- a/addons/base/static/lib/qweb/qweb2.js +++ b/addons/base/static/lib/qweb/qweb2.js @@ -20,8 +20,8 @@ var QWeb2 = { } throw prefix + ": " + message; }, - js_escape: function(s) { - return "'" + s.replace(/\r?\n/g, "\\n").replace(/'/g, "\\'") + "'"; + js_escape: function(s, noquotes) { + return (noquotes ? '' : "'") + s.replace(/\r?\n/g, "\\n").replace(/'/g, "\\'") + (noquotes ? '' : "'"); }, html_escape: function(s, attribute) { if (s === null || s === undefined) { @@ -143,6 +143,7 @@ QWeb2.Engine = (function() { function Engine() { // TODO: handle prefix at template level : t-prefix="x" this.prefix = 't'; + this.debug = false; this.templates_resources = []; // TODO: implement this.reload() this.templates = {}; this.compiled_templates = {}; @@ -312,6 +313,34 @@ QWeb2.Element = (function() { QWeb2.tools.extend(Element.prototype, { compile : function() { + var r = [], + instring = false, + lines = this._compile().split('\n'); + for (var i = 0, ilen = lines.length; i < ilen; i++) { + var m, line = lines[i]; + if (m = line.match(/^(\s*)\/\/@string=(.*)/)) { + if (instring) { + if (this.engine.debug) { + // Split string lines in indented r.push arguments + r.push((m[2].indexOf("\\n") != -1 ? "',\n\t" + m[1] + "'" : '') + m[2]); + } else { + r.push(m[2]); + } + } else { + r.push(m[1] + "r.push('" + m[2]); + instring = true; + } + } else { + if (instring) { + r.push("');\n"); + } + instring = false; + r.push(line + '\n'); + } + } + return r.join(''); + }, + _compile : function() { switch (this.node.nodeType) { case 3: case 4: @@ -320,15 +349,15 @@ QWeb2.Element = (function() { case 1: this.compile_element(); } - var r = this.flatten_output(this._top); + var r = this._top.join(''); if (this.process_children) { for (var i = 0, ilen = this.children.length; i < ilen; i++) { var child = this.children[i]; child._indent = this._indent; - r += child.compile(); + r += child._compile(); } } - r += this.flatten_output(this._bottom); + r += this._bottom.join(''); return r; }, format_expression : function(e) { @@ -407,39 +436,17 @@ QWeb2.Element = (function() { get_indent : function() { return new Array(this._indent + 1).join("\t"); }, - flatten_output : function(out) { - var r = ''; - for (var i = 0, ilen = out.length; i < ilen; i++) { - var val = out[i]; - if (val.constructor === Array) { - r += val[0] + "r.push(" + this.engine.tools.js_escape(val[1]) + ");\n"; - } else { - r += val; - } - } - return r; - }, top : function(s) { return this._top.push(this.get_indent() + s + '\n'); }, top_string : function(s) { - var top = this._top; - if (top.length && top[top.length - 1].constructor === Array) { - return top[top.length - 1][1] += s; - } else { - return top.push([this.get_indent(), s]); - } + return this._top.push(this.get_indent() + "//@string=" + this.engine.tools.js_escape(s, true) + '\n'); }, bottom : function(s) { return this._bottom.unshift(this.get_indent() + s + '\n'); }, bottom_string : function(s) { - var bottom = this._bottom; - if (bottom.length && bottom[0].constructor === Array) { - return bottom[0][1] += s; - } else { - return bottom.unshift([this.get_indent(), s]); - } + return this._bottom.unshift(this.get_indent() + "//@string=" + this.engine.tools.js_escape(s, true) + '\n'); }, compile_element : function() { for (var i = 0, ilen = QWeb2.actions_precedence.length; i < ilen; i++) { From 075902f5c2b0febd70adf5209b4eef2cfb0813b8 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 4 May 2011 16:47:53 +0200 Subject: [PATCH 12/17] [IMP] make sortable columns look sortable (and sorted) a bit bzr revid: xmo@openerp.com-20110504144753-zemygt44re3o8z0m --- addons/base/controllers/main.py | 10 ++++++++++ addons/base/static/src/css/base.css | 5 +++++ addons/base/static/src/js/data.js | 2 +- addons/base/static/src/js/list.js | 3 +++ addons/base/static/src/xml/base.xml | 4 +++- 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 424313bc6d2..085e48d89e0 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -591,6 +591,16 @@ class ListView(View): domain=domain, sort=sort) eval_context = request.session.evaluation_context( request.context) + + if sort: + sort_criteria = sort.split(',')[0].split(' ') + print sort, sort_criteria + view['sorted'] = { + 'field': sort_criteria[0], + 'reversed': sort_criteria[1] == 'DESC' + } + else: + view['sorted'] = {} return { 'view': view, 'records': [ diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 1bd004b53f6..43021e32bc6 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -485,6 +485,11 @@ body.openerp { .openerp .oe-listview td, .openerp .oe-listview th { vertical-align: middle; + text-align: left; +} +.openerp .oe-listview th.oe-sortable, +.openerp .oe-listview th.oe-sortable .ui-icon { + cursor: pointer; } .openerp .oe-listview .oe-field-cell { diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index c7c129e7fec..da0f18001a8 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -197,7 +197,7 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({ if (criteria[0] === '-') { return criteria.slice(1) + ' DESC'; } - return criteria; + return criteria + ' ASC'; }).join(', '); } diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 308b73f8925..e9061fa7121 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -123,6 +123,8 @@ openerp.base.ListView = openerp.base.Controller.extend( this.visible_columns = _.filter(this.columns, function (column) { return column.invisible !== '1'; }); + + if (!this.fields_view.sorted) { this.fields_view.sorted = {}; } this.$element.html(QWeb.render("ListView", this)); // Head hook @@ -135,6 +137,7 @@ openerp.base.ListView = openerp.base.Controller.extend( self.dataset.sort($(this).data('id')); + // TODO: should only reload content (and set the right column to a sorted display state) self.do_reload(); }); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b2b2bd7d2c4..bcd8db9444f 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -181,9 +181,11 @@ - + + From 826bbaa0a35293728feda20a808f096cdda14a6e Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 5 May 2011 04:40:18 +0000 Subject: [PATCH 13/17] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110505044018-zo2laq7vbyynd7p7 --- addons/account/i18n/pt_BR.po | 4 +- addons/account/i18n/vi.po | 12 +- addons/base_setup/i18n/vi.po | 76 ++--- addons/base_tools/i18n/vi.po | 8 +- addons/crm/i18n/vi.po | 448 ++++++++++++++-------------- addons/hr/i18n/vi.po | 64 ++-- addons/sale/i18n/vi.po | 44 +-- addons/stock/i18n/zh_CN.po | 10 +- addons/stock_location/i18n/zh_CN.po | 104 ++++--- addons/stock_planning/i18n/zh_CN.po | 62 ++-- 10 files changed, 434 insertions(+), 398 deletions(-) diff --git a/addons/account/i18n/pt_BR.po b/addons/account/i18n/pt_BR.po index a1abf106de4..e3c4f508e2f 100644 --- a/addons/account/i18n/pt_BR.po +++ b/addons/account/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-04 04:36+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:40+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 diff --git a/addons/account/i18n/vi.po b/addons/account/i18n/vi.po index 7fde9c626ae..f1c1a881d02 100644 --- a/addons/account/i18n/vi.po +++ b/addons/account/i18n/vi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-05-02 17:22+0000\n" +"PO-Revision-Date: 2011-05-04 19:28+0000\n" "Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-03 04:39+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:39+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -2923,7 +2923,7 @@ msgstr "View" #: code:addons/account/account.py:2951 #, python-format msgid "BNK%s" -msgstr "" +msgstr "BNK%s" #. module: account #: code:addons/account/account.py:2906 @@ -3904,7 +3904,7 @@ msgstr "Tháng" #. module: account #: field:account.invoice.report,uom_name:0 msgid "Reference UoM" -msgstr "" +msgstr "ĐVĐ Tham chiếu" #. module: account #: field:account.account,note:0 @@ -9759,7 +9759,7 @@ msgstr "Các báo cáo thống kê" #: field:account.installer.modules,progress:0 #: field:wizard.multi.charts.accounts,progress:0 msgid "Configuration Progress" -msgstr "Configuration Progress" +msgstr "Tiến trình cấu hình" #. module: account #: view:account.fiscal.position.template:0 diff --git a/addons/base_setup/i18n/vi.po b/addons/base_setup/i18n/vi.po index 64b39ebd7c4..5c7aacdebce 100644 --- a/addons/base_setup/i18n/vi.po +++ b/addons/base_setup/i18n/vi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-11-24 09:29+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-05-04 16:45+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:03+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:39+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: base_setup #: field:base.setup.company,city:0 @@ -25,7 +25,7 @@ msgstr "Thành phố" #. module: base_setup #: view:base.setup.installer:0 msgid "Install" -msgstr "" +msgstr "Cài đặt" #. module: base_setup #: field:base.setup.installer,account_voucher:0 @@ -35,7 +35,7 @@ msgstr "Hóa đơn" #. module: base_setup #: field:base.setup.installer,hr:0 msgid "Human Resources" -msgstr "Quản trị Nhân lực" +msgstr "Quản trị Nguồn nhân lực" #. module: base_setup #: field:base.setup.company,email:0 @@ -50,7 +50,7 @@ msgstr "Số tài khoản ngân hàng" #. module: base_setup #: field:base.setup.installer,profile_tools:0 msgid "Extra Tools" -msgstr "" +msgstr "Các công cụ Mở rộng" #. module: base_setup #: field:base.setup.company,rml_footer1:0 @@ -77,7 +77,7 @@ msgstr "CSDL của bạn đã được tạo" #. module: base_setup #: field:base.setup.installer,point_of_sale:0 msgid "Point of Sales" -msgstr "" +msgstr "Điểm bán hàng" #. module: base_setup #: field:base.setup.installer,association:0 @@ -95,13 +95,13 @@ msgstr "" #: code:addons/base_setup/__init__.py:50 #, python-format msgid "The following users have been installed : \n" -msgstr "" +msgstr "Những người sử dụng sau đã được cài đặt: \n" #. module: base_setup #: field:base.setup.company,progress:0 #: field:base.setup.installer,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "Tiến trình cấu hình" #. module: base_setup #: field:base.setup.company,rml_footer2:0 @@ -122,7 +122,7 @@ msgstr "" #. module: base_setup #: field:base.setup.installer,marketing:0 msgid "Marketing" -msgstr "" +msgstr "Tiếp thị" #. module: base_setup #: field:base.setup.company,company_id:0 @@ -151,7 +151,7 @@ msgstr "" #. module: base_setup #: field:base.setup.installer,report_designer:0 msgid "Advanced Reporting" -msgstr "" +msgstr "Báo cáo cao cấp" #. module: base_setup #: field:base.setup.company,phone:0 @@ -161,7 +161,7 @@ msgstr "Điện thoại" #. module: base_setup #: view:base.setup.company:0 msgid "res_config_contents" -msgstr "" +msgstr "res_config_contents" #. module: base_setup #: view:base.setup.company:0 @@ -240,7 +240,7 @@ msgstr "" #. module: base_setup #: model:ir.model,name:base_setup.model_base_setup_company msgid "base.setup.company" -msgstr "" +msgstr "base.setup.company" #. module: base_setup #: help:base.setup.installer,purchase:0 @@ -265,7 +265,7 @@ msgstr "" #. module: base_setup #: model:ir.model,name:base_setup.model_base_setup_installer msgid "base.setup.installer" -msgstr "" +msgstr "base.setup.installer" #. module: base_setup #: field:base.setup.company,country_id:0 @@ -285,7 +285,7 @@ msgstr "Kế toán & Tài chính" #. module: base_setup #: field:base.setup.installer,auction:0 msgid "Auction Houses" -msgstr "" +msgstr "Nhà bán đấu giá" #. module: base_setup #: field:base.setup.company,zip:0 @@ -295,7 +295,7 @@ msgstr "Mã bưu điện" #. module: base_setup #: view:base.setup.config:0 msgid "Start Configuration" -msgstr "" +msgstr "Bắt đầu cấu hình" #. module: base_setup #: help:base.setup.installer,knowledge:0 @@ -315,12 +315,12 @@ msgstr "" #: view:base.setup.company:0 #: model:ir.actions.act_window,name:base_setup.action_base_setup_company msgid "Company Configuration" -msgstr "" +msgstr "Cấu hình Công ty" #. module: base_setup #: field:base.setup.company,logo:0 msgid "Logo" -msgstr "" +msgstr "Biểu tượng" #. module: base_setup #: help:base.setup.installer,point_of_sale:0 @@ -333,7 +333,7 @@ msgstr "" #. module: base_setup #: field:base.setup.installer,purchase:0 msgid "Purchase Management" -msgstr "" +msgstr "Quản lý Mua hàng" #. module: base_setup #: help:base.setup.installer,sale:0 @@ -343,7 +343,7 @@ msgstr "" #. module: base_setup #: field:base.setup.installer,stock:0 msgid "Warehouse Management" -msgstr "" +msgstr "Quản lý Kho hàng" #. module: base_setup #: field:base.setup.installer,project:0 @@ -353,17 +353,17 @@ msgstr "Quản lý dự án" #. module: base_setup #: field:base.setup.config,installed_users:0 msgid "Installed Users" -msgstr "" +msgstr "Người sử dụng đã được cài đặt" #. module: base_setup #: view:base.setup.config:0 msgid "New Database" -msgstr "" +msgstr "CSDL mới" #. module: base_setup #: field:base.setup.installer,crm:0 msgid "Customer Relationship Management" -msgstr "" +msgstr "Quản lý Quan hệ Khách hàng" #. module: base_setup #: help:base.setup.installer,auction:0 @@ -390,34 +390,34 @@ msgstr "" #. module: base_setup #: field:base.setup.company,rml_header1:0 msgid "Report Header" -msgstr "" +msgstr "Tiêu đề Báo cáo" #. module: base_setup #: view:base.setup.config:0 msgid "Information about your new database" -msgstr "" +msgstr "Thông tin về CSDL mới của bạn" #. module: base_setup #: field:base.setup.company,config_logo:0 #: field:base.setup.config,config_logo:0 #: field:base.setup.installer,config_logo:0 msgid "Image" -msgstr "" +msgstr "Hình ảnh" #. module: base_setup #: field:base.setup.installer,product_expiry:0 msgid "Food Industry" -msgstr "" +msgstr "Công nghiệp Thực phẩm" #. module: base_setup #: field:base.setup.installer,mrp:0 msgid "Manufacturing" -msgstr "" +msgstr "Sản xuất" #. module: base_setup #: view:base.setup.company:0 msgid "Your Logo - Use a size of about 450x150 pixels." -msgstr "" +msgstr "Biểu trưng - Sử dụng kích thước khoảng 450x150 pixels." #. module: base_setup #: help:base.setup.company,rml_footer1:0 @@ -430,33 +430,33 @@ msgstr "" #. module: base_setup #: field:base.setup.company,website:0 msgid "Company Website" -msgstr "" +msgstr "Trang web Công ty" #. module: base_setup #: view:base.setup.installer:0 msgid "Install Specific Industry Applications" -msgstr "" +msgstr "Cài đặt các Ứng dụng đặc thù theo ngành" #. module: base_setup #: field:base.setup.company,street:0 msgid "Street" -msgstr "" +msgstr "Đường phố" #. module: base_setup #: view:base.setup.company:0 msgid "Configure Your Company Information" -msgstr "" +msgstr "Cấu hình Thông tin Công ty của Bạn" #. module: base_setup #: help:base.setup.company,website:0 msgid "Example: http://openerp.com" -msgstr "" +msgstr "Ví dụ: http://openerp.com" #. module: base_setup #: view:base.setup.installer:0 #: model:ir.actions.act_window,name:base_setup.action_base_setup_installer msgid "Install Applications" -msgstr "" +msgstr "Cài đặt các Ứng dụng" #. module: base_setup #: help:base.setup.installer,crm:0 @@ -476,7 +476,7 @@ msgstr "" #. module: base_setup #: model:ir.module.module,shortdesc:base_setup.module_meta_information msgid "Base Setup" -msgstr "" +msgstr "Thiết lập cơ sở" #. module: base_setup #: help:base.setup.installer,association:0 @@ -488,7 +488,7 @@ msgstr "" #. module: base_setup #: model:ir.model,name:base_setup.model_base_setup_config msgid "base.setup.config" -msgstr "" +msgstr "base.setup.config" #~ msgid "The certificate ID of the module must be unique !" #~ msgstr "Mã chứng nhận của mô đun này phải là duy nhất !" diff --git a/addons/base_tools/i18n/vi.po b/addons/base_tools/i18n/vi.po index 9c908debdc7..790e4f9515e 100644 --- a/addons/base_tools/i18n/vi.po +++ b/addons/base_tools/i18n/vi.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-05-01 17:00+0000\n" +"PO-Revision-Date: 2011-05-04 18:47+0000\n" "Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-02 04:37+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:40+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: base_tools #: model:ir.module.module,shortdesc:base_tools.module_meta_information msgid "Common base for tools modules" -msgstr "" +msgstr "Cơ sở chung cho mô-đun công cụ" #. module: base_tools #: model:ir.module.module,description:base_tools.module_meta_information diff --git a/addons/crm/i18n/vi.po b/addons/crm/i18n/vi.po index 27d818c5a7f..384a36da22b 100644 --- a/addons/crm/i18n/vi.po +++ b/addons/crm/i18n/vi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-01-19 21:50+0000\n" -"Last-Translator: Tran Tuan \n" +"PO-Revision-Date: 2011-05-04 18:43+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:00+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:39+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: crm #: view:crm.lead.report:0 @@ -87,7 +87,7 @@ msgstr "Chọn Các Cơ hội" #: view:crm.phonecall2phonecall:0 #: view:crm.send.mail:0 msgid " " -msgstr "" +msgstr " " #. module: crm #: view:crm.lead.report:0 @@ -158,7 +158,7 @@ msgstr "Hàng năm" #. module: crm #: field:crm.segmentation.line,name:0 msgid "Rule Name" -msgstr "" +msgstr "Tên quy tắc" #. module: crm #: view:crm.case.resource.type:0 @@ -200,7 +200,7 @@ msgstr "Cảnh báo!" #: model:ir.actions.act_window,name:crm.action_report_crm_opportunity #: model:ir.ui.menu,name:crm.menu_report_crm_opportunities_tree msgid "Opportunities Analysis" -msgstr "" +msgstr "Phân tích Cơ hội" #. module: crm #: field:crm.lead,partner_id:0 @@ -323,7 +323,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,class:0 msgid "Public" -msgstr "" +msgstr "Công khai" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_resource_type_act @@ -341,7 +341,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,end_type:0 msgid "Forever" -msgstr "" +msgstr "Vô hạn" #. module: crm #: help:crm.lead,optout:0 @@ -353,7 +353,7 @@ msgstr "" #. module: crm #: model:process.transition,name:crm.process_transition_leadpartner0 msgid "Prospect Partner" -msgstr "" +msgstr "Đối tác Tiềm năng" #. module: crm #: field:crm.lead,contact_name:0 @@ -393,7 +393,7 @@ msgstr "" #: code:addons/crm/crm_lead.py:209 #, python-format msgid "The lead '%s' has been opened." -msgstr "" +msgstr "Đầu mối '%s' đã được mở." #. module: crm #: model:process.transition,name:crm.process_transition_opportunitymeeting0 @@ -430,7 +430,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Communication" -msgstr "" +msgstr "Liên hệ" #. module: crm #: field:crm.case.section,change_responsible:0 @@ -460,13 +460,13 @@ msgstr "" #. module: crm #: field:crm.lead,write_date:0 msgid "Update Date" -msgstr "" +msgstr "Ngày cập nhật" #. module: crm #: view:crm.lead2opportunity.action:0 #: field:crm.lead2opportunity.action,name:0 msgid "Select Action" -msgstr "" +msgstr "Chọn Hành động" #. module: crm #: field:base.action.rule,trg_categ_id:0 @@ -479,57 +479,57 @@ msgstr "" #: field:crm.phonecall.report,categ_id:0 #: field:crm.phonecall2phonecall,categ_id:0 msgid "Category" -msgstr "" +msgstr "Phân loại" #. module: crm #: view:crm.lead.report:0 msgid "#Opportunities" -msgstr "" +msgstr "Số lượng Cơ hội" #. module: crm #: model:crm.case.resource.type,name:crm.type_oppor2 msgid "Campaign 1" -msgstr "" +msgstr "Chiến dịch 1" #. module: crm #: model:crm.case.resource.type,name:crm.type_oppor1 msgid "Campaign 2" -msgstr "" +msgstr "Chiến dịch 2" #. module: crm #: view:crm.meeting:0 msgid "Privacy" -msgstr "" +msgstr "Sự riêng tư" #. module: crm #: view:crm.lead.report:0 msgid "Opportunity Analysis" -msgstr "" +msgstr "Phân tích Cơ hội" #. module: crm #: help:crm.meeting,location:0 msgid "Location of Event" -msgstr "" +msgstr "Địa điểm tổ chức sự kiện" #. module: crm #: field:crm.meeting,rrule:0 msgid "Recurrent Rule" -msgstr "" +msgstr "Quy tắc lặp lại" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead1 msgid "Version 4.2" -msgstr "" +msgstr "Phiên bản 4.2" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead2 msgid "Version 4.4" -msgstr "" +msgstr "Phiên bản 4.4" #. module: crm #: help:crm.installer,fetchmail:0 msgid "Allows you to receive E-Mails from POP/IMAP server." -msgstr "" +msgstr "Cho phép bạn nhận Thư điện tử từ máy chủ POP/IMAP." #. module: crm #: model:process.transition,note:crm.process_transition_opportunitymeeting0 @@ -553,12 +553,12 @@ msgstr "" #: model:ir.actions.act_window,name:crm.crm_partner2opportunity #, python-format msgid "Create Opportunity" -msgstr "" +msgstr "Tạo Cơ hội" #. module: crm #: view:crm.installer:0 msgid "Configure" -msgstr "" +msgstr "Cấu hình" #. module: crm #: code:addons/crm/crm.py:378 @@ -571,7 +571,7 @@ msgstr "" #. module: crm #: model:ir.module.module,shortdesc:crm.module_meta_information msgid "Customer & Supplier Relationship Management" -msgstr "" +msgstr "Quản lý Quan hệ Khách hàng & Nhà cung cấp" #. module: crm #: selection:crm.lead.report,month:0 @@ -583,7 +583,7 @@ msgstr "Tháng Sáu" #. module: crm #: selection:crm.segmentation,state:0 msgid "Not Running" -msgstr "" +msgstr "Không chạy" #. module: crm #: view:crm.send.mail:0 @@ -594,12 +594,12 @@ msgstr "" #. module: crm #: field:crm.lead,email:0 msgid "E-Mail" -msgstr "" +msgstr "Thư điện tử" #. module: crm #: field:crm.installer,wiki_sale_faq:0 msgid "Sale FAQ" -msgstr "" +msgstr "Các câu hỏi thường gặp về Bán hàng" #. module: crm #: model:ir.model,name:crm.model_crm_send_mail_attachment @@ -665,7 +665,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,end_type:0 msgid "End date" -msgstr "" +msgstr "Ngày kết thúc" #. module: crm #: constraint:base.action.rule:0 @@ -692,7 +692,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Communication history" -msgstr "" +msgstr "Lịch sử trao đổi thông tin" #. module: crm #: help:crm.phonecall,canal_id:0 @@ -706,12 +706,12 @@ msgstr "" #: code:addons/crm/crm_meeting.py:93 #, python-format msgid "The meeting '%s' has been confirmed." -msgstr "" +msgstr "Cuộc gặp '%s' đã được xác nhận." #. module: crm #: field:crm.case.section,user_id:0 msgid "Responsible User" -msgstr "" +msgstr "Người chịu trách nhiệm" #. module: crm #: code:addons/crm/wizard/crm_phonecall_to_partner.py:53 @@ -729,7 +729,7 @@ msgstr "" #. module: crm #: view:res.users:0 msgid "Current Activity" -msgstr "" +msgstr "Hoạt động hiện tại" #. module: crm #: help:crm.meeting,exrule:0 @@ -741,7 +741,7 @@ msgstr "" #. module: crm #: field:crm.case.section,resource_calendar_id:0 msgid "Working Time" -msgstr "" +msgstr "Thời gian làm việc" #. module: crm #: view:crm.segmentation.line:0 @@ -851,7 +851,7 @@ msgstr "" #: view:crm.lead2partner:0 #: view:crm.phonecall2partner:0 msgid "Continue" -msgstr "" +msgstr "Tiếp tục" #. module: crm #: field:crm.segmentation,som_interval:0 @@ -861,7 +861,7 @@ msgstr "" #. module: crm #: field:crm.meeting,byday:0 msgid "By day" -msgstr "" +msgstr "Theo ngày" #. module: crm #: field:base.action.rule,act_section_id:0 @@ -872,7 +872,7 @@ msgstr "" #: view:calendar.attendee:0 #: field:calendar.attendee,categ_id:0 msgid "Event Type" -msgstr "" +msgstr "Loại sự kiện" #. module: crm #: model:ir.model,name:crm.model_crm_installer @@ -882,7 +882,7 @@ msgstr "crm.installer" #. module: crm #: field:crm.segmentation,exclusif:0 msgid "Exclusive" -msgstr "" +msgstr "Độc quyền" #. module: crm #: code:addons/crm/crm_opportunity.py:91 @@ -934,7 +934,7 @@ msgstr "" #: field:crm.lead.report,create_date:0 #: field:crm.phonecall.report,create_date:0 msgid "Create Date" -msgstr "" +msgstr "Ngày tạo" #. module: crm #: field:crm.lead,ref2:0 @@ -976,7 +976,7 @@ msgstr "" #: model:ir.ui.menu,name:crm.menu_crm_case_opp #: model:process.node,name:crm.process_node_opportunities0 msgid "Opportunities" -msgstr "" +msgstr "Các cơ hội" #. module: crm #: field:crm.segmentation,categ_id:0 @@ -987,7 +987,7 @@ msgstr "" #: view:crm.add.note:0 #: model:ir.actions.act_window,name:crm.action_crm_add_note msgid "Add Note" -msgstr "" +msgstr "Thêm Ghi chú" #. module: crm #: field:crm.lead,is_supplier_add:0 @@ -1053,7 +1053,7 @@ msgstr "" #: field:crm.lead,mobile:0 #: field:crm.phonecall,partner_mobile:0 msgid "Mobile" -msgstr "" +msgstr "Số di động" #. module: crm #: field:crm.meeting,end_type:0 @@ -1075,12 +1075,12 @@ msgstr "" #. module: crm #: view:board.board:0 msgid "My Meetings" -msgstr "" +msgstr "Các cuộc gặp của tôi" #. module: crm #: field:crm.lead,ref:0 msgid "Reference" -msgstr "" +msgstr "Tham chiếu" #. module: crm #: field:crm.lead,optin:0 @@ -1101,7 +1101,7 @@ msgstr "" #: field:res.partner,meeting_ids:0 #, python-format msgid "Meetings" -msgstr "" +msgstr "Các cuộc gặp" #. module: crm #: view:crm.meeting:0 @@ -1114,12 +1114,12 @@ msgstr "" #: field:crm.meeting,date_action_next:0 #: field:crm.phonecall,date_action_next:0 msgid "Next Action" -msgstr "" +msgstr "Hành động kế tiếp" #. module: crm #: field:crm.meeting,end_date:0 msgid "Repeat Until" -msgstr "" +msgstr "Lặp lại cho đến khi" #. module: crm #: field:crm.meeting,date_deadline:0 @@ -1151,17 +1151,17 @@ msgstr "" #: field:crm.phonecall,user_id:0 #: view:res.partner:0 msgid "Responsible" -msgstr "" +msgstr "Chịu trách nhiệm" #. module: crm #: view:res.partner:0 msgid "Previous" -msgstr "" +msgstr "Trước" #. module: crm #: view:crm.lead:0 msgid "Statistics" -msgstr "" +msgstr "Thống kê" #. module: crm #: view:crm.meeting:0 @@ -1173,7 +1173,7 @@ msgstr "Từ" #: view:crm.lead2opportunity.action:0 #: view:res.partner:0 msgid "Next" -msgstr "" +msgstr "Tiếp theo" #. module: crm #: view:crm.lead:0 @@ -1185,7 +1185,7 @@ msgstr "" #: model:crm.case.stage,name:crm.stage_opportunity5 #: view:crm.lead:0 msgid "Won" -msgstr "" +msgstr "Thắng" #. module: crm #: field:crm.lead.report,delay_expected:0 @@ -1200,7 +1200,7 @@ msgstr "" #. module: crm #: field:crm.send.mail,html:0 msgid "HTML formatting?" -msgstr "" +msgstr "Định dạng HTML?" #. module: crm #: field:crm.case.stage,type:0 @@ -1211,7 +1211,7 @@ msgstr "" #: view:crm.phonecall.report:0 #: view:res.partner:0 msgid "Type" -msgstr "" +msgstr "Loại" #. module: crm #: view:crm.segmentation:0 @@ -1224,14 +1224,14 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Lowest" -msgstr "" +msgstr "Thấp nhất" #. module: crm #: view:crm.add.note:0 #: view:crm.send.mail:0 #: field:crm.send.mail.attachment,binary:0 msgid "Attachment" -msgstr "" +msgstr "Văn bản đính kèm" #. module: crm #: selection:crm.lead.report,month:0 @@ -1248,7 +1248,7 @@ msgstr "Tháng Tám" #: field:crm.phonecall,create_date:0 #: field:crm.phonecall.report,creation_date:0 msgid "Creation Date" -msgstr "" +msgstr "Ngày tạo" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor5 @@ -1287,7 +1287,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "History Information" -msgstr "" +msgstr "Thông tin lịch sử" #. module: crm #: field:base.action.rule,act_mail_to_partner:0 @@ -1302,12 +1302,12 @@ msgstr "" #. module: crm #: field:crm.meeting,class:0 msgid "Mark as" -msgstr "" +msgstr "Đánh dấu là" #. module: crm #: field:crm.meeting,count:0 msgid "Repeat" -msgstr "" +msgstr "Lặp lại" #. module: crm #: help:crm.meeting,rrule_type:0 @@ -1383,7 +1383,7 @@ msgstr "" #. module: crm #: field:crm.partner2opportunity,name:0 msgid "Opportunity Name" -msgstr "" +msgstr "Tên Cơ hội" #. module: crm #: help:crm.case.section,active:0 @@ -1396,12 +1396,12 @@ msgstr "" #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid " Year " -msgstr "" +msgstr " Năm " #. module: crm #: field:crm.meeting,edit_all:0 msgid "Edit All" -msgstr "" +msgstr "Chỉnh sửa Tất cả" #. module: crm #: field:crm.meeting,fr:0 @@ -1411,12 +1411,12 @@ msgstr "Thứ sáu" #. module: crm #: model:ir.model,name:crm.model_crm_lead msgid "crm.lead" -msgstr "" +msgstr "crm.lead" #. module: crm #: field:crm.meeting,write_date:0 msgid "Write Date" -msgstr "" +msgstr "Ngày Ghi" #. module: crm #: view:crm.meeting:0 @@ -1449,7 +1449,7 @@ msgstr "Tạo một đối tác" #. module: crm #: field:crm.segmentation,state:0 msgid "Execution Status" -msgstr "" +msgstr "Tình trạng Thực hiện" #. module: crm #: selection:crm.meeting,week_list:0 @@ -1466,7 +1466,7 @@ msgstr "" #: field:crm.case.section,complete_name:0 #: field:crm.send.mail,attachment_ids:0 msgid "unknown" -msgstr "" +msgstr "chưa xác định" #. module: crm #: field:crm.lead,id:0 @@ -1489,7 +1489,7 @@ msgstr "" #: field:crm.phonecall2phonecall,date:0 #: view:res.partner:0 msgid "Date" -msgstr "" +msgstr "Ngày" #. module: crm #: view:crm.lead:0 @@ -1502,12 +1502,12 @@ msgstr "Bộ lọc mở rộng..." #. module: crm #: field:crm.phonecall2opportunity,name:0 msgid "Opportunity Summary" -msgstr "" +msgstr "Tóm tắt Cơ hội" #. module: crm #: view:crm.phonecall.report:0 msgid "Search" -msgstr "" +msgstr "Tìm kiếm" #. module: crm #: view:board.board:0 @@ -1528,7 +1528,7 @@ msgstr "" #: view:crm.lead:0 #: view:res.partner:0 msgid "History" -msgstr "" +msgstr "Lịch sử" #. module: crm #: model:ir.actions.act_window,help:crm.crm_segmentation_tree-act @@ -1541,7 +1541,7 @@ msgstr "" #. module: crm #: field:crm.case.section,code:0 msgid "Code" -msgstr "" +msgstr "Mã" #. module: crm #: field:crm.case.section,child_ids:0 @@ -1564,12 +1564,12 @@ msgstr "" #. module: crm #: field:crm.meeting,freq:0 msgid "Frequency" -msgstr "" +msgstr "Tần suất" #. module: crm #: view:crm.lead:0 msgid "References" -msgstr "" +msgstr "Các tham chiếu" #. module: crm #: code:addons/crm/crm.py:392 @@ -1583,12 +1583,12 @@ msgstr "" #: view:res.partner:0 #, python-format msgid "Cancel" -msgstr "" +msgstr "Hủy bỏ" #. module: crm #: model:ir.model,name:crm.model_res_users msgid "res.users" -msgstr "" +msgstr "res.users" #. module: crm #: model:ir.model,name:crm.model_crm_merge_opportunity @@ -1605,7 +1605,7 @@ msgstr "" #: view:crm.meeting:0 #: view:crm.phonecall:0 msgid "Current" -msgstr "" +msgstr "Hiện tại" #. module: crm #: field:crm.meeting,exrule:0 @@ -1635,7 +1635,7 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Search Meetings" -msgstr "" +msgstr "Tìm kiếm Cuộc gặp" #. module: crm #: selection:crm.segmentation.line,expr_name:0 @@ -1651,12 +1651,12 @@ msgstr "" #. module: crm #: selection:crm.segmentation.line,expr_operator:0 msgid "=" -msgstr "" +msgstr "=" #. module: crm #: selection:crm.meeting,state:0 msgid "Unconfirmed" -msgstr "" +msgstr "Chưa được xác nhận" #. module: crm #: model:ir.actions.act_window,help:crm.action_report_crm_opportunity @@ -1675,13 +1675,13 @@ msgstr "" #: field:crm.segmentation,name:0 #: field:crm.send.mail.attachment,name:0 msgid "Name" -msgstr "" +msgstr "Tên" #. module: crm #: field:crm.meeting,alarm_id:0 #: field:crm.meeting,base_calendar_alarm_id:0 msgid "Alarm" -msgstr "" +msgstr "Nhắc nhở" #. module: crm #: model:ir.actions.act_window,help:crm.crm_lead_stage_act @@ -1700,7 +1700,7 @@ msgstr "" #. module: crm #: field:crm.lead,birthdate:0 msgid "Birthdate" -msgstr "" +msgstr "Ngày sinh" #. module: crm #: view:crm.meeting:0 @@ -1731,7 +1731,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "High" -msgstr "" +msgstr "Cao" #. module: crm #: model:process.node,note:crm.process_node_partner0 @@ -1754,7 +1754,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Saturday" -msgstr "" +msgstr "Thứ Bảy" #. module: crm #: selection:crm.meeting,byday:0 @@ -1774,17 +1774,17 @@ msgstr "" #. module: crm #: field:crm.meeting,we:0 msgid "Wed" -msgstr "" +msgstr "Thứ Tư" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor6 msgid "Potential Reseller" -msgstr "" +msgstr "Đại lý bán hàng tiềm năng" #. module: crm #: field:crm.lead.report,planned_revenue:0 msgid "Planned Revenue" -msgstr "" +msgstr "Kế hoạch doanh thu" #. module: crm #: view:crm.lead:0 @@ -1803,7 +1803,7 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Invitation details" -msgstr "" +msgstr "Chi tiết lời mời" #. module: crm #: field:crm.case.section,parent_id:0 @@ -1818,17 +1818,17 @@ msgstr "" #. module: crm #: selection:crm.segmentation,state:0 msgid "Running" -msgstr "" +msgstr "Đang thực hiện" #. module: crm #: selection:crm.meeting,freq:0 msgid "Hours" -msgstr "" +msgstr "Giờ" #. module: crm #: field:crm.lead,zip:0 msgid "Zip" -msgstr "" +msgstr "Mã bưu chính" #. module: crm #: code:addons/crm/crm_lead.py:213 @@ -1839,7 +1839,7 @@ msgstr "" #. module: crm #: view:crm.installer:0 msgid "title" -msgstr "" +msgstr "danh xưng" #. module: crm #: model:crm.case.categ,name:crm.categ_phone1 @@ -1864,7 +1864,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Communication History" -msgstr "" +msgstr "Lịch sử trao đổi thông tin" #. module: crm #: selection:crm.meeting,show_as:0 @@ -1874,17 +1874,17 @@ msgstr "" #. module: crm #: view:crm.installer:0 msgid "Synchronization" -msgstr "" +msgstr "Đồng bộ" #. module: crm #: field:crm.case.section,allow_unlink:0 msgid "Allow Delete" -msgstr "" +msgstr "Cho phép Xóa" #. module: crm #: field:crm.meeting,mo:0 msgid "Mon" -msgstr "" +msgstr "Thứ Hai" #. module: crm #: selection:crm.lead,priority:0 @@ -1892,7 +1892,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Highest" -msgstr "" +msgstr "Cao nhất" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_categ_phone_incoming0 @@ -1906,14 +1906,14 @@ msgstr "" #. module: crm #: help:crm.meeting,recurrency:0 msgid "Recurrent Meeting" -msgstr "" +msgstr "Cuộc gặp lặp lại" #. module: crm #: view:crm.case.section:0 #: view:crm.lead:0 #: field:crm.lead,description:0 msgid "Notes" -msgstr "" +msgstr "Ghi chú" #. module: crm #: selection:crm.meeting,freq:0 @@ -1923,7 +1923,7 @@ msgstr "" #. module: crm #: field:crm.segmentation.line,expr_value:0 msgid "Value" -msgstr "" +msgstr "Giá trị" #. module: crm #: view:crm.lead:0 @@ -1935,7 +1935,7 @@ msgstr "" #: view:crm.lead:0 #: field:crm.lead,partner_name:0 msgid "Customer Name" -msgstr "" +msgstr "Tên Khách hàng" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_categ_meet @@ -2000,7 +2000,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Extra Info" -msgstr "" +msgstr "Thông tin bổ sung" #. module: crm #: view:crm.merge.opportunity:0 @@ -2017,7 +2017,7 @@ msgstr "" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall msgid "crm.phonecall" -msgstr "" +msgstr "crm.phonecall" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead3 @@ -2027,18 +2027,18 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Create" -msgstr "" +msgstr "Tạo" #. module: crm #: view:crm.lead:0 msgid "Dates" -msgstr "" +msgstr "Ngày" #. module: crm #: code:addons/crm/crm.py:492 #, python-format msgid "Send" -msgstr "" +msgstr "Gửi" #. module: crm #: view:crm.lead:0 @@ -2049,7 +2049,7 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,priority:0 msgid "Priority" -msgstr "" +msgstr "Độ ưu tiên" #. module: crm #: field:crm.segmentation,sales_purchase_active:0 @@ -2064,17 +2064,17 @@ msgstr "" #. module: crm #: field:crm.meeting,location:0 msgid "Location" -msgstr "" +msgstr "Địa điểm" #. module: crm #: view:crm.lead:0 msgid "Reply" -msgstr "" +msgstr "Phản hồi" #. module: crm #: selection:crm.meeting,freq:0 msgid "Weeks" -msgstr "" +msgstr "Tuần" #. module: crm #: model:process.node,note:crm.process_node_meeting0 @@ -2085,7 +2085,7 @@ msgstr "" #: code:addons/crm/crm.py:375 #, python-format msgid "Error !" -msgstr "" +msgstr "Lỗi !" #. module: crm #: model:ir.actions.act_window,help:crm.crm_meeting_categ_action @@ -2103,7 +2103,7 @@ msgstr "" #: view:crm.opportunity2phonecall:0 #: view:crm.phonecall2phonecall:0 msgid "Planned Date" -msgstr "" +msgstr "Ngày dự kiến" #. module: crm #: field:crm.meeting,base_calendar_url:0 @@ -2113,7 +2113,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Expected Revenues" -msgstr "" +msgstr "Doanh thu Dự kiến" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead6 @@ -2151,7 +2151,7 @@ msgstr "" #. module: crm #: help:crm.meeting,count:0 msgid "Repeat x times" -msgstr "" +msgstr "Lặp lại x lần" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_section_act @@ -2180,7 +2180,7 @@ msgstr "" #. module: crm #: field:crm.installer,outlook:0 msgid "MS-Outlook" -msgstr "" +msgstr "MS-Outlook" #. module: crm #: view:crm.phonecall:0 @@ -2201,7 +2201,7 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,month:0 msgid "Month" -msgstr "" +msgstr "Tháng" #. module: crm #: view:crm.lead:0 @@ -2209,7 +2209,7 @@ msgstr "" #: model:ir.ui.menu,name:crm.menu_crm_case_categ0_act_leads #: model:process.node,name:crm.process_node_leads0 msgid "Leads" -msgstr "" +msgstr "Các đầu mối" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_category_act_leads_all @@ -2230,19 +2230,19 @@ msgstr "" #: selection:crm.lead2partner,action:0 #: selection:crm.phonecall2partner,action:0 msgid "Create a new partner" -msgstr "" +msgstr "Tạo một đối tác mới" #. module: crm #: view:crm.meeting:0 #: view:res.partner:0 msgid "Start Date" -msgstr "" +msgstr "Ngày bắt đầu" #. module: crm #: selection:crm.phonecall,state:0 #: view:crm.phonecall.report:0 msgid "Todo" -msgstr "" +msgstr "Việc cần làm" #. module: crm #: view:crm.meeting:0 @@ -2252,7 +2252,7 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Decline" -msgstr "" +msgstr "Từ chối" #. module: crm #: help:crm.lead,optin:0 @@ -2269,7 +2269,7 @@ msgstr "" #: view:crm.add.note:0 #, python-format msgid "Note" -msgstr "" +msgstr "Ghi chú" #. module: crm #: constraint:res.users:0 @@ -2282,7 +2282,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Low" -msgstr "" +msgstr "Thấp" #. module: crm #: selection:crm.add.note,state:0 @@ -2296,7 +2296,7 @@ msgstr "" #: selection:crm.phonecall.report,state:0 #: selection:crm.send.mail,state:0 msgid "Closed" -msgstr "" +msgstr "Đã được đóng" #. module: crm #: view:crm.installer:0 @@ -2306,7 +2306,7 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_meet2 msgid "Internal Meeting" -msgstr "" +msgstr "Cuộc họp nội bộ" #. module: crm #: code:addons/crm/crm.py:411 @@ -2352,7 +2352,7 @@ msgstr "" #: field:crm.lead,phone:0 #: field:crm.phonecall,partner_phone:0 msgid "Phone" -msgstr "" +msgstr "Điện thoại" #. module: crm #: field:crm.case.section,active:0 @@ -2383,12 +2383,12 @@ msgstr "" #. module: crm #: selection:crm.segmentation.line,expr_operator:0 msgid ">" -msgstr "" +msgstr ">" #. module: crm #: view:crm.meeting:0 msgid "Uncertain" -msgstr "" +msgstr "Không chắc chắn" #. module: crm #: field:crm.send.mail,email_cc:0 @@ -2399,12 +2399,12 @@ msgstr "" #: view:crm.send.mail:0 #: model:ir.actions.act_window,name:crm.action_crm_send_mail msgid "Send Mail" -msgstr "" +msgstr "Gửi thư" #. module: crm #: selection:crm.meeting,freq:0 msgid "Months" -msgstr "" +msgstr "Tháng" #. module: crm #: help:crm.installer,wiki_sale_faq:0 @@ -2423,12 +2423,12 @@ msgstr "" #: field:crm.lead2partner,action:0 #: field:crm.phonecall2partner,action:0 msgid "Action" -msgstr "" +msgstr "Hành động" #. module: crm #: field:crm.installer,crm_claim:0 msgid "Claims" -msgstr "" +msgstr "Các khiếu nại" #. module: crm #: field:crm.segmentation,som_interval_decrease:0 @@ -2440,12 +2440,12 @@ msgstr "" #: view:crm.lead:0 #: view:crm.send.mail:0 msgid "Attachments" -msgstr "" +msgstr "Tập tin đính kèm" #. module: crm #: selection:crm.meeting,rrule_type:0 msgid "Weekly" -msgstr "" +msgstr "Hàng tuần" #. module: crm #: code:addons/crm/wizard/crm_send_email.py:72 @@ -2471,12 +2471,12 @@ msgstr "" #: selection:crm.meeting,state:0 #: selection:crm.phonecall,state:0 msgid "Done" -msgstr "" +msgstr "Hoàn tất" #. module: crm #: help:crm.meeting,interval:0 msgid "Repeat every (Days/Week/Month/Year)" -msgstr "" +msgstr "Lặp lại mỗi (Ngày/Tuần/Tháng/Năm)" #. module: crm #: field:crm.segmentation,som_interval_max:0 @@ -2501,17 +2501,17 @@ msgstr "" #: view:res.partner:0 #, python-format msgid "Open" -msgstr "" +msgstr "Mở" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Tuesday" -msgstr "" +msgstr "Thứ Ba" #. module: crm #: field:crm.lead,city:0 msgid "City" -msgstr "" +msgstr "Thành phố/Quận" #. module: crm #: selection:crm.meeting,show_as:0 @@ -2521,7 +2521,7 @@ msgstr "" #. module: crm #: field:crm.meeting,interval:0 msgid "Repeat every" -msgstr "" +msgstr "Lặp lại mỗi" #. module: crm #: field:crm.installer,crm_helpdesk:0 @@ -2571,7 +2571,7 @@ msgstr "" #. module: crm #: field:crm.lead,job_id:0 msgid "Main Job" -msgstr "" +msgstr "Công việc Chính" #. module: crm #: field:base.action.rule,trg_max_history:0 @@ -2588,7 +2588,7 @@ msgstr "" #: view:crm.meeting:0 #: field:crm.meeting,categ_id:0 msgid "Meeting Type" -msgstr "" +msgstr "Loại Cuộc họp" #. module: crm #: code:addons/crm/wizard/crm_lead_to_opportunity.py:312 @@ -2613,12 +2613,12 @@ msgstr "" #: view:crm.meeting:0 #: view:res.partner:0 msgid "End Date" -msgstr "" +msgstr "Ngày kết thúc" #. module: crm #: selection:crm.meeting,byday:0 msgid "Third" -msgstr "" +msgstr "Thứ ba" #. module: crm #: help:crm.segmentation,som_interval_max:0 @@ -2635,17 +2635,17 @@ msgstr "" #. module: crm #: field:crm.installer,thunderbird:0 msgid "Thunderbird" -msgstr "" +msgstr "Thunderbird" #. module: crm #: view:crm.lead.report:0 msgid "# of Emails" -msgstr "" +msgstr "SL Thư điện tử" #. module: crm #: view:crm.lead:0 msgid "Search Leads" -msgstr "" +msgstr "Tìm kiếm Đầu mối" #. module: crm #: view:crm.lead.report:0 @@ -2662,7 +2662,7 @@ msgstr "" #. module: crm #: field:crm.meeting,week_list:0 msgid "Weekday" -msgstr "" +msgstr "Ngày trong tuần" #. module: crm #: view:crm.lead:0 @@ -2677,7 +2677,7 @@ msgstr "" #. module: crm #: model:ir.model,name:crm.model_calendar_attendee msgid "Attendee information" -msgstr "" +msgstr "Thông tin Người tham dự" #. module: crm #: view:crm.segmentation:0 @@ -2723,14 +2723,14 @@ msgstr "" #: field:crm.meeting,date_action_last:0 #: field:crm.phonecall,date_action_last:0 msgid "Last Action" -msgstr "" +msgstr "Hành động Cuối cùng" #. module: crm #: field:crm.meeting,duration:0 #: field:crm.phonecall,duration:0 #: field:crm.phonecall.report,duration:0 msgid "Duration" -msgstr "" +msgstr "Thời lượng" #. module: crm #: field:crm.send.mail,reply_to:0 @@ -2765,12 +2765,12 @@ msgstr "" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Sunday" -msgstr "" +msgstr "Chủ nhật" #. module: crm #: selection:crm.meeting,byday:0 msgid "Fourth" -msgstr "" +msgstr "Thứ tư" #. module: crm #: selection:crm.add.note,state:0 @@ -2788,7 +2788,7 @@ msgstr "" #. module: crm #: field:crm.lead,fax:0 msgid "Fax" -msgstr "" +msgstr "Fax" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_category_act_oppor11 @@ -2809,7 +2809,7 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Assignment" -msgstr "" +msgstr "Phân công" #. module: crm #: field:crm.lead,company_id:0 @@ -2819,17 +2819,17 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,company_id:0 msgid "Company" -msgstr "" +msgstr "Công ty" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Friday" -msgstr "" +msgstr "Thứ Sáu" #. module: crm #: field:crm.meeting,allday:0 msgid "All Day" -msgstr "" +msgstr "Cả ngày" #. module: crm #: field:crm.segmentation.line,operator:0 @@ -2845,7 +2845,7 @@ msgstr "" #. module: crm #: field:crm.case.categ,object_id:0 msgid "Object Name" -msgstr "" +msgstr "Tên đối tượng" #. module: crm #: help:crm.lead,email_from:0 @@ -2872,14 +2872,14 @@ msgstr "" #. module: crm #: selection:crm.meeting,byday:0 msgid "Last" -msgstr "" +msgstr "Cuối cùng" #. module: crm #: field:crm.lead,message_ids:0 #: field:crm.meeting,message_ids:0 #: field:crm.phonecall,message_ids:0 msgid "Messages" -msgstr "" +msgstr "Các thông điệp" #. module: crm #: help:crm.case.stage,on_change:0 @@ -2899,7 +2899,7 @@ msgstr "Lỗi!" #: field:crm.opportunity2phonecall,name:0 #: field:crm.phonecall2phonecall,name:0 msgid "Call summary" -msgstr "" +msgstr "Tóm tắt cuộc gọi" #. module: crm #: selection:crm.add.note,state:0 @@ -2911,7 +2911,7 @@ msgstr "" #: selection:crm.phonecall.report,state:0 #: selection:crm.send.mail,state:0 msgid "Cancelled" -msgstr "" +msgstr "Đã hủy" #. module: crm #: field:crm.add.note,body:0 @@ -2933,12 +2933,12 @@ msgstr "" #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid " Month " -msgstr "" +msgstr " Tháng " #. module: crm #: view:crm.lead:0 msgid "Links" -msgstr "" +msgstr "Các liên kết" #. module: crm #: model:ir.actions.act_window,help:crm.crm_lead_categ_action @@ -2978,13 +2978,13 @@ msgstr "" #. module: crm #: view:crm.lead.report:0 msgid "# Mails" -msgstr "" +msgstr "SL Thư" #. module: crm #: code:addons/crm/wizard/crm_phonecall_to_opportunity.py:57 #, python-format msgid "Warning" -msgstr "" +msgstr "Cảnh báo" #. module: crm #: field:crm.phonecall,name:0 @@ -3015,7 +3015,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,state:0 msgid "Confirmed" -msgstr "" +msgstr "Đã xác nhận" #. module: crm #: help:crm.send.mail,email_cc:0 @@ -3027,12 +3027,12 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Confirm" -msgstr "" +msgstr "Xác nhận" #. module: crm #: field:crm.meeting,su:0 msgid "Sun" -msgstr "" +msgstr "Chủ Nhật" #. module: crm #: field:crm.phonecall.report,section_id:0 @@ -3042,7 +3042,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Total of Planned Revenue" -msgstr "" +msgstr "Tổng Kế hoạch Doanh thu" #. module: crm #: code:addons/crm/crm.py:375 @@ -3060,18 +3060,18 @@ msgstr "" #. module: crm #: selection:crm.meeting,select1:0 msgid "Day of month" -msgstr "" +msgstr "Ngày trong tháng" #. module: crm #: field:crm.lead2opportunity,probability:0 msgid "Success Rate (%)" -msgstr "" +msgstr "Tỉ lệ Thành công (%)" #. module: crm #: model:crm.case.stage,name:crm.stage_lead1 #: model:crm.case.stage,name:crm.stage_opportunity1 msgid "New" -msgstr "" +msgstr "Mới" #. module: crm #: view:crm.meeting:0 @@ -3084,7 +3084,7 @@ msgstr "" #: field:crm.meeting,email_from:0 #: field:crm.phonecall,email_from:0 msgid "Email" -msgstr "" +msgstr "Thư điện tử" #. module: crm #: view:crm.lead:0 @@ -3093,7 +3093,7 @@ msgstr "" #: field:crm.lead.report,channel_id:0 #: field:crm.phonecall,canal_id:0 msgid "Channel" -msgstr "" +msgstr "Kênh" #. module: crm #: model:ir.actions.act_window,name:crm.opportunity2phonecall_act @@ -3129,7 +3129,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,class:0 msgid "Confidential" -msgstr "" +msgstr "Bí mật" #. module: crm #: help:crm.meeting,date_deadline:0 @@ -3156,18 +3156,18 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor4 msgid "Need Information" -msgstr "" +msgstr "Cần thêm thông tin" #. module: crm #: model:process.transition,name:crm.process_transition_leadopportunity0 msgid "Prospect Opportunity" -msgstr "" +msgstr "Cơ hội Tiềm năng" #. module: crm #: view:crm.installer:0 #: model:ir.actions.act_window,name:crm.action_crm_installer msgid "CRM Application Configuration" -msgstr "" +msgstr "Cấu hình Ứng dụng CRM" #. module: crm #: field:base.action.rule,act_categ_id:0 @@ -3177,12 +3177,12 @@ msgstr "" #. module: crm #: view:crm.case.section:0 msgid "Configuration" -msgstr "" +msgstr "Cấu hình" #. module: crm #: field:crm.meeting,th:0 msgid "Thu" -msgstr "" +msgstr "Thứ Năm" #. module: crm #: view:crm.add.note:0 @@ -3199,7 +3199,7 @@ msgstr "" #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid " Month-1 " -msgstr "" +msgstr " Tháng-1 " #. module: crm #: help:crm.installer,sale_crm:0 @@ -3209,7 +3209,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,rrule_type:0 msgid "Daily" -msgstr "" +msgstr "Hàng ngày" #. module: crm #: model:crm.case.stage,name:crm.stage_lead2 @@ -3225,7 +3225,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,byday:0 msgid "First" -msgstr "" +msgstr "Đầu tiên" #. module: crm #: selection:crm.lead.report,month:0 @@ -3237,7 +3237,7 @@ msgstr "Tháng Mười hai" #. module: crm #: field:crm.installer,config_logo:0 msgid "Image" -msgstr "" +msgstr "Hình ảnh" #. module: crm #: view:base.action.rule:0 @@ -3264,19 +3264,19 @@ msgstr "" #. module: crm #: field:crm.meeting,vtimezone:0 msgid "Timezone" -msgstr "" +msgstr "Múi giờ" #. module: crm #: field:crm.lead2opportunity.partner,msg:0 #: field:crm.lead2partner,msg:0 #: view:crm.send.mail:0 msgid "Message" -msgstr "" +msgstr "Thông điệp" #. module: crm #: field:crm.meeting,sa:0 msgid "Sat" -msgstr "" +msgstr "Thứ Bảy" #. module: crm #: view:crm.lead:0 @@ -3284,7 +3284,7 @@ msgstr "" #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid "Salesman" -msgstr "" +msgstr "Nhân viên bán hàng" #. module: crm #: field:crm.lead,date_deadline:0 @@ -3309,7 +3309,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Partner Name" -msgstr "" +msgstr "Tên đối tác" #. module: crm #: model:crm.case.categ,name:crm.categ_phone2 @@ -3322,7 +3322,7 @@ msgstr "Gọi đi" #: field:crm.lead,date_open:0 #: field:crm.phonecall,date_open:0 msgid "Opened" -msgstr "" +msgstr "Đã mở" #. module: crm #: view:crm.case.section:0 @@ -3394,7 +3394,7 @@ msgstr "" #. module: crm #: field:crm.meeting,attendee_ids:0 msgid "Attendees" -msgstr "" +msgstr "Người tham dự" #. module: crm #: view:crm.meeting:0 @@ -3403,7 +3403,7 @@ msgstr "" #: model:process.node,name:crm.process_node_meeting0 #: model:res.request.link,name:crm.request_link_meeting msgid "Meeting" -msgstr "" +msgstr "Cuộc họp" #. module: crm #: model:ir.model,name:crm.model_crm_case_categ @@ -3414,7 +3414,7 @@ msgstr "" #: view:crm.lead:0 #: view:crm.phonecall:0 msgid "7 Days" -msgstr "" +msgstr "7 Ngày" #. module: crm #: view:board.board:0 @@ -3434,7 +3434,7 @@ msgstr "" #. module: crm #: field:crm.installer,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "Tiến trình cấu hình" #. module: crm #: selection:crm.lead,priority:0 @@ -3442,7 +3442,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Normal" -msgstr "" +msgstr "Bình thường" #. module: crm #: field:crm.lead,street2:0 @@ -3471,7 +3471,7 @@ msgstr "" #: field:crm.lead.report,user_id:0 #: field:crm.phonecall.report,user_id:0 msgid "User" -msgstr "" +msgstr "Người sử dụng" #. module: crm #: selection:crm.lead.report,month:0 @@ -3515,7 +3515,7 @@ msgstr "" #. module: crm #: model:process.process,name:crm.process_process_contractprocess0 msgid "Contract" -msgstr "" +msgstr "Hợp đồng" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead4 @@ -3529,17 +3529,17 @@ msgstr "" #: code:addons/crm/wizard/crm_send_email.py:270 #, python-format msgid "Error" -msgstr "" +msgstr "Lỗi" #. module: crm #: view:crm.lead.report:0 msgid "Planned Revenues" -msgstr "" +msgstr "Kế hoạch doanh thu" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor7 msgid "Need Consulting" -msgstr "" +msgstr "Cần Tư vấn" #. module: crm #: constraint:crm.segmentation:0 @@ -3567,7 +3567,7 @@ msgstr "" #. module: crm #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Bạn không thể có hai người sử dụng với cùng tên đăng nhập" #. module: crm #: code:addons/crm/wizard/crm_merge_opportunities.py:100 @@ -3581,7 +3581,7 @@ msgstr "" #: view:res.partner:0 #, python-format msgid "Close" -msgstr "" +msgstr "Ðóng" #. module: crm #: view:crm.lead:0 @@ -3608,18 +3608,18 @@ msgstr "" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Thursday" -msgstr "" +msgstr "Thứ Năm" #. module: crm #: view:crm.meeting:0 #: field:crm.send.mail,email_to:0 msgid "To" -msgstr "" +msgstr "Đến" #. module: crm #: selection:crm.meeting,class:0 msgid "Private" -msgstr "" +msgstr "Riêng" #. module: crm #: field:crm.lead,function:0 @@ -3645,7 +3645,7 @@ msgstr "" #: field:crm.segmentation,description:0 #: view:res.partner:0 msgid "Description" -msgstr "" +msgstr "Mô tả" #. module: crm #: field:base.action.rule,trg_section_id:0 @@ -3665,7 +3665,7 @@ msgstr "" #: field:res.partner,section_id:0 #: field:res.users,context_section_id:0 msgid "Sales Team" -msgstr "" +msgstr "Nhóm bán hàng" #. module: crm #: selection:crm.lead.report,month:0 @@ -3693,7 +3693,7 @@ msgstr "" #. module: crm #: field:crm.lead,street:0 msgid "Street" -msgstr "" +msgstr "Đường phố" #. module: crm #: view:crm.lead.report:0 @@ -3703,13 +3703,13 @@ msgstr "" #. module: crm #: field:crm.case.section,working_hours:0 msgid "Working Hours" -msgstr "" +msgstr "Giờ làm việc" #. module: crm #: view:crm.lead:0 #: field:crm.lead,is_customer_add:0 msgid "Customer" -msgstr "" +msgstr "Khách hàng" #. module: crm #: selection:crm.lead.report,month:0 @@ -3730,7 +3730,7 @@ msgstr "" #: model:crm.case.stage,name:crm.stage_opportunity6 #: view:crm.lead:0 msgid "Lost" -msgstr "" +msgstr "Thua" #. module: crm #: field:crm.lead,country_id:0 @@ -3750,7 +3750,7 @@ msgstr "" #. module: crm #: selection:crm.meeting,week_list:0 msgid "Wednesday" -msgstr "" +msgstr "Thứ Tư" #. module: crm #: selection:crm.lead.report,month:0 @@ -3762,7 +3762,7 @@ msgstr "Tháng Tư" #. module: crm #: field:crm.case.resource.type,name:0 msgid "Campaign Name" -msgstr "" +msgstr "Tên Chiến dịch" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall_report @@ -3777,13 +3777,13 @@ msgstr "" #. module: crm #: field:crm.meeting,select1:0 msgid "Option" -msgstr "" +msgstr "Tùy chọn" #. module: crm #: model:crm.case.stage,name:crm.stage_lead4 #: model:crm.case.stage,name:crm.stage_opportunity4 msgid "Negotiation" -msgstr "" +msgstr "Đàm phán" #. module: crm #: view:crm.lead:0 @@ -3794,17 +3794,17 @@ msgstr "" #: field:crm.case.stage,sequence:0 #: field:crm.meeting,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Trình tự" #. module: crm #: field:crm.send.mail,body:0 msgid "Message Body" -msgstr "" +msgstr "Thân Thư" #. module: crm #: view:crm.meeting:0 msgid "Accept" -msgstr "" +msgstr "Chấp nhận" #. module: crm #: field:crm.segmentation.line,expr_name:0 diff --git a/addons/hr/i18n/vi.po b/addons/hr/i18n/vi.po index b21680cd6a7..a9dceaca413 100644 --- a/addons/hr/i18n/vi.po +++ b/addons/hr/i18n/vi.po @@ -13,14 +13,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2010-11-22 07:23+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-05-04 19:00+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:31+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:40+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 @@ -165,7 +165,7 @@ msgstr "chung" #. module: hr #: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_married msgid "Married" -msgstr "" +msgstr "Đã kết hôn" #. module: hr #: constraint:hr.employee:0 @@ -189,7 +189,7 @@ msgstr "" #. module: hr #: view:hr.employee:0 msgid "Position" -msgstr "" +msgstr "Chức vụ" #. module: hr #: model:ir.actions.act_window,name:hr.action2 @@ -212,7 +212,7 @@ msgstr "" #. module: hr #: field:hr.employee,identification_id:0 msgid "Identification No" -msgstr "" +msgstr "Số CMND" #. module: hr #: field:hr.job,no_of_employee:0 @@ -233,7 +233,7 @@ msgstr "" #. module: hr #: field:hr.installer,hr_evaluation:0 msgid "Periodic Evaluations" -msgstr "" +msgstr "Đánh giá Định kỳ" #. module: hr #: field:hr.installer,hr_timesheet_sheet:0 @@ -314,12 +314,12 @@ msgstr "Báo cáo" #. module: hr #: model:ir.model,name:hr.model_ir_actions_act_window msgid "ir.actions.act_window" -msgstr "" +msgstr "ir.actions.act_window" #. module: hr #: model:ir.actions.act_window,name:hr.open_board_hr msgid "Human Resources Dashboard" -msgstr "" +msgstr "Bảng điều khiển Nguồn nhân lực" #. module: hr #: view:hr.employee:0 @@ -359,7 +359,7 @@ msgstr "" #. module: hr #: help:hr.employee,sinid:0 msgid "Social Insurance Number" -msgstr "" +msgstr "Số BHXH" #. module: hr #: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_divorced @@ -403,7 +403,7 @@ msgstr "Nam" #. module: hr #: field:hr.installer,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "Tiến trình cấu hình" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_categ_form @@ -420,12 +420,12 @@ msgstr "Loại nhân viên" #. module: hr #: field:hr.installer,config_logo:0 msgid "Image" -msgstr "" +msgstr "Hình ảnh" #. module: hr #: model:process.process,name:hr.process_process_employeecontractprocess0 msgid "Employee Contract" -msgstr "" +msgstr "Hợp đồng Lao động" #. module: hr #: help:hr.installer,hr_evaluation:0 @@ -447,7 +447,7 @@ msgstr "" #. module: hr #: field:hr.installer,hr_recruitment:0 msgid "Recruitment Process" -msgstr "" +msgstr "Quy trình tuyển dụng" #. module: hr #: field:hr.employee,category_ids:0 @@ -508,7 +508,7 @@ msgstr "Trạng thái" #. module: hr #: view:hr.installer:0 msgid "Configure" -msgstr "" +msgstr "Cấu hình" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_categ_tree @@ -519,7 +519,7 @@ msgstr "Cấu trúc hạng mục" #. module: hr #: field:hr.employee,partner_id:0 msgid "unknown" -msgstr "" +msgstr "không rõ" #. module: hr #: field:hr.installer,hr_holidays:0 @@ -583,7 +583,7 @@ msgstr "" #. module: hr #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Bạn không thể có hai người sử dụng với cùng tên đăng nhập" #. module: hr #: view:hr.job:0 @@ -613,12 +613,12 @@ msgstr "" #. module: hr #: field:hr.employee,photo:0 msgid "Photo" -msgstr "" +msgstr "Ảnh" #. module: hr #: model:ir.model,name:hr.model_res_users msgid "res.users" -msgstr "" +msgstr "res.users" #. module: hr #: field:hr.installer,hr_payroll_account:0 @@ -633,12 +633,12 @@ msgstr "Thông tin cá nhân" #. module: hr #: field:hr.employee,passport_id:0 msgid "Passport No" -msgstr "" +msgstr "Số Hộ chiếu" #. module: hr #: view:res.users:0 msgid "Current Activity" -msgstr "" +msgstr "Hoạt động hiện tại" #. module: hr #: help:hr.installer,hr_expense:0 @@ -650,7 +650,7 @@ msgstr "" #. module: hr #: view:hr.job:0 msgid "Current" -msgstr "" +msgstr "Hiện tại" #. module: hr #: field:hr.department,parent_id:0 @@ -677,7 +677,7 @@ msgstr "Tham dự" #: view:hr.employee.marital.status:0 #: view:hr.job:0 msgid "Description" -msgstr "" +msgstr "Mô tả" #. module: hr #: help:hr.installer,hr_contract:0 @@ -692,12 +692,12 @@ msgstr "" #. module: hr #: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_single msgid "Single" -msgstr "" +msgstr "Chưa kết hôn" #. module: hr #: field:hr.job,name:0 msgid "Job Name" -msgstr "" +msgstr "Tên công việc" #. module: hr #: view:hr.job:0 @@ -708,7 +708,7 @@ msgstr "" #. module: hr #: field:hr.employee,mobile_phone:0 msgid "Mobile" -msgstr "" +msgstr "Số di động" #. module: hr #: view:hr.department:0 @@ -730,7 +730,7 @@ msgstr "Ghi chú" #. module: hr #: model:ir.model,name:hr.model_hr_installer msgid "hr.installer" -msgstr "" +msgstr "hr.installer" #. module: hr #: view:board.board:0 @@ -740,13 +740,13 @@ msgstr "" #. module: hr #: field:hr.employee,resource_id:0 msgid "Resource" -msgstr "" +msgstr "Nguồn lực" #. module: hr #: view:hr.installer:0 #: model:ir.actions.act_window,name:hr.action_hr_installer msgid "Human Resources Application Configuration" -msgstr "" +msgstr "Cấu hình Ứng dụng Nguồn Nhân lực" #. module: hr #: field:hr.employee,gender:0 @@ -767,7 +767,7 @@ msgstr "Nhân viên" #. module: hr #: field:hr.employee,bank_account_id:0 msgid "Bank Account" -msgstr "" +msgstr "Tài khoản ngân hàng" #. module: hr #: field:hr.department,name:0 @@ -777,7 +777,7 @@ msgstr "Tên phòng/ban" #. module: hr #: help:hr.employee,ssnid:0 msgid "Social Security Number" -msgstr "" +msgstr "Số An sinh Xã hội" #. module: hr #: model:process.node,note:hr.process_node_openerpuser0 diff --git a/addons/sale/i18n/vi.po b/addons/sale/i18n/vi.po index d5e8725a172..53be86ad82e 100644 --- a/addons/sale/i18n/vi.po +++ b/addons/sale/i18n/vi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-02-23 17:49+0000\n" -"Last-Translator: Anhnv Vinabis \n" +"PO-Revision-Date: 2011-05-04 19:22+0000\n" +"Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-04-29 05:16+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:40+0000\n" +"X-Generator: Launchpad (build 12959)\n" #, python-format #~ msgid "" @@ -521,7 +521,7 @@ msgstr "Tháng Ba" #. module: sale #: help:sale.order,amount_total:0 msgid "The total amount." -msgstr "" +msgstr "Tổng số tiền." #. module: sale #: field:sale.order.line,price_subtotal:0 @@ -739,7 +739,7 @@ msgstr "" #. module: sale #: view:sale.order:0 msgid "Create Final Invoice" -msgstr "" +msgstr "Tạo Hoá đơn cuối cùng" #. module: sale #: field:sale.order,partner_shipping_id:0 @@ -845,7 +845,7 @@ msgstr "Số lượng" #. module: sale #: view:sale.order:0 msgid "References" -msgstr "" +msgstr "Các tham chiếu" #. module: sale #: model:process.transition.action,name:sale.process_transition_action_cancel0 @@ -971,7 +971,7 @@ msgstr "" #. module: sale #: field:sale.installer,delivery:0 msgid "Delivery Costs" -msgstr "" +msgstr "Chi phí giao hàng" #. module: sale #: view:sale.order:0 @@ -1094,7 +1094,7 @@ msgstr "" #: view:sale.make.invoice:0 #: view:sale.order.line.make.invoice:0 msgid "Create Invoices" -msgstr "" +msgstr "Tạo các hóa đơn" #. module: sale #: view:sale.order:0 @@ -1197,7 +1197,7 @@ msgstr "Chờ kế toán viên xem xét" #: view:sale.report:0 #: field:sale.report,uom_name:0 msgid "Reference UoM" -msgstr "" +msgstr "ĐVĐ Tham chiếu" #. module: sale #: model:ir.model,name:sale.model_sale_order_line_make_invoice @@ -1281,7 +1281,7 @@ msgstr "Hoàn thành" #. module: sale #: model:ir.model,name:sale.model_sale_installer msgid "sale.installer" -msgstr "" +msgstr "sale.installer" #. module: sale #: model:process.node,name:sale.process_node_invoice0 @@ -1310,7 +1310,7 @@ msgstr "" #. module: sale #: view:sale.order.line:0 msgid "To Do" -msgstr "" +msgstr "Cần thực hiện" #. module: sale #: field:sale.order,picking_policy:0 @@ -1406,7 +1406,7 @@ msgstr "Đơn vị đo của sản phẩm" #. module: sale #: view:sale.order:0 msgid "Logistic" -msgstr "" +msgstr "Giao nhận" #. module: sale #: view:sale.order.line:0 @@ -1449,12 +1449,12 @@ msgstr "Trạng thái" #. module: sale #: view:sale.config.picking_policy:0 msgid "res_config_contents" -msgstr "" +msgstr "res_config_contents" #. module: sale #: field:sale.order,client_order_ref:0 msgid "Customer Reference" -msgstr "" +msgstr "Tham chiếu của Khách hàng" #. module: sale #: field:sale.order,amount_total:0 @@ -1507,12 +1507,12 @@ msgstr "" #: field:sale.report,company_id:0 #: field:sale.shop,company_id:0 msgid "Company" -msgstr "" +msgstr "Công ty" #. module: sale #: field:sale.make.invoice,invoice_date:0 msgid "Invoice Date" -msgstr "" +msgstr "Ngày Hóa đơn" #. module: sale #: help:sale.advance.payment.inv,amount:0 @@ -1804,7 +1804,7 @@ msgstr "" #: field:sale.config.picking_policy,progress:0 #: field:sale.installer,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "Tiến trình cấu hình" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_line_product_tree @@ -1814,7 +1814,7 @@ msgstr "Bán sản phẩm" #. module: sale #: field:sale.order,date_order:0 msgid "Ordered Date" -msgstr "" +msgstr "Ngày Đặt hàng" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_form @@ -1939,7 +1939,7 @@ msgstr "Đóng" #. module: sale #: field:sale.order,shipped:0 msgid "Delivered" -msgstr "" +msgstr "Đã giao hàng" #. module: sale #: code:addons/sale/sale.py:1115 @@ -2031,7 +2031,7 @@ msgstr "" #: view:sale.order:0 #: view:sale.order.line:0 msgid "Search Sales Order" -msgstr "" +msgstr "Tìm kiếm Đơn hàng" #. module: sale #: model:process.node,name:sale.process_node_saleorderprocurement0 @@ -2075,7 +2075,7 @@ msgstr "Chọn" #: view:sale.report:0 #: field:sale.report,year:0 msgid "Year" -msgstr "" +msgstr "Năm" #. module: sale #: selection:sale.config.picking_policy,order_policy:0 diff --git a/addons/stock/i18n/zh_CN.po b/addons/stock/i18n/zh_CN.po index 0d5a4605549..2d8e2e97fa4 100644 --- a/addons/stock/i18n/zh_CN.po +++ b/addons/stock/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-05-03 13:12+0000\n" +"PO-Revision-Date: 2011-05-04 10:26+0000\n" "Last-Translator: openerp-china.Black Jack \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: 2011-05-04 04:36+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:39+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: stock #: field:product.product,track_outgoing:0 @@ -47,7 +47,7 @@ msgstr "放到新托盘" #. module: stock #: field:stock.move.split.lines,action:0 msgid "Action" -msgstr "操作" +msgstr "动作" #. module: stock #: view:stock.production.lot:0 @@ -850,7 +850,7 @@ msgstr "凭证簿" #: code:addons/stock/stock.py:1315 #, python-format msgid "is scheduled %s." -msgstr "是日程安排 %s" +msgstr "是已计划安排 %s" #. module: stock #: help:stock.picking,location_id:0 diff --git a/addons/stock_location/i18n/zh_CN.po b/addons/stock_location/i18n/zh_CN.po index d8fdbdd292e..9ff6f230169 100644 --- a/addons/stock_location/i18n/zh_CN.po +++ b/addons/stock_location/i18n/zh_CN.po @@ -7,25 +7,25 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-01-27 01:25+0000\n" -"Last-Translator: Wei \"oldrev\" Li \n" +"PO-Revision-Date: 2011-05-04 10:22+0000\n" +"Last-Translator: openerp-china.Black Jack \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: 2011-04-29 05:37+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:40+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: stock_location #: selection:product.pulled.flow,picking_type:0 #: selection:stock.location.path,picking_type:0 msgid "Sending Goods" -msgstr "发送商品" +msgstr "送货" #. module: stock_location #: view:product.product:0 msgid "Pulled Paths" -msgstr "" +msgstr "拉式路径" #. module: stock_location #: selection:product.pulled.flow,type_proc:0 @@ -35,7 +35,7 @@ msgstr "调拨" #. module: stock_location #: model:ir.model,name:stock_location.model_stock_location_path msgid "Pushed Flows" -msgstr "" +msgstr "推式流程" #. module: stock_location #: selection:stock.location.path,auto:0 @@ -50,18 +50,18 @@ msgstr "参数" #. module: stock_location #: field:stock.location.path,location_from_id:0 msgid "Source Location" -msgstr "源库位" +msgstr "来源存货地点" #. module: stock_location #: help:product.pulled.flow,cancel_cascade:0 msgid "Allow you to cancel moves related to the product pull flow" -msgstr "" +msgstr "允许您取消推式流程相关的调拨" #. module: stock_location #: model:ir.model,name:stock_location.model_product_pulled_flow #: field:product.product,flow_pull_ids:0 msgid "Pulled Flows" -msgstr "" +msgstr "推式流程" #. module: stock_location #: constraint:stock.move:0 @@ -71,7 +71,7 @@ msgstr "您必须为此产品赋予一个生产批次" #. module: stock_location #: help:product.pulled.flow,location_src_id:0 msgid "Location used by Destination Location to supply" -msgstr "" +msgstr "存货地点用在目标存货地点" #. module: stock_location #: selection:product.pulled.flow,picking_type:0 @@ -85,12 +85,12 @@ msgstr "内部" msgid "" "Pulled procurement coming from original location %s, pull rule %s, via " "original Procurement %s (#%d)" -msgstr "" +msgstr "拉式需求开始与来源存货地点 %s,拉式的规则 %s,通过源需求 %s (#%d)" #. module: stock_location #: model:ir.model,name:stock_location.model_stock_location msgid "Location" -msgstr "库位" +msgstr "存货地点" #. module: stock_location #: field:product.pulled.flow,invoice_state:0 @@ -101,7 +101,7 @@ msgstr "发票状态" #. module: stock_location #: help:product.pulled.flow,name:0 msgid "This field will fill the packing Origin and the name of its moves" -msgstr "" +msgstr "这字段填入源装箱单和它的调拨单名称." #. module: stock_location #: help:stock.location.path,auto:0 @@ -113,13 +113,15 @@ msgid "" "move has to be validated by a worker. With 'Automatic No Step Added', the " "location is replaced in the original move." msgstr "" -"这些规则确定了产品在库位树中的正确移动路径.\n" -"‘自动调拨’ 将创建库存调拨后自动确认. ‘手动操作’ 库存调拨需要人工确认. ‘自动不加入步骤’ 库位是取代调拨源库位." +"这些规则确定了产品在存货地点树中的正确移动路径.\n" +"‘自动调拨’ 将在创建仓库调拨后自动确认.\n" +" ‘手动操作’ 库存调拨需要人工确认.\n" +" ‘自动不加入步骤’ 存货地点取代调拨的来源存货地点." #. module: stock_location #: model:ir.module.module,shortdesc:stock_location.module_meta_information msgid "Warehouse Locations Paths" -msgstr "库位路径" +msgstr "仓库存货地点路径" #. module: stock_location #: view:product.product:0 @@ -149,7 +151,7 @@ msgstr "购买" #. module: stock_location #: view:product.product:0 msgid "Pushed flows" -msgstr "" +msgstr "推式流程" #. module: stock_location #: model:stock.location,name:stock_location.location_dispatch_zone @@ -164,7 +166,7 @@ msgstr "库存调拨" #. module: stock_location #: view:product.product:0 msgid "Pulled flows" -msgstr "" +msgstr "拉式流程" #. module: stock_location #: field:product.pulled.flow,company_id:0 @@ -180,7 +182,7 @@ msgstr "物流" #. module: stock_location #: help:stock.move,cancel_cascade:0 msgid "If checked, when this move is cancelled, cancel the linked move too" -msgstr "" +msgstr "如果选择,在取消这调拨时,也取消与它相关的调拨." #. module: stock_location #: selection:product.pulled.flow,type_proc:0 @@ -300,6 +302,38 @@ msgid "" "from Gate A\n" " " msgstr "" +"\n" +"这模块对库存管理增加推拉流程的应用.\n" +"它主要用在:\n" +"* 管理产品的连锁生产.\n" +"* 管理每个产品的默认存货地点.\n" +"* 根据商业需要定义您的仓库路线如:\n" +" -质量控制\n" +" -售后服务\n" +" -供应商退货\n" +"* 帮助租贷管理,为租用的产品自动生成退还调拨.\n" +"\n" +"一旦安装这个模块,在产品那增加一个tab,您可以加入推拉流程的规范,以产品cpu1为例:\n" +"\n" +"推式流程\n" +"在某些产品到达某一规划存货地点它将调拨到另一个存货地点,当然这需要经过一段时间.\n" +"原来的系统已支持这种推式的操作(它叫连锁存货地点)但它不能精确到对每一个产品.\n" +"一个推式流程需要指定相对应的连锁存货地点和一些参数如: " +"指定源存货地点的产品数量,连锁调拨是自动按流程规划的参数产生(目标存货地点,耽搁,调拨的类型,凭证簿等),这些调拨可以自动处理也可根据参数人手确认.\n" +"\n" +"拉式流程\n" +"它不同与推式流程,从某种意义上说它是不相关产品的调拨,但它是相关需求处理的一部分.\n" +"一个典型的例子:\n" +"[ 客户 ] <- A - [ 卖场 ] <- B - [ 库存 ] <~ C ~ [ 供应商 ]\n" +"当有一个需求单(销售单确认要A),来到卖场转化为B(通过推式流程\"调拨\"),再转化为对供应商C的采购订单(推式流程为采购).\n" +"技术上拉式流程允许您处理不同的需求单,它不仅取决您要什么产品,还要看是哪个存货地点需要这产品.\n" +"\n" +"案例:\n" +" CPU1: 在商店1您销售CPU1并运行计划表(scheduler).\n" +" - 仓库送货单,商店1:收货. \n" +" CPU3: 产品收货时放在货架2 做来料质量检测的临时存货地点.\n" +" 当给客户送货时: 包装列表 -> 装箱单 -> 送货单.\n" +" " #. module: stock_location #: field:product.pulled.flow,type_proc:0 @@ -309,7 +343,7 @@ msgstr "需求类型" #. module: stock_location #: help:product.pulled.flow,company_id:0 msgid "Is used to know to which company belong packings and moves" -msgstr "" +msgstr "它用来知道属于哪个公司的装箱单和调拨" #. module: stock_location #: field:product.pulled.flow,name:0 @@ -320,7 +354,7 @@ msgstr "名称" #: help:product.product,path_ids:0 msgid "" "These rules set the right path of the product in the whole location tree." -msgstr "这些规则确定了产品在整个库位树的正确路径" +msgstr "这些规则确定了产品在整个存货地点树的正确路径" #. module: stock_location #: selection:stock.location.path,auto:0 @@ -355,7 +389,7 @@ msgstr "按库存生产: 在仓库或等待重新供应时得到需求。按订 #. module: stock_location #: help:product.pulled.flow,location_id:0 msgid "Is the destination location that needs supplying" -msgstr "" +msgstr "需要提供目标存货地点" #. module: stock_location #: field:stock.location.path,product_id:0 @@ -366,7 +400,7 @@ msgstr "产品" #: code:addons/stock_location/procurement_pull.py:118 #, python-format msgid "Pulled from another location via procurement %d" -msgstr "" +msgstr "通过需求%d 拉到另一个存货地点" #. module: stock_location #: model:stock.location,name:stock_location.stock_location_qualitytest0 @@ -377,7 +411,7 @@ msgstr "质量控制" #: selection:product.pulled.flow,invoice_state:0 #: selection:stock.location.path,invoice_state:0 msgid "Not Applicable" -msgstr "" +msgstr "无效" #. module: stock_location #: field:stock.location.path,delay:0 @@ -390,12 +424,12 @@ msgstr "延期(天)" msgid "" "Picking for pulled procurement coming from original location %s, pull rule " "%s, via original Procurement %s (#%d)" -msgstr "" +msgstr "拉式装箱单来自来源存货地点 %s,拉式规则 %s,通过原来的需求 %s (#%d)" #. module: stock_location #: field:product.product,path_ids:0 msgid "Pushed Flow" -msgstr "" +msgstr "推式流程" #. module: stock_location #: code:addons/stock_location/procurement_pull.py:89 @@ -403,7 +437,7 @@ msgstr "" msgid "" "Move for pulled procurement coming from original location %s, pull rule %s, " "via original Procurement %s (#%d)" -msgstr "" +msgstr "拉式调拨需求来自源存货地点 %s,拉式规则 %s,通过原来的需求 %s (#%d)" #. module: stock_location #: constraint:stock.move:0 @@ -413,12 +447,12 @@ msgstr "您尝试为另外的产品赋予批次" #. module: stock_location #: model:ir.model,name:stock_location.model_procurement_order msgid "Procurement" -msgstr "请料单" +msgstr "需求单" #. module: stock_location #: field:stock.location.path,location_dest_id:0 msgid "Destination Location" -msgstr "目标库位" +msgstr "目标存货地点" #. module: stock_location #: field:stock.location.path,auto:0 @@ -448,12 +482,12 @@ msgstr "错误:无效的(EAN)条码" msgid "" "Depending on the company, choose whatever you want to receive or send " "products" -msgstr "" +msgstr "根据公司,选择您是收货还是发货" #. module: stock_location #: model:stock.location,name:stock_location.location_order msgid "Order Processing" -msgstr "" +msgstr "订单处理" #. module: stock_location #: field:stock.location.path,name:0 @@ -465,19 +499,19 @@ msgstr "操作" #: field:product.product,path_ids:0 #: view:stock.location.path:0 msgid "Location Paths" -msgstr "库位路径" +msgstr "存货地点路径" #. module: stock_location #: field:product.pulled.flow,journal_id:0 #: field:stock.location.path,journal_id:0 msgid "Journal" -msgstr "" +msgstr "凭证簿" #. module: stock_location #: field:product.pulled.flow,cancel_cascade:0 #: field:stock.move,cancel_cascade:0 msgid "Cancel Cascade" -msgstr "" +msgstr "取消级联" #. module: stock_location #: selection:product.pulled.flow,invoice_state:0 diff --git a/addons/stock_planning/i18n/zh_CN.po b/addons/stock_planning/i18n/zh_CN.po index db9fd8dc2a3..4c7a16c7287 100644 --- a/addons/stock_planning/i18n/zh_CN.po +++ b/addons/stock_planning/i18n/zh_CN.po @@ -8,21 +8,21 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-05-03 15:22+0000\n" +"PO-Revision-Date: 2011-05-05 03:45+0000\n" "Last-Translator: openerp-china.Black Jack \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-04 04:36+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-05-05 04:40+0000\n" +"X-Generator: Launchpad (build 12959)\n" #. module: stock_planning #: code:addons/stock_planning/wizard/stock_planning_createlines.py:73 #, python-format msgid "" "No forecasts for selected period or no products in selected category !" -msgstr "" +msgstr "选定的期间没预计,选定的类别没产品!" #. module: stock_planning #: help:stock.planning,stock_only:0 @@ -30,92 +30,92 @@ msgid "" "Check to calculate stock location of selected warehouse only. If not " "selected calculation is made for input, stock and output location of " "warehouse." -msgstr "" +msgstr "对选定的仓库检测核算库存存货地点,如果没选定核算的方式是仓库的入库,出仓的存货地点." #. module: stock_planning #: field:stock.planning,maximum_op:0 msgid "Maximum Rule" -msgstr "" +msgstr "最大库存规则" #. module: stock_planning #: field:stock.sale.forecast,analyzed_period1_per_company:0 msgid "This Copmany Period1" -msgstr "" +msgstr "公司期间1" #. module: stock_planning #: view:stock.planning:0 #: view:stock.sale.forecast:0 msgid "Group By..." -msgstr "" +msgstr "分组..." #. module: stock_planning #: help:stock.sale.forecast,product_amt:0 msgid "" "Forecast value which will be converted to Product Quantity according to " "prices." -msgstr "" +msgstr "估值将为价格乘于产品数量." #. module: stock_planning #: code:addons/stock_planning/stock_planning.py:621 #: code:addons/stock_planning/stock_planning.py:663 #, python-format msgid "Incoming Left must be greater than 0 !" -msgstr "" +msgstr "输入必须大于0!" #. module: stock_planning #: help:stock.planning,outgoing_before:0 msgid "" "Planned Out in periods before calculated. Between start date of current " "period and one day before start of calculated period." -msgstr "" +msgstr "计划在计算后,在当前期间的开始时间和计算期间之后的某天." #. module: stock_planning #: code:addons/stock_planning/wizard/stock_planning_forecast.py:59 #, python-format msgid "No products in selected category !" -msgstr "" +msgstr "在选定的类别没产品!" #. module: stock_planning #: help:stock.sale.forecast.createlines,warehouse_id:0 msgid "" "Warehouse which forecasts will concern. If during stock planning you will " "need sales forecast for all warehouses choose any warehouse now." -msgstr "" +msgstr "关注仓库的预计.如果在库存计划期间您需要在所有仓库中选择一个当前仓库的销售预计." #. module: stock_planning #: field:stock.planning,outgoing_left:0 msgid "Expected Out" -msgstr "" +msgstr "预计出仓" #. module: stock_planning #: view:stock.sale.forecast:0 msgid " " -msgstr "" +msgstr " " #. module: stock_planning #: field:stock.planning,incoming_left:0 msgid "Incoming Left" -msgstr "" +msgstr "输入" #. module: stock_planning #: view:stock.planning:0 msgid "Requisition history" -msgstr "" +msgstr "请求日志" #. module: stock_planning #: view:stock.sale.forecast.createlines:0 msgid "Create Forecasts Lines" -msgstr "" +msgstr "创建预计明细" #. module: stock_planning #: help:stock.planning,outgoing:0 msgid "Quantity of all confirmed outgoing moves in calculated Period." -msgstr "" +msgstr "在计算期间所有确认的出仓调拨数量" #. module: stock_planning #: view:stock.period.createlines:0 msgid "Create Daily Periods" -msgstr "" +msgstr "创建每天的周期" #. module: stock_planning #: view:stock.planning:0 @@ -125,7 +125,7 @@ msgstr "" #: field:stock.sale.forecast,company_id:0 #: field:stock.sale.forecast.createlines,company_id:0 msgid "Company" -msgstr "" +msgstr "公司" #. module: stock_planning #: code:addons/stock_planning/stock_planning.py:640 @@ -135,51 +135,53 @@ msgid "" "\n" " Initial Stock: " msgstr "" +"\n" +" 初始仓库: " #. module: stock_planning #: help:stock.planning,warehouse_forecast:0 msgid "" "All sales forecasts for selected Warehouse of selected Product during " "selected Period." -msgstr "" +msgstr "在选定的期间所选定的仓库里指定产品的所有销售预计." #. module: stock_planning #: model:ir.ui.menu,name:stock_planning.menu_stock_period_creatlines msgid "Create Stock and Sales Periods" -msgstr "" +msgstr "创建库存和销售周期" #. module: stock_planning #: view:stock.planning:0 msgid "Minimum Stock Rule Indicators" -msgstr "" +msgstr "最小库存规则标识" #. module: stock_planning #: help:stock.sale.forecast.createlines,period_id:0 msgid "Period which forecasts will concern." -msgstr "" +msgstr "期间的预计将被关注" #. module: stock_planning #: field:stock.planning,stock_only:0 msgid "Stock Location Only" -msgstr "" +msgstr "只有库存存货地点" #. module: stock_planning #: help:stock.planning,already_out:0 msgid "" "Quantity which is already dispatched out of this warehouse in current period." -msgstr "" +msgstr "本期这仓库已派件出去的数量" #. module: stock_planning #: help:stock.planning,procure_to_stock:0 msgid "" "Chect to make procurement to stock location of selected warehouse. If not " "selected procurement will be made into input location of warehouse." -msgstr "" +msgstr "选择指定仓库需求的存货地点,如果不选择需求将用这仓库的入库存货地点." #. module: stock_planning #: view:stock.planning:0 msgid "Current Period Situation" -msgstr "" +msgstr "本期状况" #. module: stock_planning #: view:stock.period.createlines:0 @@ -191,7 +193,7 @@ msgstr "创建月度" msgid "" "Warehouse used as source in supply pick move created by 'Supply from Another " "Warhouse'." -msgstr "" +msgstr "仓库作为调拨的起点." #. module: stock_planning #: model:ir.model,name:stock_planning.model_stock_period_createlines From df85c026193d15465364194bb52ac08f040fe3ba Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Thu, 5 May 2011 11:16:31 +0530 Subject: [PATCH 14/17] [FIX]stock:Field name does not exist when export data from physiacal inventory lp bug: https://launchpad.net/bugs/774057 fixed bzr revid: ron@tinyerp.com-20110505054631-k5qzt5pizfhwp1qk --- addons/stock/stock.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 8e60ba9ab50..2d516f1a8a5 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -2623,6 +2623,7 @@ stock_inventory() class stock_inventory_line(osv.osv): _name = "stock.inventory.line" _description = "Inventory Line" + _rec_name = "inventory_id" _columns = { 'inventory_id': fields.many2one('stock.inventory', 'Inventory', ondelete='cascade', select=True), 'location_id': fields.many2one('stock.location', 'Location', required=True), From 3e4c8c38da7754aba8eabb81f80946b09bfbbcd0 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 5 May 2011 08:31:50 +0200 Subject: [PATCH 15/17] [IMP] cleanup CSS bzr revid: xmo@openerp.com-20110505063150-3jvolxw42i3dwk3w --- addons/base/static/src/css/base.css | 62 ++++++++++++----------------- 1 file changed, 26 insertions(+), 36 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 43021e32bc6..0ca1c995b33 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -1,8 +1,8 @@ -/* TODO: seperate openerp webclient page css from openerp views css */ +/* TODO: separate openerp web client page css from openerp views css */ body { padding: 0; margin: 0; - font-family: helvetica, sans, arial; + font-family: helvetica, arial, sans-serif; font-size: 80%; } @@ -85,7 +85,7 @@ body.openerp { /* Menu */ .openerp .sf-menu { - margin-bottom: 0px; + margin-bottom: 0; } /* .sf-menu a { @@ -169,10 +169,9 @@ body.openerp { border: none; } .openerp .secondary_menu h4 { - padding: 0 0 2px; + padding: 0 0 2px 10px; border: none; background: none; - padding-left: 10px; } .openerp .secondary_menu h3 span, .openerp .secondary_menu h4 span { left: 0 !important; @@ -224,10 +223,9 @@ body.openerp { margin-right: 10px; line-height: 63px; text-align: center; - border-bottom: 1px solid black; - border-right: 1px solid black; - border-top: 1px solid white; - border-left: 1px solid white; + border: 1px solid white; + border-right-color: black; + border-bottom-color: black; background: #FFFFFF; background: -moz-linear-gradient(top, #FFFFFF 0%, #CECECE 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(100%,#CECECE)); @@ -301,7 +299,6 @@ body.openerp { right: 0; top: 5px; padding: 1px 4px 2px; - background: #333; background: rgba(0, 0, 0, 0.75); border-radius: 7px; -moz-border-radius: 7px; @@ -316,9 +313,9 @@ body.openerp { overflow: hidden; padding: 5px 0; position: relative; - -moz-box-shadow: inset 0px 3px 5px rgba(0, 0, 0, 0.4); - -webkit-box-shadow: inset 0px 3px 5px rgba(0, 0, 0, 0.4); - box-shadow: inset 0px 3px 5px rgba(0, 0, 0, 0.4); + -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.4); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.4); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.4); } .openerp div.oe_footer p.oe_footer_powered { left: 50%; @@ -337,7 +334,7 @@ body.openerp { /* Main Application */ .openerp .oe-application { - padding: 0px; + padding: 0; height: 100%; } @@ -380,7 +377,7 @@ body.openerp { background: #AAAAAA; } .openerp .filter_icon { - padding: 1px 2px 0px 2px; + padding: 1px 2px 0 2px; margin-left: 0; margin-right: 0; } @@ -544,17 +541,17 @@ body.openerp { /* Notebook */ .openerp .oe_form_notebook { - padding: 0px; + padding: 0; background: none; - border-width: 0px; + border-width: 0; } .openerp .oe_form_notebook ul.ui-tabs-nav { - padding-left: 0px; + padding-left: 0; background: transparent; - border-width: 0px 0px 1px 0px; - border-radius: 0px; - -moz-border-radius: 0px; - -webkit-border-radius: 0px; + border-width: 0 0 1px 0; + border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; line-height: 0.5em; } .openerp .oe_form_notebook ul.ui-tabs-nav li { @@ -562,7 +559,7 @@ body.openerp { } .openerp .oe_form_notebook .ui-tabs-panel { background: #f9f9f9; - border-width: 0px 1px 1px 1px; + border-width: 0 1px 1px 1px; } .openerp .oe_form_notebook .ui-tabs-selected { background: #f9f9f9; @@ -571,7 +568,7 @@ body.openerp { /* Form */ .openerp table.oe_frame td { color: #4c4c4c; - font-weight: 80%; + font-weight: bold; } .openerp .required.error { border: 1px solid #900; @@ -700,9 +697,7 @@ body.openerp { padding:0; margin:0; width:180px; - border-left-color: #D2CFCF; - border-left-style: solid; - border-left-width: 1px; + border-left: 1px solid #D2CFCF; height:100%; font-family: Ubuntu, Helvetica, sans-serif; font-size: 0.9em; @@ -730,17 +725,14 @@ body.openerp { font-family: Ubuntu, Helvetica, sans-serif; font-size: 1.15em; color: #8E8E8E; - text-shadow: white 0px 1px 0px; + text-shadow: white 0 1px 0; padding-left: 10px; padding-right: 21px; height: 21px; background: url(../img/sideheader-a-bg.png) repeat-x; - border-color: #D2CFCF; - border-style: solid; - border-top-width: 1px; - border-bottom-width: 1px; - border-left-width: 0; + border: 1px solid #D2CFCF; border-right-width: 0; + border-left-width: 0; } .openerp .view-manager-main-sidebar ul { @@ -757,9 +749,7 @@ body.openerp { .openerp .toggle-sidebar { cursor: pointer; - border-color: #D2CFCF; - border-style: solid; - border-width: 1px; + border: 1px solid #D2CFCF; display: block; background: url(../img/toggle-a-bg.png); width: 21px; From 94b53db19581be7b039bf24579480d1299ea5ec1 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 5 May 2011 08:41:43 +0200 Subject: [PATCH 16/17] [FIX] incorrect documentation of get_*_string in nonliterals.Context and nonliterals.Domain: the 'session' parameter has not existed in a long time bzr revid: xmo@openerp.com-20110505064143-1e25gm967nxb9gyb --- openerpweb/nonliterals.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/openerpweb/nonliterals.py b/openerpweb/nonliterals.py index a0805c9c0c2..1584628f777 100644 --- a/openerpweb/nonliterals.py +++ b/openerpweb/nonliterals.py @@ -80,10 +80,6 @@ class Domain(object): def get_domain_string(self): """ Retrieves the domain string linked to this non-literal domain in the provided session. - - :param session: the OpenERP Session used to store the domain string in - the first place. - :type session: openerpweb.openerpweb.OpenERPSession """ return self.session.domains_store[self.key] @@ -129,10 +125,6 @@ class Context(object): def get_context_string(self): """ Retrieves the context string linked to this non-literal context in the provided session. - - :param session: the OpenERP Session used to store the context string in - the first place. - :type session: openerpweb.openerpweb.OpenERPSession """ return self.session.contexts_store[self.key] From 12de5a891b7a73f142c321ea2d013457470d1370 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 5 May 2011 11:38:53 +0200 Subject: [PATCH 17/17] [FIX] QWeb2: fix xml string detection bzr revid: fme@openerp.com-20110505093853-c692wio8uaxy1ndk --- addons/base/static/lib/qweb/qweb2.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/addons/base/static/lib/qweb/qweb2.js b/addons/base/static/lib/qweb/qweb2.js index 4343e10923f..edf8f8b2b21 100644 --- a/addons/base/static/lib/qweb/qweb2.js +++ b/addons/base/static/lib/qweb/qweb2.js @@ -20,6 +20,16 @@ var QWeb2 = { } throw prefix + ": " + message; }, + trim: function(s, mode) { + switch (mode) { + case "left": + return s.replace(/^\s*/, ""); + case "right": + return s.replace(/\s*$/, ""); + default: + return s.replace(/^\s*|\s*$/g, ""); + } + }, js_escape: function(s, noquotes) { return (noquotes ? '' : "'") + s.replace(/\r?\n/g, "\\n").replace(/'/g, "\\'") + (noquotes ? '' : "'"); }, @@ -177,7 +187,7 @@ QWeb2.Engine = (function() { }, load_xml : function(s) { s = s.replace(/^\s*|\s*$/g, ''); - if (s[0] === '