[MERGE] with trunk
bzr revid: fka@tinyerp.com-20121214045839-1f2nt6t138t8f4uo
This commit is contained in:
commit
c9ab0fc392
|
@ -194,7 +194,7 @@
|
|||
<field name="product_id"
|
||||
on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="account_id" groups="account.group_account_user"
|
||||
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '!=', 'view')]"
|
||||
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
|
||||
|
@ -349,7 +349,7 @@
|
|||
<field name="product_id"
|
||||
on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="account_id" groups="account.group_account_user"
|
||||
domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '!=', 'view')]"
|
||||
on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
|
||||
|
|
|
@ -88,8 +88,8 @@ class ir_model_fields_anonymization(osv.osv):
|
|||
if global_state == 'anonymized':
|
||||
raise osv.except_osv('Error !', "The database is currently anonymized, you cannot create, modify or delete fields.")
|
||||
elif global_state == 'unstable':
|
||||
msg = "The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to create, write or delete fields."
|
||||
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to create, write or delete fields.")
|
||||
raise osv.except_osv('Error !', msg)
|
||||
|
||||
return True
|
||||
|
@ -297,7 +297,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
|||
res['name'] = '.pickle'
|
||||
res['summary'] = self._get_summary_value(cr, uid, context)
|
||||
res['state'] = self._get_state_value(cr, uid, context)
|
||||
res['msg'] = """Before executing the anonymization process, you should make a backup of your database."""
|
||||
res['msg'] = _("""Before executing the anonymization process, you should make a backup of your database.""")
|
||||
|
||||
return res
|
||||
|
||||
|
@ -355,8 +355,8 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
|||
# remove the placeholer:
|
||||
eview.remove(placeholder)
|
||||
else:
|
||||
msg = "The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything else."
|
||||
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything else.")
|
||||
raise osv.except_osv('Error !', msg)
|
||||
|
||||
res['arch'] = etree.tostring(eview)
|
||||
|
@ -386,10 +386,10 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
|||
# check that all the defined fields are in the 'clear' state
|
||||
state = self.pool.get('ir.model.fields.anonymization')._get_global_state(cr, uid, context=context)
|
||||
if state == 'anonymized':
|
||||
self._raise_after_history_update(cr, uid, history_id, 'Error !', "The database is currently anonymized, you cannot anonymize it again.")
|
||||
self._raise_after_history_update(cr, uid, history_id, _('Error !'), _("The database is currently anonymized, you cannot anonymize it again."))
|
||||
elif state == 'unstable':
|
||||
msg = "The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything."
|
||||
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything.")
|
||||
self._raise_after_history_update(cr, uid, history_id, 'Error !', msg)
|
||||
|
||||
# do the anonymization:
|
||||
|
@ -441,11 +441,11 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
|||
elif field_type == 'integer':
|
||||
anonymized_value = 0
|
||||
elif field_type in ['binary', 'many2many', 'many2one', 'one2many', 'reference']: # cannot anonymize these kind of fields
|
||||
msg = "Cannot anonymize fields of these types: binary, many2many, many2one, one2many, reference."
|
||||
msg = _("Cannot anonymize fields of these types: binary, many2many, many2one, one2many, reference.")
|
||||
self._raise_after_history_update(cr, uid, history_id, 'Error !', msg)
|
||||
|
||||
if anonymized_value is None:
|
||||
self._raise_after_history_update(cr, uid, history_id, 'Error !', "Anonymized value is None. This cannot happens.")
|
||||
self._raise_after_history_update(cr, uid, history_id, _('Error !'), _("Anonymized value is None. This cannot happens."))
|
||||
|
||||
sql = "update %(table)s set %(field)s = %%(anonymized_value)s where id = %%(id)s" % {
|
||||
'table': table_name,
|
||||
|
@ -521,16 +521,16 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
|||
# check that all the defined fields are in the 'anonymized' state
|
||||
state = ir_model_fields_anonymization_model._get_global_state(cr, uid, context=context)
|
||||
if state == 'clear':
|
||||
raise osv.except_osv('Error !', "The database is not currently anonymized, you cannot reverse the anonymization.")
|
||||
raise osv.except_osv_('Error !', "The database is not currently anonymized, you cannot reverse the anonymization.")
|
||||
elif state == 'unstable':
|
||||
msg = "The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything."
|
||||
msg = _("The database anonymization is currently in an unstable state. Some fields are anonymized," + \
|
||||
" while some fields are not anonymized. You should try to solve this problem before trying to do anything.")
|
||||
raise osv.except_osv('Error !', msg)
|
||||
|
||||
wizards = self.browse(cr, uid, ids, context=context)
|
||||
for wizard in wizards:
|
||||
if not wizard.file_import:
|
||||
msg = "It is not possible to reverse the anonymization process without supplying the anonymization export file."
|
||||
msg = _("It is not possible to reverse the anonymization process without supplying the anonymization export file.")
|
||||
self._raise_after_history_update(cr, uid, history_id, 'Error !', msg)
|
||||
|
||||
# reverse the anonymization:
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
'name': 'Anonymous',
|
||||
'description': """
|
||||
Allow anonymous access to OpenERP.
|
||||
==================================
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'version': '1.0',
|
||||
'category': 'Authentication',
|
||||
'website': 'http://www.openerp.com',
|
||||
'installable': True,
|
||||
'depends': ['web'],
|
||||
'data': ['auth_anonymous.xml'],
|
||||
'js': ['static/src/js/auth_anonymous.js'],
|
||||
'qweb': ['static/src/xml/auth_anonymous.xml'],
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="anonymous_user" model="res.users">
|
||||
<field name="name">Anonymous</field>
|
||||
<field name="login">anonymous</field>
|
||||
<field name="password">anonymous</field>
|
||||
<!-- Avoid auto-including this demo user in any default group -->
|
||||
<field name="groups_id" eval="[(5,)]"/>
|
||||
<field name="image">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</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
A group dedicated to the anonymous user only, making groups
|
||||
restrictions more convenient.
|
||||
-->
|
||||
<record id="group_anonymous" model="res.groups">
|
||||
<field name="name">Anonymous Group</field>
|
||||
<field name="users" eval="[(4,ref('anonymous_user'))]"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,30 +0,0 @@
|
|||
# Arabic translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-12-01 17:58+0000\n"
|
||||
"Last-Translator: gehad shaat <gehad.shaath@gmail.com>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-02 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "تسجيل دخول"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "مجموعة مجهولة"
|
|
@ -1,29 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * auth_anonymous
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-24 02:52+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr ""
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
# Spanish translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-12-11 14:07+0000\n"
|
||||
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-12 04:41+0000\n"
|
||||
"X-Generator: Launchpad (build 16361)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Inicio de sesión"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "Grupo anónimo"
|
|
@ -1,30 +0,0 @@
|
|||
# French translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-12-07 10:27+0000\n"
|
||||
"Last-Translator: Quentin THEURET <Unknown>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-08 04:59+0000\n"
|
||||
"X-Generator: Launchpad (build 16341)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Connexion"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr ""
|
|
@ -1,30 +0,0 @@
|
|||
# Croatian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-12-09 19:39+0000\n"
|
||||
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
|
||||
"Language-Team: Croatian <hr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-10 04:39+0000\n"
|
||||
"X-Generator: Launchpad (build 16341)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Prijava"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "Anonimna grupa"
|
|
@ -1,30 +0,0 @@
|
|||
# Italian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 00:10+0000\n"
|
||||
"Last-Translator: Sergio Corato <Unknown>\n"
|
||||
"Language-Team: Italian <it@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Login"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "Gruppo Anonimo"
|
|
@ -1,30 +0,0 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-12-02 20:46+0000\n"
|
||||
"Last-Translator: Kaare Pettersen <Unknown>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-03 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Logg inn."
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "Anonym gruppe."
|
|
@ -1,30 +0,0 @@
|
|||
# Dutch translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-29 15:11+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Inloggen"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "Anonieme groep"
|
|
@ -1,30 +0,0 @@
|
|||
# Dutch (Belgium) translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-27 13:37+0000\n"
|
||||
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
|
||||
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-28 04:41+0000\n"
|
||||
"X-Generator: Launchpad (build 16309)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Aanmelden"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "Anonieme groep"
|
|
@ -1,30 +0,0 @@
|
|||
# Brazilian Portuguese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-12-10 14:18+0000\n"
|
||||
"Last-Translator: Projetaty Soluções OpenSource <Unknown>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-11 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 16356)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Autenticação"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "Grupo Anônimo"
|
|
@ -1,30 +0,0 @@
|
|||
# Chinese (Simplified) translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-27 16:43+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-28 04:41+0000\n"
|
||||
"X-Generator: Launchpad (build 16309)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/auth_anonymous/static/src/xml/auth_anonymous.xml:9
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "登录"
|
||||
|
||||
#. module: auth_anonymous
|
||||
#: model:res.groups,name:auth_anonymous.group_anonymous
|
||||
msgid "Anonymous Group"
|
||||
msgstr "匿名组"
|
|
@ -30,6 +30,7 @@ Allow users to sign up and reset their password
|
|||
'category': 'Authentication',
|
||||
'website': 'http://www.openerp.com',
|
||||
'installable': True,
|
||||
'auto_install': True,
|
||||
'depends': [
|
||||
'base_setup',
|
||||
'email_template',
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<field name="model">base.config.settings</field>
|
||||
<field name="inherit_id" ref="base_setup.view_general_configuration"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='module_auth_anonymous']/.." position="after">
|
||||
<xpath expr="//field[@name='module_portal_anonymous']/.." position="after">
|
||||
<div>
|
||||
<field name="auth_signup_reset_password" class="oe_inline"/>
|
||||
<label for="auth_signup_reset_password"/>
|
||||
|
|
|
@ -42,7 +42,7 @@ Shows you a list of applications features to install from.
|
|||
],
|
||||
'demo': [],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'auto_install': True,
|
||||
'images': ['images/base_setup1.jpeg','images/base_setup2.jpeg','images/base_setup3.jpeg','images/base_setup4.jpeg',],
|
||||
'css': ['static/src/css/base_setup.css'],
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ class base_config_settings(osv.osv_memory):
|
|||
help="""Share or embbed any screen of openerp."""),
|
||||
'module_portal': fields.boolean('Activate the customer/supplier portal',
|
||||
help="""Give access your customers and suppliers to their documents."""),
|
||||
'module_auth_anonymous': fields.boolean('Activate the public portal',
|
||||
'module_portal_anonymous': fields.boolean('Activate the public portal',
|
||||
help="""Enable the public part of openerp, openerp becomes a public website."""),
|
||||
'module_auth_oauth': fields.boolean('Use external authentication providers, sign in with google, facebook, ...'),
|
||||
'module_base_import': fields.boolean("Allow users to import data from CSV files"),
|
||||
|
|
|
@ -46,8 +46,8 @@
|
|||
<label for="module_portal"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_auth_anonymous" class="oe_inline"/>
|
||||
<label for="module_auth_anonymous"/>
|
||||
<field name="module_portal_anonymous" class="oe_inline"/>
|
||||
<label for="module_portal_anonymous"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
|
|
|
@ -300,6 +300,7 @@ Andrew</field>
|
|||
<record id="crm_case_14" model="crm.lead">
|
||||
<field name="type">opportunity</field>
|
||||
<field name="name">Interest in your Graphic Design Project</field>
|
||||
<field name="color">7</field>
|
||||
<field eval="24000" name="planned_revenue"/>
|
||||
<field eval="30.0" name="probability"/>
|
||||
<field name="partner_name">Agrolait</field>
|
||||
|
@ -420,6 +421,7 @@ Andrew</field>
|
|||
<record id="crm_case_19" model="crm.lead">
|
||||
<field name="type">opportunity</field>
|
||||
<field name="name">Interest in your customizable Pcs</field>
|
||||
<field name="color">3</field>
|
||||
<field eval="15000" name="planned_revenue"/>
|
||||
<field eval="65.0" name="probability"/>
|
||||
<field name="contact_name">Robin Smith</field>
|
||||
|
|
|
@ -64,7 +64,7 @@ campaigns on any OpenERP document.
|
|||
],
|
||||
'demo': ['res_partner_demo.yml'],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'auto_install': True,
|
||||
'images': ['images/1_email_account.jpeg','images/2_email_template.jpeg','images/3_emails.jpeg'],
|
||||
}
|
||||
|
||||
|
|
|
@ -240,20 +240,22 @@
|
|||
</i>
|
||||
</t>
|
||||
</p>
|
||||
<t t-if="record.register_avail.raw_value gt 0 and record.register_avail.raw_value lt 9999">
|
||||
<t t-if="!record.is_subscribed.raw_value">
|
||||
<input t-att-id="record.id.raw_value" type="text" name="subscribe" class="no_of_seats" value="1" onchange="document.getElementById('btn_sub' +this.id).setAttribute('data-context',JSON.stringify({'ticket':this.value}))"/>
|
||||
<button t-att-id="'btn_sub'+record.id.raw_value" type="object" name="subscribe_to_event" class="oe_subscribe_button">
|
||||
<span >Subscribe</span>
|
||||
</button>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="record.is_subscribed.raw_value">
|
||||
<button type="object" name="unsubscribe_to_event" class="oe_unsubscribe_button ">
|
||||
<span>Subscribed</span>
|
||||
<span class="oe_unsubscribe">Unsubscribe</span>
|
||||
</button>
|
||||
</t>
|
||||
<div groups="base.group_user,portal.group_portal">
|
||||
<t t-if="record.register_avail.raw_value gt 0 and record.register_avail.raw_value lt 9999">
|
||||
<t t-if="!record.is_subscribed.raw_value">
|
||||
<input t-att-id="record.id.raw_value" type="text" name="subscribe" class="no_of_seats" value="1" onchange="document.getElementById('btn_sub' +this.id).setAttribute('data-context',JSON.stringify({'ticket':this.value}))"/>
|
||||
<button t-att-id="'btn_sub'+record.id.raw_value" type="object" name="subscribe_to_event" class="oe_subscribe_button">
|
||||
<span >Subscribe</span>
|
||||
</button>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="record.is_subscribed.raw_value">
|
||||
<button type="object" name="unsubscribe_to_event" class="oe_unsubscribe_button ">
|
||||
<span>Subscribed</span>
|
||||
<span class="oe_unsubscribe">Unsubscribe</span>
|
||||
</button>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
|
|
|
@ -99,7 +99,7 @@ class hr_analytic_timesheet(osv.osv):
|
|||
if context is None:
|
||||
context = {}
|
||||
emp_obj = self.pool.get('hr.employee')
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id') or uid)], context=context)
|
||||
if emp_id:
|
||||
emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
|
||||
if emp.product_id:
|
||||
|
@ -110,7 +110,7 @@ class hr_analytic_timesheet(osv.osv):
|
|||
emp_obj = self.pool.get('hr.employee')
|
||||
if context is None:
|
||||
context = {}
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id') or uid)], context=context)
|
||||
if emp_id:
|
||||
emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
|
||||
if emp.product_id:
|
||||
|
@ -121,7 +121,7 @@ class hr_analytic_timesheet(osv.osv):
|
|||
emp_obj = self.pool.get('hr.employee')
|
||||
if context is None:
|
||||
context = {}
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id') or uid)], context=context)
|
||||
if emp_id:
|
||||
emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
|
||||
if bool(emp.product_id):
|
||||
|
@ -136,8 +136,11 @@ class hr_analytic_timesheet(osv.osv):
|
|||
emp_obj = self.pool.get('hr.employee')
|
||||
if context is None:
|
||||
context = {}
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
|
||||
if not emp_id :
|
||||
if context.get('employee_id'):
|
||||
emp_id = [context.get('employee_id')]
|
||||
else:
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id','=',context.get('user_id') or uid)], limit=1, context=context)
|
||||
if not emp_id:
|
||||
raise osv.except_osv(_('Warning!'), _('Please create an employee for this user, using the menu: Human Resources > Employees.'))
|
||||
emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
|
||||
if emp.journal_id:
|
||||
|
@ -152,7 +155,7 @@ class hr_analytic_timesheet(osv.osv):
|
|||
'general_account_id': _getGeneralAccount,
|
||||
'journal_id': _getAnalyticJournal,
|
||||
'date': lambda self, cr, uid, ctx: ctx.get('date', fields.date.context_today(self,cr,uid,context=ctx)),
|
||||
'user_id': lambda obj, cr, uid, ctx: ctx.get('user_id', uid),
|
||||
'user_id': lambda obj, cr, uid, ctx: ctx.get('user_id') or uid,
|
||||
}
|
||||
def on_change_account_id(self, cr, uid, ids, account_id, context=None):
|
||||
return {'value':{}}
|
||||
|
@ -169,7 +172,7 @@ class hr_analytic_timesheet(osv.osv):
|
|||
if context is None:
|
||||
context = {}
|
||||
emp_obj = self.pool.get('hr.employee')
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
|
||||
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id') or uid)], context=context)
|
||||
ename = ''
|
||||
if emp_id:
|
||||
ename = emp_obj.browse(cr, uid, emp_id[0], context=context).name
|
||||
|
|
|
@ -143,7 +143,7 @@ class hr_si_project(osv.osv_memory):
|
|||
model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_hr_timesheet_sign_%s' % in_out)], context=context)
|
||||
resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'name': 'Sign in / Sign out',
|
||||
'name': _('Sign in / Sign out'),
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'hr.sign.%s.project' % in_out,
|
||||
|
|
|
@ -218,8 +218,10 @@ class hr_timesheet_sheet(osv.osv):
|
|||
def onchange_employee_id(self, cr, uid, ids, employee_id, context=None):
|
||||
department_id = False
|
||||
if employee_id:
|
||||
department_id = self.pool.get('hr.employee').browse(cr, uid, employee_id, context=context).department_id.id
|
||||
return {'value': {'department_id': department_id}}
|
||||
empl_id = self.pool.get('hr.employee').browse(cr, uid, employee_id, context=context)
|
||||
department_id = empl_id.department_id.id
|
||||
user_id = empl_id.user_id.id
|
||||
return {'value': {'department_id': department_id, 'user_id': user_id,}}
|
||||
|
||||
# ------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
|
|
|
@ -81,6 +81,7 @@
|
|||
<div class="oe_title">
|
||||
<label for="employee_id" class="oe_edit_only"/>
|
||||
<h1><field name="employee_id" on_change="onchange_employee_id(employee_id)" class="oe_inline"/></h1>
|
||||
<field name="user_id" invisible="1"/>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
|
@ -94,7 +95,6 @@
|
|||
<field name="total_attendance" widget="float_time"/>
|
||||
<field name="total_timesheet" widget="float_time"/>
|
||||
<field name="total_difference" widget="float_time"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
|
@ -103,7 +103,7 @@
|
|||
</widget>
|
||||
</page>
|
||||
<page string="Details">
|
||||
<field context="{'user_id':user_id, 'timesheet_date_from': date_from, 'timesheet_date_to': date_to}" name="timesheet_ids" nolabel="1">
|
||||
<field context="{'employee_id': employee_id, 'user_id':user_id, 'timesheet_date_from': date_from, 'timesheet_date_to': date_to}" name="timesheet_ids" nolabel="1">
|
||||
<tree editable="top" string="Timesheet Activities">
|
||||
<field name="date"/>
|
||||
<field domain="[('type','in',['normal', 'contract']), ('state', '<>', 'close'),('use_timesheets','=',1)]" name="account_id" on_change="on_change_account_id(account_id, user_id)" context="{'default_use_timesheets': 1}"/>
|
||||
|
@ -134,7 +134,7 @@
|
|||
</page>
|
||||
<page string="Attendances" groups="base.group_hr_attendance">
|
||||
<group>
|
||||
<field context="{'user_id':user_id}" name="attendances_ids" nolabel="1">
|
||||
<field context="{'employee_id': employee_id, 'user_id':user_id}" name="attendances_ids" nolabel="1">
|
||||
<tree string="Attendances" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="action"/>
|
||||
|
|
|
@ -70,7 +70,7 @@ Main Features
|
|||
'data/mail_group_demo_data.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'auto_install': True,
|
||||
'application': True,
|
||||
'images': [
|
||||
'images/customer_history.jpeg',
|
||||
|
|
|
@ -76,7 +76,7 @@ class mail_message(osv.Model):
|
|||
# TDE note: regroup by model/ids, to have less queries to perform
|
||||
result = dict.fromkeys(ids, False)
|
||||
for message in self.read(cr, uid, ids, ['model', 'res_id'], context=context):
|
||||
if not message.get('model') or not message.get('res_id'):
|
||||
if not message.get('model') or not message.get('res_id') or not self.pool.get(message['model']):
|
||||
continue
|
||||
result[message['id']] = self._shorten_name(self.pool.get(message['model']).name_get(cr, SUPERUSER_ID, [message['res_id']], context=context)[0][1])
|
||||
return result
|
||||
|
|
|
@ -729,8 +729,9 @@ class mrp_repair_line(osv.osv, ProductChangeMixin):
|
|||
'location_id': False,
|
||||
'location_dest_id': False
|
||||
}}
|
||||
location_obj = self.pool.get('stock.location')
|
||||
warehouse_obj = self.pool.get('stock.warehouse')
|
||||
location_id = self.pool.get('stock.location').search(cr, uid, [('usage','=','production')], context=context)
|
||||
location_id = location_obj.search(cr, uid, [('usage','=','production')], context=context)
|
||||
location_id = location_id and location_id[0] or False
|
||||
|
||||
if type == 'add':
|
||||
|
@ -748,11 +749,12 @@ class mrp_repair_line(osv.osv, ProductChangeMixin):
|
|||
'location_id': stock_id,
|
||||
'location_dest_id': location_id
|
||||
}}
|
||||
scrap_location_ids = location_obj.search(cr, uid, [('scrap_location', '=', True)], context=context)
|
||||
|
||||
return {'value': {
|
||||
'to_invoice': False,
|
||||
'location_id': location_id,
|
||||
'location_dest_id': self.pool.get('stock.location').search(cr, uid, [('name','=','Inventory loss')], context=context)
|
||||
'location_dest_id': scrap_location_ids and scrap_location_ids[0] or False,
|
||||
}}
|
||||
|
||||
mrp_repair_line()
|
||||
|
|
|
@ -43,16 +43,16 @@ very handy when used in combination with the module 'share'.
|
|||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'data': [
|
||||
'security/portal_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'portal_data.xml',
|
||||
'portal_view.xml',
|
||||
'wizard/portal_wizard_view.xml',
|
||||
'wizard/share_wizard_view.xml',
|
||||
'acquirer_view.xml',
|
||||
'security/ir.model.access.csv',
|
||||
],
|
||||
'demo': ['portal_demo.xml'],
|
||||
'css': ['static/src/css/portal.css'],
|
||||
'auto_install': True,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,16 @@
|
|||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- The portal group -->
|
||||
<record id="group_portal" model="res.groups">
|
||||
<field name="name">Portal</field>
|
||||
<field name="comment">Portal members have specific access rights (such as record rules and restricted menus).
|
||||
They usually do not belong to the usual OpenERP groups.</field>
|
||||
<field name="is_portal" eval="True"/>
|
||||
<!-- Insert the template user from auth_signup in the portal members group -->
|
||||
<field name="users" eval="[(4,ref('auth_signup.default_template_user'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Mail group for the company's news -->
|
||||
<record id="company_news_feed" model="mail.group">
|
||||
<field name="name">Company's news</field>
|
||||
|
@ -64,7 +74,16 @@
|
|||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
A group dedicated to the anonymous user only, making groups
|
||||
restrictions more convenient.
|
||||
-->
|
||||
<record id="group_anonymous" model="res.groups">
|
||||
<field name="name">Anonymous</field>
|
||||
<field name="comment">Anonymous users have specific access rights (such as record rules and restricted menus).
|
||||
They usually do not belong to the usual OpenERP groups.</field>
|
||||
</record>
|
||||
|
||||
<record id="paypal_acquirer" model="portal.payment.acquirer">
|
||||
<field name="name">Paypal</field>
|
||||
|
|
|
@ -5,48 +5,10 @@
|
|||
<!-- Top menu item -->
|
||||
<menuitem name="Portal"
|
||||
id="portal_menu"
|
||||
groups="base.group_no_one,portal.group_portal"
|
||||
groups="portal.group_portal,portal.group_anonymous"
|
||||
sequence="15"/>
|
||||
|
||||
<menuitem name="Messaging" id="portal_messages" parent="portal_menu" sequence="10"/>
|
||||
<menuitem name="About Us" id="portal_company" parent="portal_menu" sequence="200"/>
|
||||
<menuitem name="News" id="portal_company_news" parent="portal_company" sequence="10" action="action_news"/>
|
||||
<menuitem name="Jobs" id="portal_jobs" parent="portal_company" sequence="20" action="action_jobs"/>
|
||||
|
||||
<!--
|
||||
Create menu items that we'll leave empty for now - they'll be
|
||||
filled up by other portal modules.
|
||||
-->
|
||||
<menuitem name="Quotations and Sales Orders" id="portal_orders" parent="portal_menu" sequence="20"/>
|
||||
<menuitem name="After Sale Services" id="portal_after_sales" parent="portal_menu" sequence="30"/>
|
||||
<menuitem name="Projects" id="portal_projects" parent="portal_menu" sequence="40"/>
|
||||
|
||||
<!-- extend res.groups search view -->
|
||||
<record id="group_search_view" model="ir.ui.view">
|
||||
<field name="name">Group Search</field>
|
||||
<field name="model">res.groups</field>
|
||||
<field name="inherit_id" ref="base.view_groups_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<filter name="portal" string="Portal Groups" domain="[('is_portal','=',True)]"/>
|
||||
<filter name="no_portal" string="Non-Portal Groups" domain="[('is_portal','=',False)]"/>
|
||||
<separator orientation="vertical"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- extend res.groups form view -->
|
||||
<record id="group_form_view" model="ir.ui.view">
|
||||
<field name="name">Portal Form</field>
|
||||
<field name="model">res.groups</field>
|
||||
<field name="inherit_id" ref="base.view_groups_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<field name="is_portal"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Messaging" id="portal_messages" parent="portal_menu" sequence="10" groups="portal.group_portal"/>
|
||||
<record id="action_mail_inbox_feeds_portal" model="ir.actions.client">
|
||||
<field name="name">Inbox</field>
|
||||
<field name="tag">mail.wall</field>
|
||||
|
@ -76,9 +38,45 @@
|
|||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Inbox" id="portal_inbox" parent="portal_messages"
|
||||
action="action_mail_inbox_feeds_portal" sequence="10"/>
|
||||
action="action_mail_inbox_feeds_portal" sequence="10" groups="portal.group_portal"/>
|
||||
<!--
|
||||
Create menu items that we'll leave empty for now - they'll be
|
||||
filled up by other portal modules.
|
||||
-->
|
||||
<menuitem name="Quotations and Sales Orders" id="portal_orders" parent="portal_menu" sequence="20"/>
|
||||
<menuitem name="After Sale Services" id="portal_after_sales" parent="portal_menu" sequence="30"/>
|
||||
<menuitem name="Projects" id="portal_projects" parent="portal_menu" sequence="40"/>
|
||||
|
||||
<menuitem name="About Us" id="portal_company" parent="portal_menu" sequence="200"/>
|
||||
<menuitem name="News" id="portal_company_news" parent="portal_company" sequence="10" action="action_news"/>
|
||||
<menuitem name="Jobs" id="portal_jobs" parent="portal_company" sequence="20" action="action_jobs"/>
|
||||
|
||||
<!-- extend res.groups search view -->
|
||||
<record id="group_search_view" model="ir.ui.view">
|
||||
<field name="name">Group Search</field>
|
||||
<field name="model">res.groups</field>
|
||||
<field name="inherit_id" ref="base.view_groups_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<filter name="portal" string="Portal Groups" domain="[('is_portal','=',True)]"/>
|
||||
<filter name="no_portal" string="Non-Portal Groups" domain="[('is_portal','=',False)]"/>
|
||||
<separator orientation="vertical"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- extend res.groups form view -->
|
||||
<record id="group_form_view" model="ir.ui.view">
|
||||
<field name="name">Portal Form</field>
|
||||
<field name="model">res.groups</field>
|
||||
<field name="inherit_id" ref="base.view_groups_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<field name="is_portal"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_mail_message_portal,mail.message.portal,mail.model_mail_message,group_portal,1,0,1,1
|
||||
access_mail_notification_portal,mail.notification.portal,mail.model_mail_notification,group_portal,1,1,1,0
|
||||
access_mail_message_portal,mail.message.portal,mail.model_mail_message,portal.group_portal,1,0,1,1
|
||||
access_mail_notification_portal,mail.notification.portal,mail.model_mail_notification,portal.group_portal,1,1,1,0
|
||||
access_res_partner,res.partner,base.model_res_partner,portal.group_portal,1,0,0,0
|
||||
access_res_partner_address,res.partner_address,base.model_res_partner_address,portal.group_portal,1,0,0,0
|
||||
access_res_partner_category,res.partner_category,base.model_res_partner_category,portal.group_portal,1,0,0,0
|
||||
|
|
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- The portal group -->
|
||||
<record id="group_portal" model="res.groups">
|
||||
<field name="name">Portal</field>
|
||||
<field name="comment">Portal members have specific access rights (such as record rules and restricted menus).
|
||||
They usually do not belong to the usual OpenERP groups.</field>
|
||||
<field name="is_portal" eval="True"/>
|
||||
<!-- Insert the template user from auth_signup in the portal members group -->
|
||||
<field name="users" eval="[(4,ref('auth_signup.default_template_user'))]"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -9,6 +9,11 @@ Allow anonymous to Access Portal.
|
|||
'category': 'Hidden',
|
||||
'website': 'http://www.openerp.com',
|
||||
'installable': True,
|
||||
'depends': ['portal', 'auth_anonymous'],
|
||||
'data': ['portal_anonymous.xml'],
|
||||
'depends': ['portal', 'web'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'portal_anonymous_data.xml',
|
||||
],
|
||||
'js': ['static/src/js/portal_anonymous.js'],
|
||||
'qweb': ['static/src/xml/portal_anonymous.xml'],
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="auth_anonymous.anonymous_user" model="res.users">
|
||||
<field name="groups_id" eval="[(4,ref('portal.group_portal'))]"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="anonymous_user" model="res.users">
|
||||
<field name="name">Anonymous</field>
|
||||
<field name="login">anonymous</field>
|
||||
<field name="password">anonymous</field>
|
||||
<!-- Avoid auto-including this demo user in any default group -->
|
||||
<field name="groups_id" eval="[(5,)]"/>
|
||||
<field name="image">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</field>
|
||||
</record>
|
||||
|
||||
<record id="portal.group_anonymous" model="res.groups">
|
||||
<field name="users" eval="[(4, ref('anonymous_user'))]"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,6 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_mail_message_portal,mail.message.portal,mail.model_mail_message,portal.group_anonymous,1,0,0,0
|
||||
access_res_partner,res.partner,base.model_res_partner,portal.group_anonymous,1,0,0,0
|
||||
access_res_partner_address,res.partner_address,base.model_res_partner_address,portal.group_anonymous,1,0,0,0
|
||||
access_res_partner_category,res.partner_category,base.model_res_partner_category,portal.group_anonymous,1,0,0,0
|
||||
access_res_partner_title,res.partner_title,base.model_res_partner_title,portal.group_anonymous,1,0,0,0
|
|
|
@ -1,4 +1,4 @@
|
|||
openerp.auth_anonymous = function(instance) {
|
||||
openerp.portal_anonymous = function(instance) {
|
||||
|
||||
instance.web.Login.include({
|
||||
start: function() {
|
||||
|
@ -19,7 +19,7 @@ openerp.auth_anonymous = function(instance) {
|
|||
init: function(parent) {
|
||||
this._super(parent);
|
||||
if (this.session.username == 'anonymous') {
|
||||
this.template = 'UserMenu.auth_anonymous';
|
||||
this.template = 'UserMenu.portal_anonymous';
|
||||
this.do_update = function() {}; // avoid change of avatar
|
||||
}
|
||||
},
|
|
@ -3,7 +3,7 @@
|
|||
-->
|
||||
<templates id="template" xml:space="preserve">
|
||||
|
||||
<t t-name="UserMenu.auth_anonymous">
|
||||
<t t-name="UserMenu.portal_anonymous">
|
||||
<div>
|
||||
<a href="#" class="oe_user_menu oe_topbar_item oe_topbar_anonymous_login">
|
||||
Login
|
|
@ -10,7 +10,7 @@
|
|||
<field name="name">Events</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">event.event</field>
|
||||
<field name="view_mode">kanban,calendar,tree,form</field>
|
||||
<field name="view_mode">kanban,calendar,tree</field>
|
||||
<field name="context">{"search_default_upcoming":1}</field>
|
||||
<field name="search_view_id" ref="event.view_event_search"/>
|
||||
<field name="help">There are no public events.</field>
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_event,event,event.model_event_event,portal.group_portal,1,0,0,0
|
||||
access_registration,registration,event.model_event_registration,portal.group_portal,1,1,1,1
|
||||
access_event,event,event.model_event_event,portal.group_anonymous,1,0,0,0
|
||||
access_registration,registration,event.model_event_registration,portal.group_anonymous,1,1,1,1
|
||||
|
|
|
|
@ -6,14 +6,14 @@
|
|||
<field name="name">Portal Visible Events</field>
|
||||
<field ref="event.model_event_event" name="model_id"/>
|
||||
<field name="domain_force">['|', ('visibility', '=', 'public'), ('message_follower_ids','in', [user.partner_id.id])]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal')), (4, ref('portal.group_anonymous'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_registration_rule" model="ir.rule">
|
||||
<field name="name">Portal Personal Registrations</field>
|
||||
<field ref="event.model_event_registration" name="model_id"/>
|
||||
<field name="domain_force">[('user_id','=',user.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal')), (4, ref('portal.group_anonymous'))]"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_hr_employee_user,hr.employee user,hr.model_hr_employee,portal.group_portal,1,0,0,0
|
||||
access_hr_employee_user,hr.employee user,hr.model_hr_employee,portal.group_anonymous,1,0,0,0
|
||||
|
|
|
|
@ -46,7 +46,7 @@ class project_task_type(osv.osv):
|
|||
'state': fields.selection(_TASK_STATE, 'Related Status', required=True,
|
||||
help="The status of your document is automatically changed regarding the selected stage. " \
|
||||
"For example, if a stage is related to the status 'Close', when your document reaches this stage, it is automatically closed."),
|
||||
'fold': fields.boolean('Hide in views if empty',
|
||||
'fold': fields.boolean('Folded by Default',
|
||||
help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
|
||||
}
|
||||
def _get_default_project_id(self, cr, uid, ctx={}):
|
||||
|
@ -275,7 +275,7 @@ class project(osv.osv):
|
|||
ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1)], context=context)
|
||||
return ids
|
||||
|
||||
_order = "sequence"
|
||||
_order = "sequence, id"
|
||||
_defaults = {
|
||||
'active': True,
|
||||
'type': 'contract',
|
||||
|
|
|
@ -154,7 +154,7 @@
|
|||
<field name="field_parent">child_ids</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree fonts="bold:message_unread==True" colors="red:date and (date<current_date) and (state == 'open');blue:state in ('draft','pending');grey: state in ('close','cancelled')" string="Projects">
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="message_unread" invisible="1"/>
|
||||
<field name="date" invisible="1"/>
|
||||
<field name="name" string="Project Name"/>
|
||||
|
|
|
@ -49,6 +49,7 @@ synchronization with other companies.
|
|||
'wizard/share_wizard_view.xml'
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': True,
|
||||
'web': True,
|
||||
'js': ['static/src/js/share.js'],
|
||||
'css': ['static/src/css/share.css'],
|
||||
|
|
|
@ -1398,6 +1398,14 @@ class stock_picking(osv.osv):
|
|||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
lang_obj = self.pool.get('res.lang')
|
||||
user_lang = self.pool.get('res.users').browse(cr, uid, uid, context=context).context_lang
|
||||
lang_ids = lang_obj.search(cr, uid, [('code','like',user_lang)])
|
||||
if lang_ids:
|
||||
date_format = lang_obj.browse(cr, uid, lang_ids[0], context=context).date_format
|
||||
else:
|
||||
date_format = '%m/%d/%Y'
|
||||
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
msg=''
|
||||
if pick.auto_picking:
|
||||
|
@ -1409,7 +1417,7 @@ class stock_picking(osv.osv):
|
|||
}
|
||||
message = type_list.get(pick.type, _('Document')) + " '" + (pick.name or '?') + "' "
|
||||
if pick.min_date:
|
||||
msg= _(' for the ')+ datetime.strptime(pick.min_date, '%Y-%m-%d %H:%M:%S').strftime('%m/%d/%Y')
|
||||
msg= _(' for the ')+ datetime.strptime(pick.min_date, '%Y-%m-%d %H:%M:%S').strftime(date_format)
|
||||
state_list = {
|
||||
'confirmed': _('is scheduled %s.') % msg,
|
||||
'assigned': _('is ready to process.'),
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<field name="quantity" />
|
||||
<field name="product_uom" groups="product.group_uom"/>
|
||||
<field name="tracking" invisible="1"/>
|
||||
<field name="prodlot_id" context="{'default_product_id':product_id}" domain="[('product_id', '=', product_id)]" invisible="context.get('hide_tracking',False)" attrs="{'required':[('tracking','=',True)]}" groups="stock.group_production_lot"/>
|
||||
<field name="prodlot_id" domain="[('product_id', '=', product_id)]" invisible="context.get('hide_tracking',False)" attrs="{'required':[('tracking','=',True), ('quantity', '!=', 0)]}" groups="stock.group_production_lot" context="{'default_product_id':product_id}"/>
|
||||
<!-- Removed as this feature is not logic: price must be updated upon reception of invoice -->
|
||||
<field name="update_cost" invisible="1"/>
|
||||
<field name="cost" invisible="1"/>
|
||||
|
|
Loading…
Reference in New Issue