Merged with diagram branch

bzr revid: hda@tinyerp.com-20100415084348-x4x6nmumqm3l3qdu
This commit is contained in:
HDA (OpenERP)
2010-04-15 14:13:48 +05:30
18 changed files with 8273 additions and 40 deletions
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-04-07 04:18+0000\n"
"PO-Revision-Date: 2010-04-14 04:19+0000\n"
"Last-Translator: goranc <goranc@gmail.com>\n"
"Language-Team: openerp-translators\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
+2 -2
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-04-07 04:14+0000\n"
"PO-Revision-Date: 2010-04-14 04:26+0000\n"
"Last-Translator: Harry (Open ERP) <hmo@tinyerp.com>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+6 -6
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-03-22 05:21+0000\n"
"Last-Translator: Bartosz Kaszubowski <gosimek@gmail.com>\n"
"PO-Revision-Date: 2010-04-13 04:19+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-24 04:52+0000\n"
"X-Launchpad-Export-Date: 2010-04-14 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -369,7 +369,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.gf
msgid "French Guyana"
msgstr ""
msgstr "Gujana Francuska"
#. module: base
#: field:ir.ui.view.custom,ref_id:0
@@ -379,7 +379,7 @@ msgstr "Pierwotny widok"
#. module: base
#: selection:module.lang.install,init,lang:0
msgid "Bosnian / bosanski jezik"
msgstr ""
msgstr "Bośniacki / bosanski jezik"
#. module: base
#: help:ir.actions.report.xml,attachment_use:0
@@ -518,7 +518,7 @@ msgstr "Konfiguruj prosty widok"
#. module: base
#: selection:module.lang.install,init,lang:0
msgid "Bulgarian / български"
msgstr ""
msgstr "Bułgarski / български"
#. module: base
#: model:ir.model,name:base.model_ir_actions_actions
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-04-07 04:19+0000\n"
"PO-Revision-Date: 2010-04-14 04:23+0000\n"
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\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: 2010-04-08 07:18+0000\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-04-07 04:12+0000\n"
"PO-Revision-Date: 2010-04-14 04:22+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-04-07 04:21+0000\n"
"PO-Revision-Date: 2010-04-14 04:23+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+13 -6
View File
@@ -132,13 +132,15 @@ class view(osv.osv):
return super(view, self).write(cr, uid, ids, vals, context)
def graph_get(self, cr, uid, id, model, node_obj, conn_obj, src_node, des_node,signal,scale,context={}):
def graph_get(self, cr, uid, id, model, node_obj, conn_obj, src_node, des_node,label,scale,context={}):
if not label:
label = []
nodes=[]
nodes_name=[]
transitions=[]
start=[]
tres={}
sig={}
labels={}
no_ancester=[]
blank_nodes = []
@@ -177,9 +179,14 @@ class view(osv.osv):
for t in _Arrow_Obj.read(cr,uid, a[_Destination_Field],[]):
transitions.append((a['id'], t[des_node][0]))
tres[str(t['id'])] = (a['id'],t[des_node][0])
if t.has_key(str(signal)) and str(t[signal])=='False':
t[signal]=' '
sig[str(t['id'])] = (a['id'],t.get(signal,' '))
label_string = ""
if label:
for lbl in eval(label):
if t.has_key(str(lbl)) and str(t[lbl])=='False':
label_string = label_string + ' '
else:
label_string = label_string + " " + t[lbl]
labels[str(t['id'])] = (a['id'],label_string)
g = graph(nodes, transitions, no_ancester)
g.process(start)
g.scale(*scale)
@@ -188,7 +195,7 @@ class view(osv.osv):
for node in nodes_name:
results[str(node[0])] = result[node[0]]
results[str(node[0])]['name'] = node[1]
return {'nodes': results, 'transitions': tres, 'signal' : sig, 'blank_nodes': blank_nodes}
return {'nodes': results, 'transitions': tres, 'label' : labels, 'blank_nodes': blank_nodes}
view()
class view_sc(osv.osv):
@@ -30,11 +30,15 @@
<field name="type">diagram</field>
<field name="arch" type="xml">
<diagram string="Workflow Editor">
<node object="workflow.activity">
<node object="workflow.activity" shape="rectangle:subflow_id!=False" bgcolor="gray:flow_start==True;grey:flow_stop==True">
<field name="name"/>
<field name="kind"/>
<field name="action"/>
<field name="flow_start" invisible="1"/>
<field name="flow_stop" invisible="1"/>
<field name="subflow_id" invisible="1"/>
</node>
<arrow object="workflow.transition" source="act_from" destination="act_to" signal="signal">
<arrow object="workflow.transition" source="act_from" destination="act_to" label="['signal','condition']">
<field name="act_from"/>
<field name="act_to"/>
<field name="signal"/>
+1 -1
View File
@@ -363,7 +363,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="context">{"search_default_Suppliers":1}</field>
<field name="context">{"search_default_supplier":supplier}</field>
<field name="search_view_id" ref="view_res_partner_filter"/>
</record>
<record id="action_partner_form_view1" model="ir.actions.act_window.view">
+2 -2
View File
@@ -63,7 +63,7 @@
<rng:attribute name="source" />
<rng:attribute name="destination" />
<rng:optional><rng:attribute name="form_view_ref"/></rng:optional>
<rng:optional><rng:attribute name="signal"/></rng:optional>
<rng:optional><rng:attribute name="label"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
@@ -88,7 +88,7 @@
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
<rng:ref name="shortcut"/>
<rng:ref name="shortcut"/>
<rng:ref name="separator"/>
<rng:ref name="tree"/>
<rng:ref name="group"/>
+1 -1
View File
@@ -929,7 +929,7 @@ class property(function):
res[int(prop.res_id.id)] = (prop.value and \
int(prop.value.split(',')[1])) or False
else:
res[int(prop.res_id.split(',')[1])] = prop.value or ''
res[int(prop.res_id.id)] = prop.value or ''
if self._obj:
obj = obj.pool.get(self._obj)
+25 -4
View File
@@ -1134,7 +1134,31 @@ class orm_template(object):
fields = {}
childs = True
if node.tag == 'field':
def encode(s):
if isinstance(s, unicode):
return s.encode('utf8')
return s
if node.tag in ('field', 'node', 'arrow'):
if node.get('object'):
attrs = {}
views = {}
xml = "<form>"
for f in node:
if f.tag in ('field'):
xml += etree.tostring(f, encoding="utf-8")
xml += "</form>"
new_xml = etree.fromstring(encode(xml))
ctx = context.copy()
ctx['base_model_name'] = self._name
xarch, xfields = self.pool.get(node.get('object',False)).__view_look_dom_arch(cr, user, new_xml, view_id, ctx)
views[str(f.tag)] = {
'arch': xarch,
'fields': xfields
}
attrs = {'views': views}
view = False
fields = views.get('field',False) and views['field'].get('fields',False)
if node.get('name'):
attrs = {}
try:
@@ -1253,7 +1277,6 @@ class orm_template(object):
arch = etree.tostring(node, encoding="utf-8").replace('\t', '')
#code for diagram view.
fields={}
if node.tag=='diagram':
if node.getchildren()[0].tag=='node':
@@ -1266,7 +1289,6 @@ class orm_template(object):
fields[key]=value
else:
fields = self.fields_get(cr, user, fields_def.keys(), context)
for field in fields_def:
if field == 'id':
# sometime, the view may containt the (invisible) field 'id' needed for a domain (when 2 objects have cross references)
@@ -2904,7 +2926,6 @@ class orm(orm_template):
:raise UserError: if the record is default property for other records
"""
if not ids:
return True
if isinstance(ids, (int, long)):
+1 -1
View File
@@ -77,7 +77,7 @@ class configmanager(object):
'secure' : False,
'syslog' : False,
'log_level': logging.INFO,
'assert_exit_level': logging.WARNING, # level above which a failed assert will be raised
'assert_exit_level': logging.ERROR, # level above which a failed assert will be raised
'cache_timeout': 100000,
'login_message': False,
'list_db' : True,
+1 -1
View File
@@ -907,7 +907,7 @@ def get_languages():
'es_AR': u'Spanish (AR) / Español (AR)',
'es_ES': u'Spanish / Español',
'et_EE': u'Estonian / Eesti keel',
'fa_IR': u'Persian / Iran, Islamic Republic of',
'fa_IR': u'Persian / فارس',
'fi_FI': u'Finland / Suomi',
'fr_BE': u'French (BE) / Français (BE)',
'fr_CH': u'French (CH) / Français (CH)',
+5 -4
View File
@@ -348,7 +348,8 @@ class YamlInterpreter(object):
python, statements = node.items()[0]
model = self.get_model(python.model)
statements = statements.replace("\r\n", "\n")
code_context = {'self': model, 'cr': self.cr, 'uid': self.uid, 'log': log, 'context': self.context}
code_context = {'model': model, 'cr': self.cr, 'uid': self.uid, 'log': log, 'context': self.context}
code_context.update({'self': model}) # remove me when no !python block test uses 'self' anymore
try:
code = compile(statements, self.filename, 'exec')
eval(code, {'ref': self.get_id}, code_context)
@@ -399,10 +400,10 @@ class YamlInterpreter(object):
param_model = self.get_model(param.get('model', model))
if 'search' in param:
q = eval(param['search'], self.eval_context)
ids = param_model.search(cr, uid, q)
ids = param_model.search(self.cr, self.uid, q)
value = self._get_first_result(ids)
elif 'eval' in param:
local_context = {'obj': lambda x: param_model.browse(self.cr, self.uid, x, context)}
local_context = {'obj': lambda x: param_model.browse(self.cr, self.uid, x, self.context)}
local_context.update(self.id_map)
value = eval(param['eval'], self.eval_context, local_context)
else:
@@ -590,7 +591,7 @@ class YamlInterpreter(object):
_, fields = node.items()[0]
res = {}
for fieldname, expression in fields.items():
if isinstance(expression, Eval):
if is_eval(expression):
value = eval(expression.expression, self.eval_context)
else:
value = expression
+2 -2
View File
@@ -15,7 +15,7 @@ class YamlTag(object):
return "<%s %s>" % (self.__class__.__name__, sorted(self.__dict__.items()))
class Assert(YamlTag):
def __init__(self, model, id, severity=logging.ERROR, string="NONAME", **kwargs):
def __init__(self, model, id, severity=logging.WARNING, string="NONAME", **kwargs):
self.model = model
self.id = id
self.severity = severity
@@ -29,7 +29,7 @@ class Record(YamlTag):
super(Record, self).__init__(**kwargs)
class Python(YamlTag):
def __init__(self, model, severity=logging.ERROR, name="", **kwargs):
def __init__(self, model, severity=logging.WARNING, name="", **kwargs):
self.model= model
self.severity = severity
self.name = name
+41
View File
@@ -0,0 +1,41 @@
# Persian translation for openobject-server
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-server package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
"PO-Revision-Date: 2010-04-11 04:52+0000\n"
"Last-Translator: Sadegh Ismael Nattaj <nat@sethack.com>\n"
"Language-Team: Persian <fa@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: 2010-04-12 03:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. Type: string
#. Description
#: ../openerp-server.templates:1001
msgid "Dedicated system account for the Open ERP server:"
msgstr "حساب اختصاصی سامانه برای کارپذیر اپن ای‌آر‌پی:"
#. Type: string
#. Description
#: ../openerp-server.templates:1001
msgid ""
"The Open ERP server must use a dedicated account for its operation so that "
"the system's security is not compromised by running it with superuser "
"privileges."
msgstr ""
"کارپذیر اپن ای‌آر‌پی باید از یک حساب اختصاصی برای این عملیات سود برد، "
"بنابراین امنیت سامانه با اجرای دسترسی‌های کاربرارشد به خطر نمی‌افتد."
#. Type: string
#. Description
#: ../openerp-server.templates:1001
msgid "Please choose that account's username."
msgstr "لطفا نام کاربری این حساب را برگزینید."