[MERGE] trunk

bzr revid: abo@openerp.com-20121119093707-24kmpewzu19xe5p9
This commit is contained in:
Antonin Bourguignon
2012-11-19 10:37:07 +01:00
81 changed files with 1409 additions and 363 deletions
+1 -1
View File
@@ -432,7 +432,7 @@ class account_invoice(osv.osv):
if t['state'] in ('draft', 'cancel') and t['internal_number']== False:
unlink_ids.append(t['id'])
else:
raise osv.except_osv(_('Invalid Action!'), _('You cannot delete an invoice which is open or paid. You should refund it instead.'))
raise osv.except_osv(_('Invalid Action!'), _('You can not delete an invoice which is not cancelled. You should refund it instead.'))
osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
return True
+1 -1
View File
@@ -436,7 +436,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a note..."/>
</div>
</form>
</field>
@@ -28,8 +28,8 @@
<field name="type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Accounting and Finance application installed!</field>
<field name="body"><![CDATA[<p>With OpenERP's accounting, you get instant access to your financial data, and can setup analytic accounting, forecast taxes, control budgets, easily create and send invoices, record bank statements, etc.</p>
<p>The accounting features are fully integrated with other OpenERP applications to automate all your processes: creation of customer invoices, control of supplier invoices, point-of-sale integration, automated follow-ups, etc.</p>]]></field>
<field name="body"><![CDATA[<p>With OpenERP's accounting, you get instant access to your financial data, and can setup analytic accounting, forecast taxes, control budgets, easily create and send invoices, record bank statements, etc.</p>
<p>The accounting features are fully integrated with other OpenERP applications to automate all your processes: creation of customer invoices, control of supplier invoices, point-of-sale integration, automated follow-ups, etc.</p>]]></field>
</record>
</data>
</openerp>
+10 -8
View File
@@ -377,9 +377,8 @@ class account_asset_depreciation_line(osv.osv):
move_line_obj = self.pool.get('account.move.line')
currency_obj = self.pool.get('res.currency')
created_move_ids = []
asset_ids = []
for line in self.browse(cr, uid, ids, context=context):
if currency_obj.is_zero(cr, uid, line.asset_id.currency_id, line.remaining_value):
can_close = True
depreciation_date = time.strftime('%Y-%m-%d')
period_ids = period_obj.find(cr, uid, depreciation_date, context=context)
company_currency = line.asset_id.company_id.currency_id.id
@@ -409,8 +408,8 @@ class account_asset_depreciation_line(osv.osv):
'period_id': period_ids and period_ids[0] or False,
'journal_id': journal_id,
'partner_id': partner_id,
'currency_id': company_currency <> current_currency and current_currency or False,
'amount_currency': company_currency <> current_currency and - sign * line.amount or 0.0,
'currency_id': company_currency != current_currency and current_currency or False,
'amount_currency': company_currency != current_currency and - sign * line.amount or 0.0,
'date': depreciation_date,
})
move_line_obj.create(cr, uid, {
@@ -423,16 +422,19 @@ class account_asset_depreciation_line(osv.osv):
'period_id': period_ids and period_ids[0] or False,
'journal_id': journal_id,
'partner_id': partner_id,
'currency_id': company_currency <> current_currency and current_currency or False,
'amount_currency': company_currency <> current_currency and sign * line.amount or 0.0,
'currency_id': company_currency != current_currency and current_currency or False,
'amount_currency': company_currency != current_currency and sign * line.amount or 0.0,
'analytic_account_id': line.asset_id.category_id.account_analytic_id.id,
'date': depreciation_date,
'asset_id': line.asset_id.id
})
self.write(cr, uid, line.id, {'move_id': move_id}, context=context)
created_move_ids.append(move_id)
if can_close:
asset_obj.write(cr, uid, [line.asset_id.id], {'state': 'close'}, context=context)
asset_ids.append(line.asset_id.id)
# we re-evaluate the assets to determine whether we can close them
for asset in asset_obj.browse(cr, uid, list(set(asset_ids)), context=context):
if currency_obj.is_zero(cr, uid, asset.currency_id, asset.value_residual):
asset.write({'state': 'close'})
return created_move_ids
account_asset_depreciation_line()
@@ -72,12 +72,12 @@
<field name="date" readonly="1"/>
<field name="val_date" readonly="1"/>
<field name="name"/>
<field name="statement_id" readonly="1"/>
<field name="statement_id"/>
<field name="ref" readonly="1"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="account_id" domain="[('journal_id','=',journal_id)]"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]"/>
<field name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('type', '&lt;&gt;', 'view')]"/>
<field name="amount" readonly="1" sum="Total Amount"/>
<field name="globalisation_id" string="Glob. Id"/>
<field name="globalisation_amount" string="Glob. Am."/>
@@ -100,8 +100,8 @@
<field name="ref" readonly="0"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]"/>
<field domain="[('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('type', '&lt;&gt;', 'view')]"/>
<field name="amount"/>
<field name="globalisation_id"/>
<field name="sequence" readonly="0"/>
@@ -224,7 +224,6 @@
<record id="view_crossovered_budget_line_search" model="ir.ui.view">
<field name="name">account.budget.line.search</field>
<field name="model">crossovered.budget.lines</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Budget Lines">
<field name="analytic_account_id"/>
+199
View File
@@ -0,0 +1,199 @@
# Lithuanian 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-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-11-16 06:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Lithuanian <lt@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-17 04:37+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: account_check_writing
#: selection:res.company,check_layout:0
msgid "Check on Top"
msgstr ""
#. module: account_check_writing
#: model:ir.actions.act_window,help:account_check_writing.action_write_check
msgid ""
"The check payment form allows you to track the payment you do to your "
"suppliers specially by check. When you select a supplier, the payment method "
"and an amount for the payment, OpenERP will propose to reconcile your "
"payment with the open supplier invoices or bills.You can print the check"
msgstr ""
#. module: account_check_writing
#: view:account.voucher:0
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top
msgid "Print Check"
msgstr ""
#. module: account_check_writing
#: selection:res.company,check_layout:0
msgid "Check in middle"
msgstr ""
#. module: account_check_writing
#: help:res.company,check_layout:0
msgid ""
"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. "
"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on "
"bottom is compatible with Peachtree, ACCPAC and DacEasy only"
msgstr ""
#. module: account_check_writing
#: selection:res.company,check_layout:0
msgid "Check on bottom"
msgstr ""
#. module: account_check_writing
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr ""
#. module: account_check_writing
#: help:account.journal,allow_check_writing:0
msgid "Check this if the journal is to be used for writing checks."
msgstr ""
#. module: account_check_writing
#: field:account.journal,allow_check_writing:0
msgid "Allow Check writing"
msgstr ""
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Description"
msgstr "Aprašas"
#. module: account_check_writing
#: model:ir.model,name:account_check_writing.model_account_journal
msgid "Journal"
msgstr "Žurnalas"
#. module: account_check_writing
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
msgid "Write Checks"
msgstr ""
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Discount"
msgstr ""
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Original Amount"
msgstr ""
#. module: account_check_writing
#: view:res.company:0
msgid "Configuration"
msgstr ""
#. module: account_check_writing
#: field:account.voucher,allow_check:0
msgid "Allow Check Writing"
msgstr ""
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Payment"
msgstr ""
#. module: account_check_writing
#: field:account.journal,use_preprint_check:0
msgid "Use Preprinted Check"
msgstr ""
#. module: account_check_writing
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Due Date"
msgstr ""
#. module: account_check_writing
#: model:ir.model,name:account_check_writing.model_res_company
msgid "Companies"
msgstr ""
#. module: account_check_writing
#: view:res.company:0
msgid "Default Check Layout"
msgstr ""
#. module: account_check_writing
#: constraint:account.journal:0
msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
msgid "Balance Due"
msgstr ""
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Check Amount"
msgstr ""
#. module: account_check_writing
#: model:ir.model,name:account_check_writing.model_account_voucher
msgid "Accounting Voucher"
msgstr ""
#. module: account_check_writing
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
msgstr ""
#. module: account_check_writing
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
msgstr ""
#. module: account_check_writing
#: field:account.voucher,amount_in_word:0
msgid "Amount in Word"
msgstr ""
#. module: account_check_writing
#: report:account.print.check.top:0
msgid "Open Balance"
msgstr ""
#. module: account_check_writing
#: field:res.company,check_layout:0
msgid "Choose Check layout"
msgstr ""
+5 -5
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2012-05-10 18:01+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2012-11-17 09:57+0000\n"
"Last-Translator: Stefan Rijnhart (Therp) <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: 2012-10-30 05:19+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-18 04:37+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: account_voucher
#: view:sale.receipt.report:0
@@ -846,7 +846,7 @@ msgstr ""
#: view:account.voucher:0
#: model:ir.model,name:account_voucher.model_account_voucher
msgid "Accounting Voucher"
msgstr "Betalingsintentie"
msgstr "Journaalbon"
#. module: account_voucher
#: field:account.voucher,number:0
@@ -3,3 +3,4 @@ access_ir_model_fields_anonymization_group_system,ir_model_fields_anonymization
access_ir_model_fields_anonymization_user,ir_model_fields_anonymization user,model_ir_model_fields_anonymization,,1,0,0,0
access_ir_model_fields_anonymization_history_group_system,ir_model_fields_anonymization_history group_user,model_ir_model_fields_anonymization_history,base.group_system,1,1,1,1
access_ir_model_fields_anonymization_history_user,ir_model_fields_anonymization_history user,model_ir_model_fields_anonymization_history,,1,0,0,0
access_ir_model_fields_anonymization_migration_fix,access_ir_model_fields_anonymization_migration_fix,model_ir_model_fields_anonymization_migration_fix,,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
3 access_ir_model_fields_anonymization_user ir_model_fields_anonymization user model_ir_model_fields_anonymization 1 0 0 0
4 access_ir_model_fields_anonymization_history_group_system ir_model_fields_anonymization_history group_user model_ir_model_fields_anonymization_history base.group_system 1 1 1 1
5 access_ir_model_fields_anonymization_history_user ir_model_fields_anonymization_history user model_ir_model_fields_anonymization_history 1 0 0 0
6 access_ir_model_fields_anonymization_migration_fix access_ir_model_fields_anonymization_migration_fix model_ir_model_fields_anonymization_migration_fix 1 1 1 1
+11 -2
View File
@@ -346,8 +346,13 @@ class audittrail_objects_proxy(object_proxy):
x2m_model_id = x2m_model_ids and x2m_model_ids[0] or False
assert x2m_model_id, _("'%s' Model does not exist..." %(field_obj._obj))
x2m_model = pool.get('ir.model').browse(cr, SUPERUSER_ID, x2m_model_id)
#recursive call on x2m fields that need to be checked too
data.update(self.get_data(cr, SUPERUSER_ID, pool, resource[field], x2m_model, method))
field_resource_ids = list(set(resource[field]))
if model.model == x2m_model.model:
# we need to remove current resource_id from the many2many to prevent an infinit loop
if resource_id in field_resource_ids:
field_resource_ids.remove(resource_id)
data.update(self.get_data(cr, SUPERUSER_ID, pool, field_resource_ids, x2m_model, method))
data[(model.id, resource_id)] = {'text':values_text, 'value': values}
return data
@@ -408,6 +413,10 @@ class audittrail_objects_proxy(object_proxy):
x2m_new_values_ids = new_values.get(key, {'value': {}})['value'].get(field_name, [])
# We use list(set(...)) to remove duplicates.
res_ids = list(set(x2m_old_values_ids + x2m_new_values_ids))
if model.model == x2m_model.model:
# we need to remove current resource_id from the many2many to prevent an infinit loop
if resource_id in res_ids:
res_ids.remove(resource_id)
for res_id in res_ids:
lines.update(self.prepare_audittrail_log_line(cr, SUPERUSER_ID, pool, x2m_model, res_id, method, old_values, new_values, field_list))
# if the value value is different than the old value: record the change
+67 -14
View File
@@ -1,48 +1,101 @@
import functools
import logging
import simplejson
import werkzeug.urls
import werkzeug.utils
from werkzeug.exceptions import BadRequest
import openerp
from openerp import SUPERUSER_ID
import openerp.addons.web.http as oeweb
from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect
from openerp.modules.registry import RegistryManager
_logger = logging.getLogger(__name__)
class OAuthController(openerp.addons.web.http.Controller):
#----------------------------------------------------------
# helpers
#----------------------------------------------------------
def fragment_to_query_string(func):
@functools.wraps(func)
def wrapper(self, req, **kw):
if not kw:
return """<html><head><script>
var l = window.location;
var q = l.hash.substring(1);
var r = '/' + l.search;
if(q.length !== 0) {
var s = l.search ? (l.search === '?' ? '' : '&') : '?';
r = l.pathname + l.search + s + q;
}
window.location = r;
</script></head><body></body></html>"""
return func(self, req, **kw)
return wrapper
#----------------------------------------------------------
# Controller
#----------------------------------------------------------
class OAuthController(oeweb.Controller):
_cp_path = '/auth_oauth'
@openerp.addons.web.http.jsonrequest
@oeweb.jsonrequest
def list_providers(self, req, dbname):
try:
registry = openerp.modules.registry.RegistryManager.get(dbname)
registry = RegistryManager.get(dbname)
with registry.cursor() as cr:
providers = registry.get('auth.oauth.provider')
l = providers.read(cr, openerp.SUPERUSER_ID, providers.search(cr, openerp.SUPERUSER_ID, [('enabled','=',True)]))
l = providers.read(cr, SUPERUSER_ID, providers.search(cr, SUPERUSER_ID, [('enabled', '=', True)]))
except Exception:
l = []
return l
@openerp.addons.web.http.httprequest
@oeweb.httprequest
@fragment_to_query_string
def signin(self, req, **kw):
state = simplejson.loads(kw['state'])
dbname = state['d']
provider = state['p']
registry = openerp.modules.registry.RegistryManager.get(dbname)
context = state.get('c', {})
registry = RegistryManager.get(dbname)
with registry.cursor() as cr:
try:
u = registry.get('res.users')
credentials = u.auth_oauth(cr, openerp.SUPERUSER_ID, provider, kw)
credentials = u.auth_oauth(cr, SUPERUSER_ID, provider, kw, context=context)
cr.commit()
return openerp.addons.web.controllers.main.login_and_redirect(req, *credentials)
return login_and_redirect(req, *credentials)
except AttributeError:
# auth_signup is not installed
_logger.error("auth_signup not installed on database %s: oauth sign up cancelled."%dbname)
_logger.error("auth_signup not installed on database %s: oauth sign up cancelled." % (dbname,))
url = "/#action=login&oauth_error=1"
except Exception,e:
except Exception, e:
# signup error
_logger.exception("OAuth2: %s" % str(e))
url = "/#action=login&oauth_error=2"
return openerp.addons.web.controllers.main.set_cookie_and_redirect(req, url)
return set_cookie_and_redirect(req, url)
@oeweb.httprequest
def oea(self, req, **kw):
"""login user via OpenERP Account provider"""
dbname = kw.pop('db', None)
if not dbname:
dbname = db_monodb(req)
if not dbname:
return BadRequest()
registry = RegistryManager.get(dbname)
with registry.cursor() as cr:
IMD = registry['ir.model.data']
model, provider_id = IMD.get_object_reference(cr, SUPERUSER_ID, 'auth_oauth', 'provider_openerp')
assert model == 'auth.oauth.provider'
state = {
'd': dbname,
'p': provider_id,
'c': {'no_user_creation': True},
}
kw['state'] = simplejson.dumps(state)
return self.signin(req, **kw)
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
+21 -14
View File
@@ -24,7 +24,7 @@ class res_users(osv.Model):
('uniq_users_oauth_provider_oauth_uid', 'unique(oauth_provider_id, oauth_uid)', 'OAuth UID must be unique per provider'),
]
def auth_oauth_rpc(self, cr, uid, endpoint, access_token, context=None):
def _auth_oauth_rpc(self, cr, uid, endpoint, access_token, context=None):
params = urllib.urlencode({'access_token': access_token})
if urlparse.urlparse(endpoint)[4]:
url = endpoint + '&' + params
@@ -34,6 +34,17 @@ class res_users(osv.Model):
response = f.read()
return simplejson.loads(response)
def _auth_oauth_validate(self, cr, uid, provider, access_token, context=None):
""" return the validation data corresponding to the access token """
p = self.pool.get('auth.oauth.provider').browse(cr, uid, provider, context=context)
validation = self._auth_oauth_rpc(cr, uid, p.validation_endpoint, access_token)
if validation.get("error"):
raise Exception(validation['error'])
if p.data_endpoint:
data = self._auth_oauth_rpc(cr, uid, p.data_endpoint, access_token)
validation.update(data)
return validation
def auth_oauth(self, cr, uid, provider, params, context=None):
# Advice by Google (to avoid Confused Deputy Problem)
# if validation.audience != OUR_CLIENT_ID:
@@ -41,25 +52,21 @@ class res_users(osv.Model):
# else:
# continue with the process
access_token = params.get('access_token')
p = self.pool.get('auth.oauth.provider').browse(cr, uid, provider, context=context)
validation = self.auth_oauth_rpc(cr, uid, p.validation_endpoint, access_token)
if validation.get("error"):
raise Exception(validation['error'])
if p.data_endpoint:
data = self.auth_oauth_rpc(cr, uid, p.data_endpoint, access_token)
validation.update(data)
validation = self._auth_oauth_validate(cr, uid, provider, access_token)
# required
oauth_uid = validation['user_id']
if not oauth_uid:
raise openerp.exceptions.AccessDenied()
email = validation.get('email', 'provider_%d_user_%d' % (p.id, oauth_uid))
email = validation.get('email', 'provider_%d_user_%d' % (provider, oauth_uid))
login = email
# optional
name = validation.get('name', email)
res = self.search(cr, uid, [("oauth_uid", "=", oauth_uid), ('oauth_provider_id', '=', provider)])
if res:
assert len(res) == 1
self.write(cr, uid, res[0], {'oauth_access_token': access_token})
user = self.browse(cr, uid, res[0], context=context)
login = user.login
user.write({'oauth_access_token': access_token})
else:
# New user if signup module available
if not hasattr(self, '_signup_create_user'):
@@ -67,9 +74,9 @@ class res_users(osv.Model):
new_user = {
'name': name,
'login': email,
'login': login,
'user_email': email,
'oauth_provider_id': p.id,
'oauth_provider_id': provider,
'oauth_uid': oauth_uid,
'oauth_access_token': access_token,
'active': True,
@@ -77,7 +84,7 @@ class res_users(osv.Model):
# TODO pass signup token to allow attach new user to right partner
self._signup_create_user(cr, uid, new_user)
credentials = (cr.dbname, email, access_token)
credentials = (cr.dbname, login, access_token)
return credentials
def check_credentials(self, cr, uid, password):
+4 -13
View File
@@ -36,7 +36,10 @@ openerp.auth_oauth = function(instance) {
ev.preventDefault();
var index = $(ev.target).data('index');
var p = this.oauth_providers[index];
var ret = location.protocol+"//"+location.host+"/";
var ret = _.str.sprintf('%s//%s/auth_oauth/signin', location.protocol, location.host);
if (instance.session.debug) {
ret += '?debug';
}
var dbname = self.$("form [name=db]").val();
var state_object = {
d: dbname,
@@ -55,16 +58,4 @@ openerp.auth_oauth = function(instance) {
},
});
instance.web.WebClient = instance.web.WebClient.extend({
start: function() {
this._super.apply(this, arguments);
var params = $.deparam(window.location.hash.substring(1));
// alert(JSON.stringify(params));
if (params.hasOwnProperty('access_token')) {
var url = "/auth_oauth/signin" + '?' + $.param(params);
window.location = url;
}
},
});
};
+1 -1
View File
@@ -221,7 +221,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a message..."/>
</div>
</form>
</field>
@@ -19,19 +19,24 @@
#
##############################################################################
from osv import osv, fields
from tools.translate import _
import logging
import re
import time
from openerp.osv import osv, fields
from openerp import tools
from openerp.tools.translate import _
_logger = logging.getLogger(__name__)
try:
from mygengo import MyGengo
except ImportError:
raise osv.except_osv(_('Gengo ImportError'), _('Please install mygengo lib from http://pypi.python.org/pypi/mygengo'))
import logging
import tools
import time
_logger = logging.getLogger(__name__)
_logger.warning('Gengo library not found, Gengo features disabled. If you plan to use it, please install the mygengo library from http://pypi.python.org/pypi/mygengo')
class MyGengo(object):
def __init__(self, *args, **kwargs):
# no context for translations - so don't bother
raise ImportError('Gengo library not found, please install mygengo from http://pypi.python.org/pypi/mygengo')
GENGO_DEFAULT_LIMIT = 20
@@ -48,7 +53,7 @@ class base_gengo_translations(osv.osv_memory):
_name = 'base.gengo.translations'
_columns = {
'restart_send_job': fields.boolean("Restart Sending Job"),
'lang_id': fields.many2one('res.lang', 'Language', help="Leave empty if you don't want to restrict the request to a single language"),
'lang_id': fields.many2one('res.lang', 'Language', required=True),
}
def gengo_authentication(self, cr, uid, context=None):
@@ -62,21 +67,19 @@ class base_gengo_translations(osv.osv_memory):
by the cron) or in a dialog box (if requested by the user), thus it's important to return it
translated.
'''
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
if not user.company_id.gengo_public_key or not user.company_id.gengo_private_key:
return (False, _("Invalid Gengo configuration. Gengo authentication `Public Key` or `Private Key` is missing. Complete Gengo authentication parameters under `Settings > Companies > Gengo Parameters`."))
return (False, _("Gengo `Public Key` or `Private Key` are missing. Enter your Gengo authentication parameters under `Settings > Companies > Gengo Parameters`."))
try:
gengo = MyGengo(
public_key=user.company_id.gengo_public_key.encode('ascii'),
private_key=user.company_id.gengo_private_key.encode('ascii'),
sandbox=True,
)
gengo.getAccountStats()
return (True, gengo)
except Exception, e:
return (False, _("Gengo Connection Error\n%s") %e)
_logger.exception('Gengo connection failed')
return (False, _("Gengo connection failed with this message:\n``%s``") % e)
def do_check_schedular(self, cr, uid, xml_id, name, fn, context=None):
"""
@@ -87,7 +90,7 @@ class base_gengo_translations(osv.osv_memory):
cron_vals.update({'name': name, "function": fn})
try:
res = []
model, res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base_gengo', xml_id)
_, res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base_gengo', xml_id)
cron_pool.write(cr, uid, [res], cron_vals, context=context)
except:
#the cron job was not found, probably deleted previously, so we create it again using default values
@@ -108,7 +111,7 @@ class base_gengo_translations(osv.osv_memory):
supported_langs = self.pool.get('ir.translation')._get_all_supported_languages(cr, uid, context=context)
language = self.pool.get('ir.translation')._get_gengo_corresponding_language(wizard.lang_id.code)
if language not in supported_langs:
raise osv.except_osv(_("Warning"), _('This language is not supported by the Gengo translation services.'))
raise osv.except_osv(_("Warning"), _('This language is not supported by the Gengo translation services.'))
#send immediately a new request for the selected language (if any)
ctx = context.copy()
@@ -207,8 +210,6 @@ class base_gengo_translations(osv.osv_memory):
Send a request to Gengo with all the term_ids in a different job, get the response and update the terms in
database accordingly.
"""
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
flag, gengo = self.gengo_authentication(cr, uid, context=context)
if flag:
request = self.pack_jobs_request(cr, uid, term_ids, context=context)
@@ -6,14 +6,9 @@
<field name="model">base.gengo.translations</field>
<field name="arch" type="xml">
<form string="Gengo Request Form" version="7.0">
<group col="4">
<group>
<field name="lang_id" required="1"/>
<field name="restart_send_job"/>
</group>
<group>
<label colspan="2" string="Leave empty for requesting all the terms to Gengo that needs it, regardless of their language"/>
</group>
<group>
<field name="lang_id"/>
<field name="restart_send_job"/>
</group>
<footer>
<button name="act_update" string="Send" type="object" class="oe_highlight"/>
+3
View File
@@ -27,6 +27,9 @@ Re-implement openerp's file import system:
'depends': ['web'],
'installable': True,
'auto_install': False,
'data': [
'security/ir.model.access.csv',
],
'css': [
'static/lib/select2/select2.css',
'static/src/css/import.css',
-2
View File
@@ -224,8 +224,6 @@ class base_stage(object):
cases = self.browse(cr, uid, ids, context=context)
for case in cases:
data = {'active': True}
if case.stage_id and case.stage_id.state == 'draft':
data['date_open'] = fields.datetime.now()
if not case.user_id:
data['user_id'] = uid
self.case_set(cr, uid, [case.id], 'open', data, context=context)
+23
View File
@@ -0,0 +1,23 @@
# Lithuanian 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-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-11-15 13:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Lithuanian <lt@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-16 04:36+0000\n"
"X-Generator: Launchpad (build 16272)\n"
#. module: claim_from_delivery
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
msgid "Claim"
msgstr ""
+1 -1
View File
@@ -61,7 +61,7 @@
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">CRM application installed!</field>
<field name="body"><![CDATA[<p>From the top Sales menu you can track leads and opportunities, get accurate forecast on your sales pipeline, plan meetings and phonecalls, get realtime statistics and efficiently organize the communication with your prospects.</p>
<br />To manage quotations and sale orders, install the "Sales Management" application.</p>]]></field>
<p>To manage quotations and sale orders, install the "Sales Management" application.</p>]]></field>
</record>
<record model="mail.alias" id="default_sales_alias">
+1 -1
View File
@@ -168,7 +168,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a note..."/>
</div>
</form>
</field>
+1 -1
View File
@@ -95,7 +95,7 @@
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_ids" widget="mail_thread"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a note..."/>
<field name="message_follower_ids" widget="mail_followers"/>
</div>
</form>
+1
View File
@@ -345,6 +345,7 @@ class email_template(osv.osv):
values = self.generate_email(cr, uid, template_id, res_id, context=context)
assert 'email_from' in values, 'email_from is missing or empty after template rendering, send_mail() cannot proceed'
attachments = values.pop('attachments') or {}
del values['email_recipients'] # TODO Properly use them.
msg_id = mail_mail.create(cr, uid, values, context=context)
# link attachments
attachment_ids = []
@@ -25,6 +25,21 @@ from osv import osv
from osv import fields
def _reopen(self, res_id, model):
return {'type': 'ir.actions.act_window',
'view_mode': 'form',
'view_type': 'form',
'res_id': res_id,
'res_model': self._name,
'target': 'new',
# save original model in context, because selecting the list of available
# templates requires a model in context
'context': {
'default_model': model,
},
}
class mail_compose_message(osv.TransientModel):
_inherit = 'mail.compose.message'
@@ -42,10 +57,8 @@ class mail_compose_message(osv.TransientModel):
else:
model = context.get('default_model', context.get('active_model'))
if model:
record_ids = email_template_obj.search(cr, uid, [('model', '=', model)], context=context)
return email_template_obj.name_get(cr, uid, record_ids, context) + [(False, '')]
return []
record_ids = email_template_obj.search(cr, uid, [('model', '=', model)], context=context)
return email_template_obj.name_get(cr, uid, record_ids, context) + [(False, '')]
def default_get(self, cr, uid, fields, context=None):
if context is None:
@@ -89,6 +102,7 @@ class mail_compose_message(osv.TransientModel):
'datas_fname': attach_fname,
'res_model': model,
'res_id': res_id,
'type': 'binary', # overwrite the context default_value
}
values['attachment_ids'].append(ir_attach_obj.create(cr, uid, data_attach, context=context))
else:
@@ -109,7 +123,7 @@ class mail_compose_message(osv.TransientModel):
onchange_res['partner_ids'] = [(4, partner_id) for partner_id in onchange_res.pop('partner_ids', [])]
onchange_res['attachment_ids'] = [(4, attachment_id) for attachment_id in onchange_res.pop('attachment_ids', [])]
record.write(onchange_res)
return True
return _reopen(self, record.id, record.model)
def onchange_use_template(self, cr, uid, ids, use_template, template_id, composition_mode, model, res_id, context=None):
""" onchange_use_template (values: True or False). If use_template is
@@ -141,8 +155,8 @@ class mail_compose_message(osv.TransientModel):
'attachment_ids': [(6, 0, [att.id for att in record.attachment_ids])]
}
template_id = email_template.create(cr, uid, values, context=context)
record.write({'template_id': template_id, 'use_template': True})
return True
record.write(record.onchange_template_id(True, template_id, record.composition_mode, record.model, record.res_id)['value'])
return _reopen(self, record.id, record.model)
#------------------------------------------------------
# Wizard validation and send
@@ -14,12 +14,11 @@
</xpath>
<xpath expr="//footer" position="inside">
<group class="oe_right" col="1">
<div>Use template
<div attrs="{'invisible':[('use_template','=',False)]}">Use template
<field name="template_id" attrs="{'invisible':[('use_template','=',False)]}"
nolabel="1"
on_change="onchange_template_id(use_template, template_id, composition_mode, model, res_id, context)"/>
</div>
or
<button icon="/email_template/static/src/img/email_template_save.png"
type="object" name="save_as_template" string="Save as new template" class="oe_link"
help="Save as a new template"
+2 -2
View File
@@ -205,7 +205,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a note..."/>
</div>
</form>
</field>
@@ -473,7 +473,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a note..."/>
</div>
</form>
</field>
-1
View File
@@ -227,7 +227,6 @@
<record model='ir.ui.view' id='fleet_vehicle_tree'>
<field name="name">fleet.vehicle.tree</field>
<field name="model">fleet.vehicle</field>
<field name="sequence">1</field>
<field name="arch" type="xml">
<tree string="Vehicle" version="7.0" colors="orange:contract_renewal_due_soon and not contract_renewal_overdue;red:contract_renewal_overdue">
<field name="license_plate" />
+3 -1
View File
@@ -8,4 +8,6 @@ fleet_vehicle_access_right,fleet_vehicle_access_right,model_fleet_vehicle,,1,1,1
fleet_vehicle_log_fuel_access_right,fleet_vehicle_log_fuel_access_right,model_fleet_vehicle_log_fuel,,1,1,1,1
fleet_vehicle_log_services_access_right,fleet_vehicle_log_services_access_right,model_fleet_vehicle_log_services,,1,1,1,1
fleet_vehicle_log_contract_access_right,fleet_vehicle_log_contract_access_right,model_fleet_vehicle_log_contract,,1,1,1,1
fleet_service_type_access_right,fleet_service_type_access_right,model_fleet_service_type,,1,1,1,1
fleet_service_type_access_right,fleet_service_type_access_right,model_fleet_service_type,,1,1,1,1
access_fleet_vehicle_cost,access_fleet_vehicle_cost,model_fleet_vehicle_cost,,1,1,1,1
access_fleet_contract_state,access_fleet_contract_state,model_fleet_contract_state,,1,1,1,1
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
8 fleet_vehicle_log_fuel_access_right fleet_vehicle_log_fuel_access_right model_fleet_vehicle_log_fuel 1 1 1 1
9 fleet_vehicle_log_services_access_right fleet_vehicle_log_services_access_right model_fleet_vehicle_log_services 1 1 1 1
10 fleet_vehicle_log_contract_access_right fleet_vehicle_log_contract_access_right model_fleet_vehicle_log_contract 1 1 1 1
11 fleet_service_type_access_right fleet_service_type_access_right model_fleet_service_type 1 1 1 1
12 access_fleet_vehicle_cost access_fleet_vehicle_cost model_fleet_vehicle_cost 1 1 1 1
13 access_fleet_contract_state access_fleet_contract_state model_fleet_contract_state 1 1 1 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 22 KiB

+2 -2
View File
@@ -811,8 +811,8 @@ Once the form had been filled, the employee send it to his supervisor.
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
<field name="descriptive_text">* His direct reports will be invited through OpenERP to express a feedback on their supervisor's leadership and to give their opinion about their own engagement and effectiveness, the continuous improvement and openness in action in the company, ...
* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor.
* The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below :
* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor.
* The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below :
1 - Significantly exceeds standards and expectations required of the position
2 - Exceeds standards and expectations
+2 -2
View File
@@ -122,7 +122,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
@@ -159,7 +159,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
@@ -8,7 +8,7 @@
<field name="type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Recruitment Process application installed!</field>
<field name="body"><![CDATA[<p>Manage job positions and your company's recruitment process. This application is integrated with the Survey application to help you define interviews for different jobs.</p>
<field name="body"><![CDATA[<p>Manage job positions and your company's recruitment process. This application is integrated with the Survey application to help you define interviews for different jobs.</p>
<p>You can automatically receive job application though an email gateway, see the Human Resources settings.</p>]]></field>
</record>
@@ -184,7 +184,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a message..."/>
</div>
</form>
</field>
+31 -31
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:22+0000\n"
"Last-Translator: Ferdinand-camptocamp <Unknown>\n"
"PO-Revision-Date: 2012-11-18 00:40+0000\n"
"Last-Translator: Felix Schubert <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: 2012-10-30 05:11+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-19 04:37+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:43
@@ -37,7 +37,7 @@ msgstr "Kein Mitarbeiter für diesen Benutzer definiert!"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Group By..."
msgstr "Gruppierung..."
msgstr "Gruppieren nach"
#. module: hr_timesheet
#: model:ir.actions.act_window,help:hr_timesheet.action_hr_timesheet_sign_in
@@ -66,7 +66,7 @@ msgstr "Analytisches Journal"
#. module: hr_timesheet
#: view:hr.sign.out.project:0
msgid "Stop Working"
msgstr "Beende Arbeit"
msgstr "Arbeitsende"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_employee
@@ -172,13 +172,13 @@ msgstr "Warnung !"
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132
#, python-format
msgid "UserError"
msgstr "BenutzerFehler"
msgstr "Benutzer Fehler"
#. module: hr_timesheet
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77
#, python-format
msgid "No cost unit defined for this employee !"
msgstr "Keine Kosten Einheit für diesen Mitarbeiter definiert!"
msgstr "Kein Stundensatz für diesen Mitarbeiter definiert!"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:43
@@ -254,7 +254,7 @@ msgstr "Juli"
#: field:hr.sign.in.project,date:0
#: field:hr.sign.out.project,date_start:0
msgid "Starting Date"
msgstr "Anfangsdatum"
msgstr "Start Datum"
#. module: hr_timesheet
#: view:hr.employee:0
@@ -271,8 +271,8 @@ msgstr ""
#: help:hr.employee,product_id:0
msgid "Specifies employee's designation as a product with type 'service'."
msgstr ""
"Spezifiziere ein Produkt mit dem Typ 'Dienstleistungen' bei den "
"Mitarbeitereinstellungen auf dem Aktenreiter 'Zeiterfassung'."
"Definiert ein Produkt mit dem Typ \"Dienstleistung\" in den Einstellungen "
"für den Mitarbeiter"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
@@ -318,7 +318,7 @@ msgstr "Aufgabenbeschreibung"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Invoice Analysis"
msgstr "Statistik Rechnungen"
msgstr "Rechnungsanalyse"
#. module: hr_timesheet
#: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet
@@ -334,7 +334,7 @@ msgstr "Anmelden / Abmelden bei Projekt"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_define_analytic_structure
msgid "Define your Analytic Structure"
msgstr "Definieren Sie die Strukture der Analysekonten"
msgstr "Definiere die Struktur der Analytischen Konten"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
@@ -348,14 +348,14 @@ msgid ""
"Analytic journal is not defined for employee %s \n"
"Define an employee for the selected user and assign an analytic journal!"
msgstr ""
"Analytisches Journal ist für diesen Mitarbeiter nicht definiert: %s\n"
"Definiere einen Mitarbeiter für den ausgewählten Benutzer und weise dann "
"noch ein analytisches Konto zu!"
"Es wurde kein Analytisches Journal für diesen Mitarbeiter definiert: %s\n"
"Weise einen Mitarbeiter dem ausgewählten Benutzer und ein analytisches Konto "
"zu!"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "(Keep empty for current time)"
msgstr "(Leer lassen für aktuelle Zeit)"
msgstr "(Frei lassen für den aktuellen Zeitpunkt)"
#. module: hr_timesheet
#: view:hr.employee:0
@@ -369,9 +369,9 @@ msgid ""
"analyse costs and revenues. In OpenERP, analytic accounts are also used to "
"track customer contracts."
msgstr ""
"Um Erlöse und Kosten zu analysiren, benötigen Sie einen strukturierte "
"Analyse Kontenplan. In OpenERP wird damit auch die Entwicklung der "
"Kundenkontrakte verfolgt."
"Um Erlöse und Kosten zu analysieren, sollten Sie einen strukturierte "
"analytischen Kontenplan erstellen. In OpenERP können damit auch "
"Kundenverträge verfolgt werden."
#. module: hr_timesheet
#: field:hr.analytic.timesheet,line_id:0
@@ -424,7 +424,7 @@ msgstr ""
#. module: hr_timesheet
#: field:hr.sign.out.project,date:0
msgid "Closing Date"
msgstr "Ende Datum"
msgstr "Enddatum"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:40
@@ -475,12 +475,12 @@ msgstr "Mitarbeiter Nr."
#. module: hr_timesheet
#: view:hr.sign.out.project:0
msgid "General Information"
msgstr "Grundinformation"
msgstr "Allgemeine Informationen"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_my
msgid "My Current Timesheet"
msgstr ""
msgstr "Meine Zeiterfassung"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:40
@@ -524,8 +524,8 @@ msgid ""
"Through this menu you can register and follow your workings hours by project "
"every day."
msgstr ""
"Mit diesem Menüpunkt können Sie sich registrieren und die Arbeitsstunden je "
"Projekt und Tage verfoglen."
"Mit diesem Menüpunkt können Sie die Arbeitsstunden pro Projekt und Tage "
"verfolgen."
#. module: hr_timesheet
#: field:hr.sign.in.project,server_date:0
@@ -561,12 +561,12 @@ msgstr "Mai"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Total time"
msgstr "Gesamtzeit"
msgstr "Gesamtdauer"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "(local time on the server side)"
msgstr "(Ortszeit auf dem Server)"
msgstr "(Ortszeit auf Serverseite)"
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_hr_sign_in_project
@@ -585,7 +585,7 @@ msgstr "Februar"
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_hr_sign_out_project
msgid "Sign Out By Project"
msgstr "Anmelden / Abmelden Projekte"
msgstr "Anmelden / Abmelden Projekt"
#. module: hr_timesheet
#: view:hr.analytical.timesheet.users:0
@@ -617,7 +617,7 @@ msgid ""
"No analytic account defined on the project.\n"
"Please set one or we can not automatically fill the timesheet."
msgstr ""
"Kein Analytisches Konto für Projekt definiert.\n"
"Kein Analytisches Konto für das Projekt definiert.\n"
"Bitte definieren Sie ein Konto, damit wir automatisch die Zeiterfassung "
"buchen können."
@@ -630,12 +630,12 @@ msgstr "Benutzer"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "Start Working"
msgstr "Beginne Arbeit"
msgstr "Arbeitsbeginn"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Stats by user"
msgstr "Arbeitszeiten nach Mitarbeitern"
msgstr "Auswertung nach Mitarbeiter"
#. module: hr_timesheet
#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:42
@@ -162,7 +162,7 @@
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread"/>
<field name="message_follower_ids" widget="mail_followers"/>
</div>
</form>
+163
View File
@@ -0,0 +1,163 @@
# German 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-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-11-18 21:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-11-19 04:37+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: l10n_be_hr_payroll
#: help:hr.employee,disabled_spouse_bool:0
msgid "if recipient spouse is declared disabled by law"
msgstr ""
"Wenn Ehepartner des Empfängers gesetzlich als Behindert anerkannt wurde"
#. module: l10n_be_hr_payroll
#: help:hr.employee,disabled_children_bool:0
msgid "if recipient children is/are declared disabled by law"
msgstr ""
"Wenn Kind(er) des Empfängers gesetzlich als behindert anerkannt ist (sind)"
#. module: l10n_be_hr_payroll
#: field:hr.contract,misc_onss_deduction:0
msgid "Miscellaneous exempt ONSS "
msgstr "Diverse Ausnahmen (ONSS) "
#. module: l10n_be_hr_payroll
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_employee
msgid "Employee"
msgstr "Angestellte/r"
#. module: l10n_be_hr_payroll
#: field:hr.employee,disabled_spouse_bool:0
msgid "Disabled Spouse"
msgstr "Als Behindert anerkannter Ehepartner"
#. module: l10n_be_hr_payroll
#: field:hr.contract,retained_net_amount:0
msgid "Net retained "
msgstr "Einbehalten Netto "
#. module: l10n_be_hr_payroll
#: field:hr.employee,resident_bool:0
msgid "Nonresident"
msgstr "Im Ausland wohnhaft"
#. module: l10n_be_hr_payroll
#: help:hr.employee,resident_bool:0
msgid "if recipient lives in a foreign country"
msgstr "Wenn Empfänger in anderem Land wohnhaft ist"
#. module: l10n_be_hr_payroll
#: view:hr.employee:0
msgid "if spouse has professionnel income or not"
msgstr "Ob Ehepartner berufliches Einkommen hat oder nicht"
#. module: l10n_be_hr_payroll
#: view:hr.contract:0
msgid "Miscellaneous"
msgstr "Verschiedenes"
#. module: l10n_be_hr_payroll
#: field:hr.contract,insurance_employee_deduction:0
msgid "Insurance Group - by worker "
msgstr "Vericherungsgruppe nach Mitarbeiter "
#. module: l10n_be_hr_payroll
#: selection:hr.employee,spouse_fiscal_status:0
msgid "With Income"
msgstr "Mit Einkommen"
#. module: l10n_be_hr_payroll
#: selection:hr.employee,spouse_fiscal_status:0
msgid "Without Income"
msgstr "Ohne Einkommen"
#. module: l10n_be_hr_payroll
#: field:hr.employee,disabled_children_number:0
msgid "Number of disabled children"
msgstr "Anzahl behinderter Kinder"
#. module: l10n_be_hr_payroll
#: field:hr.contract,additional_net_amount:0
msgid "Net supplements"
msgstr "Netto-Zulagen"
#. module: l10n_be_hr_payroll
#: constraint:hr.employee:0
msgid "Error ! You cannot create recursive Hierarchy of Employees."
msgstr ""
"Fehler ! Sie können keine rekursive Hierachie bei Mitarbeitern definieren."
#. module: l10n_be_hr_payroll
#: field:hr.contract,car_company_amount:0
msgid "Company car employer"
msgstr "Firmenfahrzeug des Arbeitgebers"
#. module: l10n_be_hr_payroll
#: field:hr.contract,misc_advantage_amount:0
msgid "Benefits of various nature "
msgstr "Geldwerte Vorteile verschiedener Art "
#. module: l10n_be_hr_payroll
#: field:hr.contract,car_employee_deduction:0
msgid "Company Car Deduction for Worker"
msgstr "Abzüge beim Mitarbeiter für Firmenfahrzeug"
#. module: l10n_be_hr_payroll
#: field:hr.employee,disabled_children_bool:0
msgid "Disabled Children"
msgstr "Behinderte Kinder"
#. module: l10n_be_hr_payroll
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_contract
msgid "Contract"
msgstr "Vertrag"
#. module: l10n_be_hr_payroll
#: field:hr.contract,meal_voucher_amount:0
msgid "Check Value Meal "
msgstr "Verköstigungswert prüfen "
#. module: l10n_be_hr_payroll
#: field:hr.contract,travel_reimbursement_amount:0
msgid "Reimbursement of travel expenses"
msgstr "Erstattung von Reisespesen"
#. module: l10n_be_hr_payroll
#: constraint:hr.contract:0
msgid "Error! contract start-date must be lower then contract end-date."
msgstr ""
"Fehler! Datum des Vertragsbeginns muss zeitlich vor dem Datum des "
"Vertragsendes sein."
#. module: l10n_be_hr_payroll
#: field:hr.employee,spouse_fiscal_status:0
msgid "Tax status for spouse"
msgstr "Steuerklasse des Ehepartners"
#. module: l10n_be_hr_payroll
#: view:hr.contract:0
msgid "by Worker"
msgstr "nach Mitarbeiter"
#. module: l10n_be_hr_payroll
#: view:hr.employee:0
msgid "number of dependent children declared as disabled"
msgstr "Anzahl anhängiger, als behindert anerkannter Kinder"
#. module: l10n_be_hr_payroll
#: field:hr.contract,meal_voucher_employee_deduction:0
msgid "Check Value Meal - by worker "
msgstr "Verköstigungswerte - nach Mitarbeitern "
+172
View File
@@ -0,0 +1,172 @@
# 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-02-08 01:06+0000\n"
"PO-Revision-Date: 2012-11-16 19:54+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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-11-17 04:37+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template
msgid "Template for Fiscal Position"
msgstr "قوالب للمركز المالي"
#. module: l10n_multilang
#: sql_constraint:account.account:0
msgid "The code of the account must be unique per company !"
msgstr "يجب ان يكون كود الحساب فريداً لكل شركة !"
#. module: l10n_multilang
#: constraint:account.account.template:0
msgid ""
"Configuration Error!\n"
"You can not define children to an account with internal type different of "
"\"View\"! "
msgstr ""
"خطأ في الإعدادات!\n"
" لاتستطيع تعريف أطفال لحساب من نوع داخلي مختلف ل\"العرض\"! "
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_analytic_journal
msgid "Analytic Journal"
msgstr "يومية تحليلية"
#. module: l10n_multilang
#: constraint:account.account.template:0
msgid "Error ! You can not create recursive account templates."
msgstr "خطأ ! لا يمكنك انشاء قوالب الحاسب العودية."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_journal
msgid "Journal"
msgstr "يومية"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_chart_template
msgid "Templates for Account Chart"
msgstr "القوالب لجدول الحساب"
#. module: l10n_multilang
#: sql_constraint:account.tax:0
msgid "The description must be unique per company!"
msgstr "وصف لكل شركة يجب ان تكون فريد!"
#. module: l10n_multilang
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
msgstr "خطأ ! لايمكنك إنشاء اكواد ضريبية متداخلة."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_tax_template
msgid "account.tax.template"
msgstr "account.tax.template"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_tax
msgid "account.tax"
msgstr "account.tax"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_account
msgid "Account"
msgstr "حساب"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_wizard_multi_charts_accounts
msgid "wizard.multi.charts.accounts"
msgstr "wizard.multi.charts.accounts"
#. module: l10n_multilang
#: constraint:account.journal:0
msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
"خطأ في الإعدادات! يجب أن تكون العملة المختارة مشتركة للحسابات الإفتراضية "
"أيضأً."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_account_template
msgid "Templates for Accounts"
msgstr "قوالب للحسابات"
#. module: l10n_multilang
#: help:account.chart.template,spoken_languages:0
msgid ""
"State here the languages for which the translations of templates could be "
"loaded at the time of installation of this localization module and copied in "
"the final object when generating them from templates. You must provide the "
"language codes separated by ';'"
msgstr ""
#. module: l10n_multilang
#: constraint:account.account:0
msgid "Error ! You can not create recursive accounts."
msgstr "خطأ ! لا يمكن إنشاء حسابات تكرارية."
#. module: l10n_multilang
#: constraint:account.account:0
msgid ""
"Configuration Error! \n"
"You can not select an account type with a deferral method different of "
"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
msgstr ""
"التكوين الخطأ!\n"
"لا يمكنك اختيار نوع الحساب باستخدام طريقة التأجيل المختلفه \"عدم "
"المساواه\" للحسابات من النوع الداخلي \"الدفع / القبض\" "
#. module: l10n_multilang
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
msgstr "يجب ان يكون الاسم لليومية فريد لكل شركة!"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_analytic_account
msgid "Analytic Account"
msgstr "حسابات تحليلية"
#. module: l10n_multilang
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
msgstr "يجب ان يكون الكود لليومية فريد لكل شركة !"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_fiscal_position
msgid "Fiscal Position"
msgstr "الوضع المالي"
#. module: l10n_multilang
#: constraint:account.account:0
msgid ""
"Configuration Error! \n"
"You can not define children to an account with internal type different of "
"\"View\"! "
msgstr ""
"خطأ في الإعدادات!\n"
"لا يمكنك تحديد فرع لحساب مع نوع داخلي مختلف من \"عرض\"! "
#. module: l10n_multilang
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "خطأ! لا يمكنك إنشاء حسابات تحليلية متكررة."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_tax_code_template
msgid "Tax Code Template"
msgstr "قالب رمز الضريبة"
#. module: l10n_multilang
#: field:account.chart.template,spoken_languages:0
msgid "Spoken Languages"
msgstr "اللغات المنطوقة"
+47
View File
@@ -0,0 +1,47 @@
# 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: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2012-11-16 18:58+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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-11-17 04:37+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: l10n_pe
#: model:ir.module.module,description:l10n_pe.module_meta_information
msgid ""
"\n"
" Peruvian Accounting : chart of Account\n"
" "
msgstr ""
#. module: l10n_pe
#: model:ir.module.module,shortdesc:l10n_pe.module_meta_information
msgid "Peruvian Chart of Account"
msgstr ""
#. module: l10n_pe
#: model:ir.actions.todo,note:l10n_pe.config_call_account_template_in_minimal
msgid ""
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
"the name of the company, the chart template to follow, the no. of digits to "
"generate the code for your accounts and Bank account, currency to create "
"Journals. Thus,the pure copy of chart Template is generated.\n"
"\tThis is the same wizard that runs from Financial "
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
"Chart of Accounts from a Chart Template."
msgstr ""
"إعداد شجرة الحسابات من قالب. ستم سؤالك عن اسم المنشأة، القالب المتبع، و "
"إعداد أكواد الحسابات و البنوك، بالإضافة إلي يوميات العملة. و لذلك سيكون هناك "
"قالب جديد. \n"
"\tهذه لإعداد الحسابات."
-6
View File
@@ -21,12 +21,10 @@
<record model="res.partner" id="partner_coin_gourmand">
<field name="name">Coin gourmand</field>
<field name="supplier_lunch">True</field>
</record>
<record model="res.partner" id="partner_pizza_inn">
<field name="name">Pizza Inn</field>
<field name="supplier_lunch">True</field>
</record>
<record model="lunch.product" id="product_cheese_ham">
@@ -106,7 +104,6 @@
<field name="date" eval="time.strftime('2012-10-23')"/>
<field name="order_line_ids" eval="[]"/>
<field name="state">new</field>
<field name='company_id'>1</field>
</record>
<record model="lunch.order" id="order_2">
@@ -114,7 +111,6 @@
<field name="date" eval="time.strftime('2012-10-22')"/>
<field name="order_line_ids" eval="[]"/>
<field name="state">confirmed</field>
<field name='company_id'>1</field>
</record>
<record model="lunch.order" id="order_3">
@@ -122,7 +118,6 @@
<field name="date" eval="time.strftime('2012-10-24')"/>
<field name="order_line_ids" eval="[]"/>
<field name="state">cancelled</field>
<field name='company_id'>1</field>
</record>
<record model="lunch.order.line" id="order_line_1">
@@ -175,7 +170,6 @@
<record model="lunch.alert" id="alert_1">
<field name="message">Lunch must be ordered before 10h30 am</field>
<field name="day">days</field>
</record>
</data>
-14
View File
@@ -12,7 +12,6 @@
<record model="ir.ui.view" id="lunch_order_line_search_view">
<field name="name">Search</field>
<field name="model">lunch.order.line</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search">
<field name="name" filter_domain="['|', ('name', 'ilike', self), ('note', 'ilike', self)]"/>
@@ -34,7 +33,6 @@
<record id="view_lunch_employee_payment_filter" model="ir.ui.view">
<field name='name'>lunch employee payment</field>
<field name='model'>lunch.cashmove</field>
<field name='type'>search</field>
<field name='arch' type='xml'>
<search string="lunch employee payment">
<field name="description"/>
@@ -49,7 +47,6 @@
<record id="view_lunch_cashmove_filter" model="ir.ui.view">
<field name='name'>lunch cashmove</field>
<field name='model'>lunch.cashmove</field>
<field name='type'>search</field>
<field name='arch' type='xml'>
<search string="lunch cashmove">
<field name="description"/>
@@ -65,7 +62,6 @@
<record id="view_search_my_order" model="ir.ui.view">
<field name='name'>lunch orders</field>
<field name='model'>lunch.order</field>
<field name='type'>search</field>
<field name='arch' type='xml'>
<search string="lunch orders">
<field name="date"/>
@@ -79,7 +75,6 @@
<record model="ir.ui.view" id="alert_search_view">
<field name="name">Search</field>
<field name="model">lunch.alert</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search">
<field name="message"/>
@@ -243,7 +238,6 @@
<record model="ir.ui.view" id="product_category_form_view">
<field name="name">Product category Form</field>
<field name="model">lunch.product.category</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Products Form" version="7.0">
<sheet>
@@ -285,7 +279,6 @@
<record model="ir.ui.view" id="orders_order_lines_tree_view">
<field name="name">Order lines Tree</field>
<field name="model">lunch.order.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Order lines Tree">
<field name='date'/>
@@ -306,7 +299,6 @@
<record model="ir.ui.view" id="orders_tree_view">
<field name="name">Orders Tree View</field>
<field name="model">lunch.order</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Orders Tree">
<field name="date"/>
@@ -360,7 +352,6 @@
<record model="ir.ui.view" id="products_tree_view">
<field name="name">Products Tree</field>
<field name="model">lunch.product</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Products Tree">
<field name="name"/>
@@ -375,7 +366,6 @@
<record model="ir.ui.view" id="products_form_view">
<field name="name">Products Form</field>
<field name="model">lunch.product</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Products Form" version="7.0">
<header>
@@ -398,7 +388,6 @@
<record model="ir.ui.view" id="casmove_tree_view">
<field name="name">cashmove tree</field>
<field name="model">lunch.cashmove</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="cashmove tree">
<field name="date"/>
@@ -412,7 +401,6 @@
<record model="ir.ui.view" id="casmove_form_view">
<field name="name">cashmove form</field>
<field name="model">lunch.cashmove</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="cashmove form" version="7.0">
<sheet>
@@ -432,7 +420,6 @@
<record model="ir.ui.view" id="alert_tree_view">
<field name="name">alert tree</field>
<field name="model">lunch.alert</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="alert tree">
<field name="message"/>
@@ -446,7 +433,6 @@
<record model="ir.ui.view" id="alert_form_view">
<field name="name">alert form</field>
<field name="model">lunch.alert</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="alert tree" version="7.0">
<sheet>
+4 -1
View File
@@ -10,4 +10,7 @@ order_line_user,"Order Line user",model_lunch_order_line,group_lunch_user,1,1,1,
cashmove_user,"Cashmove user",model_lunch_cashmove,group_lunch_user,1,0,0,0
product_user,"Product user",model_lunch_product,group_lunch_user,1,0,0,0
product_category_user,"Product category user",model_lunch_product_category,group_lunch_user,1,0,0,0
alert_user,"Alert user",model_lunch_alert,group_lunch_user,1,0,0,0
alert_user,"Alert user",model_lunch_alert,group_lunch_user,1,0,0,0
access_report_order_line,access_report_order_line,model_report_lunch_order_line,,1,1,1,1
access_lunch_validation,access_lunch_validation,model_lunch_validation,,1,1,1,1
access_lunch_cancel,access_lunch_cancel,model_lunch_cancel,,1,1,1,1
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
10 cashmove_user Cashmove user model_lunch_cashmove group_lunch_user 1 0 0 0
11 product_user Product user model_lunch_product group_lunch_user 1 0 0 0
12 product_category_user Product category user model_lunch_product_category group_lunch_user 1 0 0 0
13 alert_user Alert user model_lunch_alert group_lunch_user 1 0 0 0
14 access_report_order_line access_report_order_line model_report_lunch_order_line 1 1 1 1
15 access_lunch_validation access_lunch_validation model_lunch_validation 1 1 1 1
16 access_lunch_cancel access_lunch_cancel model_lunch_cancel 1 1 1 1
+1 -2
View File
@@ -4,7 +4,6 @@
<record model="ir.ui.view" id="cancel_order_lines_view">
<field name="name">cancel order lines</field>
<field name="model">lunch.cancel</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="cancel order lines" version="7.0">
<separator string="Are you sure you want to cancel these meals?"/>
@@ -29,4 +28,4 @@
view_mode="form" target="new" view_type="form" view_id="cancel_order_lines_view"/>
</data>
</openerp>
</openerp>
+1 -1
View File
@@ -20,7 +20,7 @@
##############################################################################
from osv import osv, fields
class lunch_order_order(osv.Model):
class lunch_order_order(osv.TransientModel):
""" lunch order meal """
_name = 'lunch.order.order'
_description = 'Wizard to order a meal'
-1
View File
@@ -4,7 +4,6 @@
<record model="ir.ui.view" id="order_order_lines_view">
<field name="name">Order meal</field>
<field name="model">lunch.order.order</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Order meal" version="7.0">
<separator string="Are you sure you want to order these meals?"/>
@@ -4,7 +4,6 @@
<record model="ir.ui.view" id="validate_order_lines_view">
<field name="name">validate order lines</field>
<field name="model">lunch.validation</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="validate order lines" version="7.0">
<separator string="Did your received these meals?"/>
+2 -2
View File
@@ -19,8 +19,8 @@
<field name="type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Welcome to OpenERP!</field>
<field name="body"><![CDATA[<p>Your homepage is a summary of messages you received and key information about documents you follow.<br />
The top menu bar contains all applications you installed. You can use this &lt;i&gt;Settings&lt;/i&gt; menu to install more applications, activate others features or give access to new users.<br />
<field name="body"><![CDATA[<p>Your homepage is a summary of messages you received and key information about documents you follow.</p><p>
The top menu bar contains all applications you installed. You can use the <i>Settings</i> menu to install more applications, activate others features or give access to new users.</p><p>
To setup your preferences (name, email signature, avatar), click on the top right corner.</p>]]></field>
</record>
</data>
+1 -1
View File
@@ -130,7 +130,7 @@ class mail_group(osv.Model):
params = {
'search_view_id': search_ref and search_ref[1] or False,
'domain': [('model', '=', 'mail.group'), ('res_id', '=', mail_group_id)],
'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id},
'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id, 'search_default_message_unread': True},
'res_model': 'mail.message',
'thread_level': 1,
}
+1 -1
View File
@@ -84,7 +84,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread" options='{"thread_level": 1}'/>
<field name="message_ids" widget="mail_thread" options='{"thread_level": 1}' placeholder="Send a message to the group..."/>
</div>
</form>
</field>
+1 -1
View File
@@ -7,7 +7,7 @@
<field name="res_model">mail.message</field>
<field name="context">{
'default_model': 'res.users',
'default_res_id': uid
'default_res_id': uid,
}</field>
<field name="params" eval="&quot;{
'domain': [
+3 -2
View File
@@ -55,9 +55,10 @@ class res_partner_mail(osv.Model):
if type == 'email':
partner_ids = kwargs.get('partner_ids', [])
if thread_id not in partner_ids:
partner_ids.append(thread_id)
partner_ids.append((4, thread_id))
kwargs['partner_ids'] = partner_ids
return super(res_partner_mail, self).message_post(cr, uid, False, body=body, subject=subject,
thread_id = False
return super(res_partner_mail, self).message_post(cr, uid, thread_id, body=body, subject=subject,
type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, **kwargs)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+9 -5
View File
@@ -91,8 +91,10 @@ class res_users(osv.Model):
return user_id
def _create_welcome_message(self, cr, uid, user, context=None):
company_name = user.company_id.name if user.company_id else _('the company')
body = _('%s has joined %s.') % (user.name, company_name)
if not self.has_group(cr, uid, 'base.group_user'):
return False
company_name = user.company_id.name if user.company_id else ''
body = _('%s has joined the %s network.') % (user.name, company_name)
# TODO change SUPERUSER_ID into user.id but catch errors
return self.pool.get('res.partner').message_post(cr, SUPERUSER_ID, [user.partner_id.id],
body=body, context=context)
@@ -111,7 +113,8 @@ class res_users(osv.Model):
alias_pool.unlink(cr, uid, alias_ids, context=context)
return res
def message_post_api(self, cr, uid, thread_id, body='', subject=False, parent_id=False, attachment_ids=None, context=None):
def message_post_user_api(self, cr, uid, thread_id, body='', subject=False, parent_id=False,
attachment_ids=None, context=None, content_subtype='plaintext', **kwargs):
""" Redirect the posting of message on res.users to the related partner.
This is done because when giving the context of Chatter on the
various mailboxes, we do not have access to the current partner_id.
@@ -122,8 +125,8 @@ class res_users(osv.Model):
if isinstance(thread_id, (list, tuple)):
thread_id = thread_id[0]
partner_id = self.pool.get('res.users').read(cr, uid, thread_id, ['partner_id'], context=context)['partner_id'][0]
return self.pool.get('res.partner').message_post_api(cr, uid, partner_id, body=body, subject=subject,
parent_id=parent_id, attachment_ids=attachment_ids, context=context)
return self.pool.get('res.partner').message_post_user_api(cr, uid, partner_id, body=body, subject=subject,
parent_id=parent_id, attachment_ids=attachment_ids, context=context, content_subtype=content_subtype, **kwargs)
def message_post(self, cr, uid, thread_id, context=None, **kwargs):
""" Redirect the posting of message on res.users to the related partner.
@@ -143,6 +146,7 @@ class res_users(osv.Model):
return self.pool.get('res.partner').message_update(cr, uid, [partner_id], msg_dict,
update_vals=update_vals, context=context)
class res_users_mail_group(osv.Model):
""" Update of res.users class
- if adding groups to an user, check mail.groups linked to this user
+2
View File
@@ -17,3 +17,5 @@ access_mail_alias_system,mail.alias.system,model_mail_alias,base.group_system,1,
access_mail_message_subtype_all,mail.message.subtype.all,model_mail_message_subtype,,1,0,0,0
access_mail_vote_all,mail.vote.all,model_mail_vote,,1,1,1,1
access_mail_favorite_all,mail.favorite.all,model_mail_favorite,,1,1,1,1
access_mail_thread_all,mail.thread.all,model_mail_thread,,1,1,1,1
access_publisher_warranty_contract_all,publisher.warranty.contract.all,model_publisher_warranty_contract,,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
17 access_mail_message_subtype_all mail.message.subtype.all model_mail_message_subtype 1 0 0 0
18 access_mail_vote_all mail.vote.all model_mail_vote 1 1 1 1
19 access_mail_favorite_all mail.favorite.all model_mail_favorite 1 1 1 1
20 access_mail_thread_all mail.thread.all model_mail_thread 1 1 1 1
21 access_publisher_warranty_contract_all publisher.warranty.contract.all model_publisher_warranty_contract 1 1 1 1
+5 -2
View File
@@ -87,8 +87,11 @@
margin-bottom: 0px;
margin-top: 2px;
}
.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p{
.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p:first-of-type {
margin-top: 0px;
}
.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p {
margin-bottom: 0px;
}
@@ -115,7 +118,7 @@
padding-top:2px;
}
.openerp .oe_mail .oe_msg.oe_msg_indented .oe_msg_footer{
margin-bottom: 0px;
margin-bottom: 5px;
}
/* b) Votes (likes) */
+1 -1
View File
@@ -52,7 +52,7 @@
border-collapse: separate;
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
box-shadow: 0 1px 4px 3px rgba(0, 0, 0, 0.4);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
-o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}
+8 -11
View File
@@ -24,7 +24,7 @@ openerp.mail = function (session) {
*/
var context_keys = ['default_template_id', 'default_composition_mode',
'default_use_template', 'default_partner_ids', 'default_model',
'default_res_id', 'default_content_subtype', , 'default_subject',
'default_res_id', 'default_content_subtype', 'default_subject',
'default_body', 'active_id', 'lang', 'bin_raw', 'tz',
'active_model', 'edi_web_url_view', 'active_ids',
'default_attachment_ids']
@@ -521,8 +521,6 @@ openerp.mail = function (session) {
on_compose_fullmail: function (default_composition_mode) {
if (default_composition_mode == 'reply') {
var context = {
'default_model': this.context.default_model,
'default_res_id': this.context.default_res_id,
'default_composition_mode': default_composition_mode,
'default_parent_id': this.id,
'default_body': mail.ChatterUtils.get_text2html(this.$el ? (this.$el.find('textarea:not(.oe_compact)').val() || '') : ''),
@@ -532,7 +530,6 @@ openerp.mail = function (session) {
var context = {
'default_model': this.context.default_model,
'default_res_id': this.context.default_res_id,
'default_content_subtype': 'html',
'default_composition_mode': default_composition_mode,
'default_parent_id': this.id,
'default_body': mail.ChatterUtils.get_text2html(this.$el ? (this.$el.find('textarea:not(.oe_compact)').val() || '') : ''),
@@ -601,16 +598,15 @@ openerp.mail = function (session) {
this.parent_thread.context
]).done(function (record) {
var thread = self.parent_thread;
if (self.options.display_indented_thread < self.thread_level && thread.parent_message) {
thread = thread.parent_message.parent_thread;
var thread = thread.parent_message.parent_thread;
}
var root = thread == self.options.root_thread;
// create object and attach to the thread object
thread.message_fetch([['id', 'child_of', [self.id]]], false, [record], function (arg, data) {
data[0].no_sorted = true;
var message = thread.create_message_object( data[0] );
// insert the message on dom
thread.insert_message( message, self.$el );
thread.insert_message( message, root ? undefined : self.$el, root );
if (thread.parent_message) {
self.$el.remove();
self.parent_thread.compose_message = null;
@@ -1275,7 +1271,7 @@ openerp.mail = function (session) {
* The sort is define by the thread_level (O for newer on top).
* @param : {object} ThreadMessage object
*/
insert_message: function (message, dom_insert_after) {
insert_message: function (message, dom_insert_after, prepend) {
var self=this;
if (this.options.show_compact_message > this.thread_level) {
this.instantiate_compose_message();
@@ -1287,6 +1283,8 @@ openerp.mail = function (session) {
if (dom_insert_after) {
message.insertAfter(dom_insert_after);
}if (prepend) {
message.prependTo(self.$el);
} else {
message.appendTo(self.$el);
}
@@ -1699,7 +1697,6 @@ openerp.mail = function (session) {
views: [[false, 'form']],
target: 'new',
context: {
'default_content_subtype': 'html',
},
};
session.client.action_manager.do_action(action);
@@ -1733,7 +1730,7 @@ openerp.mail = function (session) {
view_type: 'form',
views: [[false, 'form']],
target: 'new',
context: { 'default_content_subtype': 'html' },
context: {},
};
session.client.action_manager.do_action(action);
},
-8
View File
@@ -95,14 +95,6 @@
</t>
</t>
<t t-name="mail.thread.message.private">
<div>
<span class="oe_placeholder_checkbox_private"/>
<span class="oe_send_private">This email is private.</span>
<span class="oe_send_public">I wrote for contacts and all my followers.</span>
</div>
</t>
<!--
template to the recipients list
-->
+3 -4
View File
@@ -463,7 +463,8 @@ class test_mail(test_mail_mockup.TestMailMockups):
# 1. Comment group_pigs with body_text and subject
compose_id = mail_compose.create(cr, uid,
{'subject': _subject, 'body_text': _body_text, 'partner_ids': [(4, p_c_id), (4, p_d_id)]},
{'default_composition_mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_pigs_id})
{'default_composition_mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_pigs_id,
'default_content_subtype': 'plaintext'})
compose = mail_compose.browse(cr, uid, compose_id)
# Test: mail.compose.message: composition_mode, model, res_id
self.assertEqual(compose.composition_mode, 'comment', 'mail.compose.message incorrect composition_mode')
@@ -505,10 +506,8 @@ class test_mail(test_mail_mockup.TestMailMockups):
self.assertEqual(compose.parent_id and compose.parent_id.id, message.id, 'mail.message parent_id incorrect')
# Test: mail.message: attachments
for attach in compose.attachment_ids:
self.assertEqual(attach.res_model, 'mail.group', 'mail.message attachment res_model incorrect')
self.assertEqual(attach.res_id, self.group_pigs_id, 'mail.message attachment res_id incorrect')
self.assertIn((attach.datas_fname, attach.datas.decode('base64')), _attachments_test, 'mail.message attachment name / data incorrect')
# ----------------------------------------
# CASE3: mass_mail on Pigs and Bird
# ----------------------------------------
+5 -1
View File
@@ -20,7 +20,8 @@
##############################################################################
from openerp.addons.mail.tests import test_mail_mockup
from osv.orm import except_orm
from openerp.osv.orm import except_orm
from openerp.tools.misc import mute_logger
class test_mail_access_rights(test_mail_mockup.TestMailMockups):
@@ -84,6 +85,7 @@ class test_mail_access_rights(test_mail_mockup.TestMailMockups):
msg_ids = self.mail_message.search(cr, uid, [('subject', 'like', '_Test')])
self.assertEqual(set([msg_id1, msg_id2, msg_id3, msg_id4, msg_id5, msg_id6, msg_id7, msg_id8]), set(msg_ids), 'mail_message search failed')
@mute_logger('openerp.osv.orm')
def test_05_mail_message_read_access_rights(self):
""" Test basic mail_message read access rights. """
cr, uid = self.cr, self.uid
@@ -131,6 +133,8 @@ class test_mail_access_rights(test_mail_mockup.TestMailMockups):
self.assertRaises(except_orm, self.mail_message.read,
cr, user_bert_id, message_id)
@mute_logger('openerp.addons.base.ir.ir_model')
@mute_logger('openerp.osv.orm')
def test_10_mail_flow_access_rights(self):
""" Test a Chatter-looks alike flow. """
cr, uid = self.cr, self.uid
+5 -5
View File
@@ -102,9 +102,9 @@ class mail_compose_message(osv.TransientModel):
'partner_ids': fields.many2many('res.partner',
'mail_compose_message_res_partner_rel',
'wizard_id', 'partner_id', 'Additional contacts'),
'attachment_ids': fields.one2many('ir.attachment', 'res_id',
domain=lambda self: [('res_model', '=', self._name)],
string='Attachments'),
'attachment_ids': fields.many2many('ir.attachment',
'mail_compose_message_ir_attachments_rel',
'wizard_id', 'attachment_id', 'Attachments'),
'filter_id': fields.many2one('ir.filters', 'Filters'),
'body_text': fields.text('Plain-text Contents'),
'content_subtype': fields.char('Message content subtype', size=32, readonly=1,
@@ -114,7 +114,7 @@ class mail_compose_message(osv.TransientModel):
_defaults = {
'composition_mode': 'comment',
'content_subtype': lambda self, cr, uid, ctx={}: 'plain',
'content_subtype': lambda self, cr, uid, ctx={}: 'html',
'body_text': lambda self, cr, uid, ctx={}: False,
'body': lambda self, cr, uid, ctx={}: '',
'subject': lambda self, cr, uid, ctx={}: False,
@@ -135,7 +135,7 @@ class mail_compose_message(osv.TransientModel):
related to.
:param int res_id: id of the document record this mail is related to
"""
doc_name_get = self.pool.get(model).name_get(cr, uid, res_id, context=context)
doc_name_get = self.pool.get(model).name_get(cr, uid, [res_id], context=context)
if doc_name_get:
record_name = doc_name_get[0][1]
else:
@@ -29,7 +29,7 @@
attrs="{'invisible':[('content_subtype', '=', 'plain')]}"/>
</group>
<field name="body"/>
<field name="attachment_ids" widget="one2many_binary" blockui="0"/>
<field name="attachment_ids" widget="many2many_binary"/>
<footer>
<button string="Send" name="send_mail" type="object" class="oe_highlight"/>
or
+28
View File
@@ -0,0 +1,28 @@
# Lithuanian 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-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-11-15 13:26+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Lithuanian <lt@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-16 04:36+0000\n"
"X-Generator: Launchpad (build 16272)\n"
#. module: marketing
#: model:res.groups,name:marketing.group_marketing_manager
msgid "Manager"
msgstr ""
#. module: marketing
#: model:res.groups,name:marketing.group_marketing_user
msgid "User"
msgstr ""
+1 -1
View File
@@ -8,7 +8,7 @@
<field name="type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">MRP application installed!</field>
<field name="body"><![CDATA[<p>Manage your manufacturing process with OpenERP by defining your bills of materials (BoM), routings and work centers.<br />
<field name="body"><![CDATA[<p>Manage your manufacturing process with OpenERP by defining your bills of materials (BoM), routings and work centers.</p><p>
This application supports complete integration and production scheduling for stockable goods, consumables, and services.</p>
<p>From the Manufacturing Settings, you can choose to compute production schedules periodically or just-in-time.</p>]]></field>
</record>
+25 -4
View File
@@ -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:15+0000\n"
"PO-Revision-Date: 2010-11-27 05:28+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2012-11-18 21:54+0000\n"
"Last-Translator: Dusan Laznik <laznik@mentis.si>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-30 05:22+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-19 04:37+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: mrp_jit
#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information
@@ -46,3 +46,24 @@ msgid ""
" \n"
" "
msgstr ""
"\n"
" This module allows Just In Time computation of procurement orders.\n"
"\n"
" If you install this module, you will not have to run the regular "
"procurement \n"
" scheduler anymore (but you still need to run the minimum order point "
"rule \n"
" scheduler, or for example let it run daily.)\n"
" All procurement orders will be processed immediately, which could in "
"some\n"
" cases entail a small performance impact.\n"
"\n"
" It may also increase your stock size because products are reserved as "
"soon\n"
" as possible and the scheduler time range is not taken into account "
"anymore. \n"
" In that case, you can not use priorities any more on the different "
"picking.\n"
" \n"
" \n"
" "
+1
View File
@@ -38,6 +38,7 @@ Notes can be found in the 'Home' menu.
'author': 'OpenERP SA',
'website': 'http://openerp.com',
'summary': 'Sticky notes, Collaborative, Memos',
'sequence': 9,
'depends': [
'mail',
],
+2 -2
View File
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-11-14 04:40+0000\n"
"X-Generator: Launchpad (build 16251)\n"
"X-Launchpad-Export-Date: 2012-11-15 04:42+0000\n"
"X-Generator: Launchpad (build 16265)\n"
#. module: note
#: sql_constraint:res.users:0
+3 -1
View File
@@ -20,7 +20,8 @@
##############################################################################
from openerp.addons.mail.tests import test_mail_mockup
from osv.orm import except_orm
from openerp.osv.orm import except_orm
from openerp.tools.misc import mute_logger
class test_portal(test_mail_mockup.TestMailMockups):
@@ -52,6 +53,7 @@ class test_portal(test_mail_mockup.TestMailMockups):
# Set an email address for the user running the tests, used as Sender for outgoing mails
self.res_users.write(cr, uid, uid, {'email': 'test@localhost'})
@mute_logger('openerp.addons.base.ir.ir_model')
def test_00_access_rights(self):
""" Test basic mail_message and mail_group access rights for portal users. """
cr, uid = self.cr, self.uid
@@ -0,0 +1,62 @@
# Lithuanian 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-02-08 00:37+0000\n"
"PO-Revision-Date: 2012-11-15 13:54+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Lithuanian <lt@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-16 04:36+0000\n"
"X-Generator: Launchpad (build 16272)\n"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:153
#, python-format
msgid "No Sale Pricelist Found!"
msgstr ""
#. module: product_visible_discount
#: field:product.pricelist,visible_discount:0
msgid "Visible Discount"
msgstr "Matoma Nuolaida"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:145
#, python-format
msgid "No Purchase Pricelist Found!"
msgstr "Nerastas pirkimo kainoraštis !"
#. module: product_visible_discount
#: model:ir.model,name:product_visible_discount.model_account_invoice_line
msgid "Invoice Line"
msgstr "Sąskaitos eilutė"
#. module: product_visible_discount
#: model:ir.model,name:product_visible_discount.model_product_pricelist
msgid "Pricelist"
msgstr "Kainoraštis"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:145
#, python-format
msgid "You must first define a pricelist on the supplier form!"
msgstr "Pirma turite aprašyti kainoraštį tiekėjo formoje !"
#. module: product_visible_discount
#: model:ir.model,name:product_visible_discount.model_sale_order_line
msgid "Sales Order Line"
msgstr "Pardavimo užsakymo eilutė"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:153
#, python-format
msgid "You must first define a pricelist on the customer form!"
msgstr "Pirma turite aprašyti kainoraštį pirkėjo formoje !"
+1 -1
View File
@@ -128,7 +128,7 @@
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Project Management application installed!</field>
<field name="body"><![CDATA[<p>Manage multi-level projects and tasks. You can delegate tasks, track task work, and review your planning.</p>
<p>You can manage todo lists on tasks by installing the "Todo Lists" application, supporting the Getting Things Done (GTD) methodology.</p>
<p>You can manage todo lists on tasks by installing the <i>Todo Lists</i> application, supporting the Getting Things Done (GTD) methodology.</p>
<p>You can also manage issues/bugs in projects by installing the "Issue Tracker" application.</p>]]></field>
</record>
</data>
+4 -18
View File
@@ -21,31 +21,15 @@
<field name="name">Usability</field>
</record>
<!-- Projects -->
<record id="project_project_internal" model="project.project">
<field name="name">Internal Projects</field>
<field name="parent_id" ref="all_projects_account"/>
<field name="user_id" ref="base.user_root"/>
<field name="alias_model">project.task</field>
<field name="type_ids" eval="[(6, 0, [ref('project_tt_specification'),ref('project_tt_development'),ref('project_tt_testing'),ref('project_tt_merge'),ref('project_tt_deployment')])]"/>
</record>
<record id="project_project_customer" model="project.project">
<field name="name">Customer Projects</field>
<field name="parent_id" ref="all_projects_account"/>
<field name="user_id" ref="base.user_root"/>
<field name="alias_model">project.task</field>
<field name="type_ids" eval="[(6, 0, [ref('project_tt_analysis'),ref('project_tt_specification'),ref('project_tt_negotiation'),ref('project_tt_development'),ref('project_tt_testing'),ref('project_tt_deployment')])]"/>
</record>
<record id="project_project_1" model="project.project">
<field name="date_start" eval="time.strftime('%Y-%m-01 10:00:00')"/>
<field name="state">open</field>
<field name="type">normal</field>
<field name="name">The Jackson Group's Project</field>
<field name="color">3</field>
<field name="partner_id" ref="base.res_partner_10"/>
<field name="parent_id" ref="all_projects_account"/>
<field name="privacy_visibility">followers</field>
<field name="privacy_visibility">public</field>
<field name="members" eval="[(6, 0, [
ref('base.user_root'),
ref('base.user_demo')])]"/>
@@ -58,6 +42,7 @@
<record id="project_project_2" model="project.project">
<field name="name">Research &amp; Development</field>
<field name="parent_id" ref="all_projects_account"/>
<field name="privacy_visibility">public</field>
<field name="user_id" ref="base.user_demo"/>
<field name="alias_model">project.task</field>
<field name="type_ids" eval="[(6, 0, [ref('project_tt_specification'),ref('project_tt_development'),ref('project_tt_testing'),ref('project_tt_merge'),ref('project_tt_deployment')])]"/>
@@ -69,6 +54,7 @@
<field name="name">E-Learning Integration</field>
<field name="user_id" ref="base.user_demo"/>
<field name="alias_model">project.task</field>
<field name="privacy_visibility">public</field>
<field name="members" eval="[(6, 0, [
ref('base.user_root'),
ref('base.user_demo')])]"/>
+1 -1
View File
@@ -24,7 +24,7 @@
'name': 'Todo Lists',
'version': '1.0',
'category': 'Project Management',
'sequence': 9,
'sequence': 100,
'summary': 'Personal Tasks, Contexts, Timeboxes',
'description': """
Implement concepts of the "Getting Things Done" methodology
+1 -1
View File
@@ -32,7 +32,7 @@
<field name="type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Todo Lists application installed!</field>
<field name="body"><![CDATA[<p>Add todo items on project tasks, to help you organize your work.
<field name="body"><![CDATA[<p>Add todo items on project tasks, to help you organize your work.</p><p>
This application supports the Getting Things Done (GTD) methodology, based on David Allen's book.</p>]]></field>
</record>
+2 -2
View File
@@ -38,8 +38,8 @@
<field name="type">notification</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Issue Tracker application installed!</field>
<field name="body"><![CDATA[<p>Manage the issues you might face in a project, such as bugs in a system, client complaints or material breakdowns.
You can record issues, assign them to a responsible person, and keep track of their status as they evolve over time.
<field name="body"><![CDATA[<p>Manage the issues you might face in a project, such as bugs in a system, client complaints or material breakdowns.</p><p>
You can record issues, assign them to a responsible person, and keep track of their status as they evolve over time.</p><p>
Access all issues from the top Project menu, and access the issues of a specific project via the projects gallery view.</p>]]></field>
</record>
@@ -1,5 +1,24 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="project.project_project_1" model="project.project">
<field name="use_issues" eval="True"/>
</record>
<record id="project.project_project_2" model="project.project">
<field name="use_issues" eval="True"/>
</record>
<record id="project.project_project_3" model="project.project">
<field name="use_issues" eval="True"/>
</record>
<record id="project.project_project_4" model="project.project">
<field name="use_issues" eval="True"/>
</record>
<record id="project.project_project_5" model="project.project">
<field name="use_issues" eval="True"/>
</record>
</data>
<data noupdate="1">
<!-- Categories -->
@@ -121,8 +121,8 @@
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]" position="inside">
<a t-if="record.use_phases.raw_value"
name="%(act_project_phases)d" type="action">
<span t-if="record.phase_count.raw_value gt 1">Phases(<field name="phase_count"/>)</span>
<span t-if="record.phase_count.raw_value lt 2">Phase(<field name="phase_count"/>)</span>
<span t-if="record.phase_count.raw_value gt 1"><field name="phase_count"/> Phases</span>
<span t-if="record.phase_count.raw_value lt 2"><field name="phase_count"/> Phase</span>
</a>
</xpath>
</field>
+365 -95
View File
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-09-20 07:29+0000\n"
"PO-Revision-Date: 2009-09-08 12:39+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2012-11-16 12:35+0000\n"
"Last-Translator: Normunds (Alistek) <Unknown>\n"
"Language-Team: Latvian <lv@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-10-30 05:08+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-17 04:36+0000\n"
"X-Generator: Launchpad (build 16278)\n"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice_advance.py:215
@@ -161,14 +161,14 @@ msgstr ""
#. module: sale
#: field:sale.order,date_confirm:0
msgid "Confirmation Date"
msgstr ""
msgstr "Apstiprināšanas Datums"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
#: view:sale.report:0
msgid "Group By..."
msgstr ""
msgstr "Grupēt Pēc..."
#. module: sale
#: view:sale.order.line:0
@@ -209,7 +209,7 @@ msgstr ""
#. module: sale
#: field:sale.report,state:0
msgid "Order State"
msgstr "Pasūtījuma statuss"
msgstr "Pasūtījuma Statuss"
#. module: sale
#: help:sale.config.settings,module_account_analytic_analysis:0
@@ -228,7 +228,7 @@ msgstr ""
#: view:sale.order:0
#: view:sale.order.line:0
msgid "To Invoice"
msgstr ""
msgstr "Piestādīt Rēķinu"
#. module: sale
#: view:sale.order.line:0
@@ -239,7 +239,7 @@ msgstr ""
#. module: sale
#: help:sale.order,date_confirm:0
msgid "Date on which sales order is confirmed."
msgstr ""
msgstr "Datums, kurā pasūtījums tika apstiprināts."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree5
@@ -247,12 +247,12 @@ msgstr ""
#: view:sale.order:0
#: view:sale.report:0
msgid "Quotations"
msgstr ""
msgstr "Tāmējumi"
#. module: sale
#: selection:sale.report,month:0
msgid "March"
msgstr ""
msgstr "Marts"
#. module: sale
#: code:addons/sale/sale.py:558
@@ -277,12 +277,12 @@ msgstr ""
#: field:sale.report,company_id:0
#: field:sale.shop,company_id:0
msgid "Company"
msgstr ""
msgstr "Uzņēmums"
#. module: sale
#: field:sale.make.invoice,invoice_date:0
msgid "Invoice Date"
msgstr ""
msgstr "Rēķina Datums"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_tree3
@@ -292,7 +292,7 @@ msgstr ""
#. module: sale
#: help:sale.advance.payment.inv,amount:0
msgid "The amount to be invoiced in advance."
msgstr ""
msgstr "Priekšapmaksas rēķina summa."
#. module: sale
#: selection:sale.order,state:0
@@ -321,7 +321,7 @@ msgstr ""
#. module: sale
#: help:sale.order,amount_total:0
msgid "The total amount."
msgstr ""
msgstr "Summa"
#. module: sale
#: view:sale.report:0
@@ -405,7 +405,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "September"
msgstr ""
msgstr "Septembris"
#. module: sale
#: field:sale.order,amount_tax:0
@@ -437,7 +437,7 @@ msgstr ""
#. module: sale
#: report:sale.order:0
msgid "Net Total :"
msgstr "Tīrais kopā:"
msgstr "Neto Summa:"
#. module: sale
#: help:sale.config.settings,module_analytic_user_function:0
@@ -456,7 +456,7 @@ msgstr ""
#: selection:sale.order.line,state:0
#: selection:sale.report,state:0
msgid "Cancelled"
msgstr ""
msgstr "Atcelts"
#. module: sale
#: view:sale.order.line:0
@@ -490,7 +490,7 @@ msgstr "Veikals"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree2
msgid "Sales in Exception"
msgstr ""
msgstr "Veiktas Izmaiņas"
#. module: sale
#: field:sale.order,partner_invoice_id:0
@@ -500,7 +500,7 @@ msgstr "Rēķina Adrese"
#. module: sale
#: help:sale.order,create_date:0
msgid "Date on which sales order is created."
msgstr ""
msgstr "Datums, kurā izveidots pasūtījums."
#. module: sale
#: view:res.partner:0
@@ -516,7 +516,7 @@ msgstr "Veidot Rēķinu"
#: view:sale.make.invoice:0
#: view:sale.order.line.make.invoice:0
msgid "Create Invoices"
msgstr ""
msgstr "Veidot Rēķinus"
#. module: sale
#: report:sale.order:0
@@ -537,13 +537,13 @@ msgstr ""
#. module: sale
#: field:sale.report,date_confirm:0
msgid "Date Confirm"
msgstr ""
msgstr "Apstiprināšanas Datums"
#. module: sale
#: view:sale.report:0
#: field:sale.report,nbr:0
msgid "# of Lines"
msgstr ""
msgstr "Rindu skaits"
#. module: sale
#: help:sale.order,message_summary:0
@@ -561,7 +561,7 @@ msgstr ""
#: view:sale.report:0
#: field:sale.report,product_uom_qty:0
msgid "# of Qty"
msgstr ""
msgstr "Daudz."
#. module: sale
#: report:sale.order:0
@@ -588,12 +588,12 @@ msgstr ""
#: view:sale.order:0
#, python-format
msgid "Sales Order"
msgstr ""
msgstr "Pasūtījums"
#. module: sale
#: field:sale.order.line,product_uos_qty:0
msgid "Quantity (UoS)"
msgstr ""
msgstr "Daudzums (Pārdošanas mērvienība)"
#. module: sale
#: view:sale.order.line:0
@@ -603,7 +603,7 @@ msgstr ""
#. module: sale
#: field:sale.advance.payment.inv,amount:0
msgid "Advance Amount"
msgstr ""
msgstr "Priekšapmaksas Summa"
#. module: sale
#: selection:sale.order.line,state:0
@@ -657,7 +657,7 @@ msgstr ""
#: view:sale.report:0
#: field:sale.report,year:0
msgid "Year"
msgstr ""
msgstr "Gads"
#. module: sale
#: field:sale.config.settings,group_uom:0
@@ -710,12 +710,12 @@ msgstr "Rēķina pozīcijas"
#: view:sale.report:0
#: field:sale.report,price_total:0
msgid "Total Price"
msgstr ""
msgstr "Cena Kopā"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree
msgid "Old Quotations"
msgstr ""
msgstr "Vecie Tāmējumi"
#. module: sale
#: help:sale.config.settings,module_sale_journal:0
@@ -735,7 +735,7 @@ msgstr ""
#: model:ir.actions.act_window,name:sale.action_sale_order_make_invoice
#: model:ir.actions.act_window,name:sale.action_view_sale_order_line_make_invoice
msgid "Make Invoices"
msgstr ""
msgstr "Veidot Rēķinus"
#. module: sale
#: model:ir.actions.server,name:sale.actions_server_sale_order_read
@@ -766,7 +766,7 @@ msgstr ""
#. module: sale
#: field:sale.order,create_date:0
msgid "Creation Date"
msgstr ""
msgstr "Izveides Datums"
#. module: sale
#: selection:sale.order,state:0
@@ -777,7 +777,7 @@ msgstr ""
#. module: sale
#: help:sale.order,partner_invoice_id:0
msgid "Invoice address for current sales order."
msgstr ""
msgstr "Pasūtījuma rēķina adrese"
#. module: sale
#: selection:sale.order,invoice_quantity:0
@@ -814,24 +814,24 @@ msgstr "Kopā:"
#. module: sale
#: view:sale.report:0
msgid "My Sales"
msgstr ""
msgstr "Mana Pārdošana"
#. module: sale
#: code:addons/sale/sale.py:253
#: code:addons/sale/sale.py:822
#, python-format
msgid "Invalid action !"
msgstr "Nepareiza darbība!"
msgstr "Nederīga darbība!"
#. module: sale
#: field:sale.order,fiscal_position:0
msgid "Fiscal Position"
msgstr "Fiskālā Pozīcija"
msgstr "Nodokļu Profils"
#. module: sale
#: selection:sale.report,month:0
msgid "July"
msgstr ""
msgstr "Jūlijs"
#. module: sale
#: field:account.config.settings,module_sale_analytic_plans:0
@@ -903,12 +903,12 @@ msgstr ""
#. module: sale
#: report:sale.order:0
msgid "Quotation Date"
msgstr ""
msgstr "Tāmējuma Datums"
#. module: sale
#: view:sale.order:0
msgid "Order Date"
msgstr ""
msgstr "Pasūtījuma datums"
#. module: sale
#: help:sale.order,order_policy:0
@@ -946,7 +946,7 @@ msgstr ""
#: view:sale.report:0
#: field:sale.report,partner_id:0
msgid "Partner"
msgstr ""
msgstr "Partneris"
#. module: sale
#: view:sale.advance.payment.inv:0
@@ -976,7 +976,7 @@ msgstr ""
#. module: sale
#: model:ir.model,name:sale.model_sale_make_invoice
msgid "Sales Make Invoice"
msgstr ""
msgstr "Izrakstīt Rēķinu"
#. module: sale
#: model:ir.actions.act_window,help:sale.action_order_tree5
@@ -1040,7 +1040,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "December"
msgstr ""
msgstr "Decembris"
#. module: sale
#: view:sale.config.settings:0
@@ -1050,13 +1050,13 @@ msgstr ""
#. module: sale
#: view:sale.order.line:0
msgid "Shipped"
msgstr ""
msgstr "Piegādāts"
#. module: sale
#: view:sale.report:0
#: field:sale.report,month:0
msgid "Month"
msgstr ""
msgstr "Mēnesis"
#. module: sale
#: model:email.template,subject:sale.email_template_edi_sale
@@ -1077,13 +1077,13 @@ msgstr ""
#. module: sale
#: view:sale.order.line:0
msgid "Uninvoiced"
msgstr ""
msgstr "Nav piestādīts rēķins"
#. module: sale
#: view:sale.report:0
#: field:sale.report,categ_id:0
msgid "Category of Product"
msgstr ""
msgstr "Produkta Kategorija"
#. module: sale
#: code:addons/sale/sale.py:557
@@ -1109,7 +1109,7 @@ msgstr ""
#. module: sale
#: field:sale.shop,name:0
msgid "Shop Name"
msgstr ""
msgstr "Tirdzniecības Punkta Nosaukums"
#. module: sale
#: code:addons/sale/sale.py:253
@@ -1121,7 +1121,7 @@ msgstr ""
#. module: sale
#: report:sale.order:0
msgid "Taxes :"
msgstr "Nodokļi"
msgstr "Nodokļi:"
#. module: sale
#: code:addons/sale/sale.py:658
@@ -1137,7 +1137,7 @@ msgstr ""
#. module: sale
#: model:ir.model,name:sale.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr ""
msgstr "Priekšapmaksas Rēķins"
#. module: sale
#: model:ir.actions.client,name:sale.action_client_sale_menu
@@ -1147,13 +1147,13 @@ msgstr ""
#. module: sale
#: selection:sale.report,state:0
msgid "In Progress"
msgstr ""
msgstr "Apstrādē"
#. module: sale
#: code:addons/sale/sale.py:867
#, python-format
msgid "No Customer Defined !"
msgstr ""
msgstr "Klients nav Definēts!"
#. module: sale
#: view:sale.make.invoice:0
@@ -1226,7 +1226,7 @@ msgstr "Grupēt rēķinus"
#. module: sale
#: help:sale.order,amount_tax:0
msgid "The tax amount."
msgstr ""
msgstr "Nodokļa summa."
#. module: sale
#: view:sale.order:0
@@ -1245,7 +1245,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "August"
msgstr ""
msgstr "Augusts"
#. module: sale
#: view:sale.order:0
@@ -1255,7 +1255,7 @@ msgstr ""
#. module: sale
#: model:process.node,note:sale.process_node_saleorder0
msgid "Drives procurement and invoicing"
msgstr ""
msgstr "Nodrošina iepirkumu un rēķinu piestādīšanas procesu"
#. module: sale
#: model:ir.actions.act_window,help:sale.action_order_form
@@ -1275,7 +1275,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "June"
msgstr ""
msgstr "Jūnijs"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_email_templates
@@ -1313,12 +1313,12 @@ msgstr ""
#: model:ir.model,name:sale.model_sale_shop
#: view:sale.shop:0
msgid "Sales Shop"
msgstr ""
msgstr "Tirdzniecības Kanāls"
#. module: sale
#: model:ir.model,name:sale.model_sale_report
msgid "Sales Orders Statistics"
msgstr ""
msgstr "Pasūtījumu Statistika"
#. module: sale
#: field:sale.order,date_order:0
@@ -1328,17 +1328,17 @@ msgstr ""
#. module: sale
#: model:ir.model,name:sale.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
msgstr "Pasūtījuma Rinda"
#. module: sale
#: selection:sale.report,month:0
msgid "November"
msgstr ""
msgstr "Novembris"
#. module: sale
#: view:sale.report:0
msgid "Extended Filters..."
msgstr ""
msgstr "Paplašinātie filtri..."
#. module: sale
#: code:addons/sale/wizard/sale_line_invoice.py:111
@@ -1356,7 +1356,7 @@ msgstr ""
#. module: sale
#: field:sale.advance.payment.inv,product_id:0
msgid "Advance Product"
msgstr ""
msgstr "Priekšapmaksas Prece"
#. module: sale
#: selection:sale.order.line,state:0
@@ -1366,7 +1366,7 @@ msgstr "Kļūda"
#. module: sale
#: selection:sale.report,month:0
msgid "October"
msgstr ""
msgstr "Oktobris"
#. module: sale
#: model:process.transition,note:sale.process_transition_invoice0
@@ -1395,7 +1395,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "January"
msgstr ""
msgstr "Janvāris"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree4
@@ -1521,7 +1521,7 @@ msgstr ""
#. module: sale
#: model:process.node,note:sale.process_node_order0
msgid "Confirmed sales order to invoice."
msgstr ""
msgstr "Apstiprinātie pasūtījumi rēķina piestādīšanai."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_product_tree
@@ -1552,7 +1552,7 @@ msgstr ""
#: view:sale.report:0
#: field:sale.report,day:0
msgid "Day"
msgstr ""
msgstr "Diena"
#. module: sale
#: view:sale.order:0
@@ -1616,12 +1616,12 @@ msgstr ""
#: model:process.node,name:sale.process_node_quotation0
#: selection:sale.report,state:0
msgid "Quotation"
msgstr ""
msgstr "Tāme"
#. module: sale
#: view:sale.order.line:0
msgid "Search Uninvoiced Lines"
msgstr ""
msgstr "Meklēt Rindas, par kurām nav piestādīti Rēķini"
#. module: sale
#: model:ir.model,name:sale.model_account_config_settings
@@ -1656,7 +1656,7 @@ msgstr ""
#. module: sale
#: view:sale.order.line:0
msgid "To Do"
msgstr ""
msgstr "Veicamais"
#. module: sale
#: report:sale.order:0
@@ -1694,7 +1694,7 @@ msgstr ""
#: model:ir.ui.menu,name:sale.menu_report_product_all
#: view:sale.report:0
msgid "Sales Analysis"
msgstr ""
msgstr "Pārdošanu Analīze"
#. module: sale
#: help:sale.order,pricelist_id:0
@@ -1714,7 +1714,7 @@ msgstr "Izveidot Rēķinu"
#. module: sale
#: help:sale.order,amount_untaxed:0
msgid "The amount without tax."
msgstr ""
msgstr "Summa bez nodokļiem."
#. module: sale
#: view:sale.order.line:0
@@ -1724,7 +1724,7 @@ msgstr ""
#. module: sale
#: help:sale.order,invoiced:0
msgid "It indicates that an invoice has been paid."
msgstr ""
msgstr "Norāda, ka rēķins ir apmaksāts."
#. module: sale
#: code:addons/sale/sale.py:822
@@ -1776,7 +1776,7 @@ msgstr ""
#. module: sale
#: selection:sale.report,month:0
msgid "May"
msgstr ""
msgstr "Maijs"
#. module: sale
#: code:addons/sale/sale.py:766
@@ -1823,7 +1823,7 @@ msgstr ""
#. module: sale
#: view:sale.order:0
msgid "Other Information"
msgstr ""
msgstr "Cita Informācija"
#. module: sale
#: view:res.partner:0
@@ -1838,7 +1838,7 @@ msgstr "Sk."
#. module: sale
#: model:process.node,note:sale.process_node_invoice0
msgid "To be reviewed by the accountant."
msgstr ""
msgstr "Pārbaudīt Grāmatvedim."
#. module: sale
#: view:sale.order:0
@@ -1853,7 +1853,7 @@ msgstr ""
#. module: sale
#: help:sale.order,partner_shipping_id:0
msgid "Shipping address for current sales order."
msgstr ""
msgstr "Piegādes adrese pasūtījumam."
#. module: sale
#: selection:sale.order,state:0
@@ -1880,17 +1880,17 @@ msgstr "Klients"
#. module: sale
#: model:product.template,name:sale.advance_product_0_product_template
msgid "Advance"
msgstr ""
msgstr "Priekšapmaksa"
#. module: sale
#: selection:sale.report,month:0
msgid "February"
msgstr ""
msgstr "Februāris"
#. module: sale
#: field:sale.order,invoice_quantity:0
msgid "Invoice on"
msgstr ""
msgstr "Rēķins pēc"
#. module: sale
#: selection:sale.advance.payment.inv,advance_payment_method:0
@@ -1911,7 +1911,7 @@ msgstr "Datums, kad tika pasūtīts"
#. module: sale
#: field:sale.order.line,product_uos:0
msgid "Product UoS"
msgstr ""
msgstr "Produkta pārdošanas mērvienība"
#. module: sale
#: help:account.config.settings,group_analytic_account_for_sales:0
@@ -1921,22 +1921,22 @@ msgstr ""
#. module: sale
#: model:process.node,note:sale.process_node_quotation0
msgid "Draft state of sales order"
msgstr ""
msgstr "Pasūtījuma melnraksta statuss"
#. module: sale
#: field:sale.order,origin:0
msgid "Source Document"
msgstr ""
msgstr "Pamatojuma Dokuments"
#. module: sale
#: selection:sale.report,month:0
msgid "April"
msgstr ""
msgstr "Aprīlis"
#. module: sale
#: selection:sale.report,state:0
msgid "Manual In Progress"
msgstr ""
msgstr "Manuāls Progresā"
#. module: sale
#: model:ir.actions.server,name:sale.actions_server_sale_order_unread
@@ -1978,7 +1978,7 @@ msgstr ""
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Search Sales Order"
msgstr ""
msgstr "Meklēt Pasūtījumu"
#. module: sale
#: view:sale.config.settings:0
@@ -2005,12 +2005,12 @@ msgstr ""
#. module: sale
#: model:process.transition,name:sale.process_transition_saleinvoice0
msgid "From a sales order"
msgstr ""
msgstr "No pasūtījuma"
#. module: sale
#: view:sale.order:0
msgid "Ignore Exception"
msgstr ""
msgstr "Ignorēt Brīdinājumu"
#. module: sale
#: model:process.transition,note:sale.process_transition_saleinvoice0
@@ -2035,7 +2035,7 @@ msgstr ""
#. module: sale
#: help:sale.order,project_id:0
msgid "The analytic account related to a sales order."
msgstr ""
msgstr "Ar pasūtījumu saistītais analītiskais konts."
#. module: sale
#: report:sale.order:0
@@ -2086,7 +2086,7 @@ msgstr ""
#. module: sale
#: field:sale.order,client_order_ref:0
msgid "Customer Reference"
msgstr ""
msgstr "Klienta Kods"
#. module: sale
#: view:sale.report:0
@@ -2113,7 +2113,7 @@ msgstr ""
#. module: sale
#: view:sale.order:0
msgid "Total Tax Included"
msgstr ""
msgstr "Iekļauto Nodokļu Summa"
#. module: sale
#: field:sale.order,invoice_exists:0
@@ -2360,9 +2360,6 @@ msgstr ""
#~ msgid "Assign"
#~ msgstr "Piešķirt"
#~ msgid "Delivery Order Only"
#~ msgstr "Piegādes Pasūtījums Tikai"
#~ msgid "Sales order lines"
#~ msgstr "Tirdzniecības pasūtījuma pozīcijas"
@@ -2381,9 +2378,6 @@ msgstr ""
#~ msgid "Shipping & Manual Invoice"
#~ msgstr "Piegāde un Manuāls Rēķins"
#~ msgid "UoM"
#~ msgstr "mērv."
#~ msgid "Sale Invoice"
#~ msgstr "Rēķins"
@@ -2484,3 +2478,279 @@ msgstr ""
#~ msgid "Invoice Based on Deliveries"
#~ msgstr "Rēķins pēc Piegādes"
#~ msgid "Sales by Salesman in last 90 days"
#~ msgstr "Pārdošana pa Pārdevējiem pēdējās 90 dienās"
#~ msgid "Configure Sales Order Logistics"
#~ msgstr "Konfigurēt Pasūtījuma Loģistiku"
#~ msgid "Allows you to compute delivery costs on your quotations."
#~ msgstr "Ļauj aprēķināt piegādes izmaksas."
#~ msgid ""
#~ "If you don't have enough stock available to deliver all at once, do you "
#~ "accept partial shipments or not?"
#~ msgstr ""
#~ "Vai piegādāt pasūtījumu pa daļām, ja noliktavā nav iespējams piegādāt visu "
#~ "pasūtījumu vienlaicīgi?"
#, python-format
#~ msgid "The quotation '%s' has been converted to a sales order."
#~ msgstr "Tāmējums \"%s\" tika pārveidots par pasūtījumu."
#~ msgid "Dates"
#~ msgstr "Datumi"
#~ msgid "Sales by Salesman"
#~ msgstr "Pārdošana pēc Pārdevējiem"
#~ msgid "Conditions"
#~ msgstr "Nosacījumi"
#~ msgid "Sales Manager Dashboard"
#~ msgstr "Pārdevēja Instrumentu Panelis"
#~ msgid "Configure"
#~ msgstr "Konfigurēt"
#, python-format
#~ msgid "Could not cancel this sales order !"
#~ msgstr "Nevar atcelt pasūtījumu!"
#~ msgid "Number Packages"
#~ msgstr "Iepakojumu Skaits"
#, python-format
#~ msgid "(n/a)"
#~ msgstr "(nav pieejams)"
#~ msgid "Order Reference must be unique !"
#~ msgstr "Pasūtījuma kodam ir jābūt unikālam!"
#~ msgid "Lines to Invoice"
#~ msgstr "Rindas, par kurām piestādīt Rēķinu."
#~ msgid "Do you really want to create the invoice(s) ?"
#~ msgstr "Vai tiešām vēlaties piestādīt rēķinu(-s)?"
#~ msgid "All Quotations"
#~ msgstr "Visi Tāmējumi"
#, python-format
#~ msgid "Could not cancel sales order line!"
#~ msgstr "Nevar atcelt pasūtījuma rindu!"
#~ msgid "Sales By Month"
#~ msgstr "Pārdošana Pa Mēnešiem"
#~ msgid "Procurement of sold material"
#~ msgstr "Pārdoto preču piegāde"
#~ msgid " Year "
#~ msgstr " Gads "
#~ msgid "Companies"
#~ msgstr "Uzņēmumi"
#~ msgid ""
#~ "The name and address of the contact who requested the order or quotation."
#~ msgstr "Pasūtītāja vārds un adrese."
#~ msgid "Create Final Invoice"
#~ msgstr "Veidot Gala Rēķinu"
#~ msgid "Sales by Partner"
#~ msgstr "Pārdošana pa Partneriem"
#~ msgid "Sales Order Dates"
#~ msgstr "Pasūtījumu Datumi"
#~ msgid "Open Invoice"
#~ msgstr "Atvērt Rēķinu"
#~ msgid "on order"
#~ msgstr "pie pasūtījuma"
#~ msgid "Delivery Costs"
#~ msgstr "Piegādes Izmaksas"
#~ msgid "Deliveries to Invoice"
#~ msgstr "Piegādes, par kurām piestādīt rēķinus"
#~ msgid "Order date"
#~ msgstr "Pasūtījuma datums"
#~ msgid "Invoicing"
#~ msgstr "Rēķinu izrakstīšana"
#, python-format
#~ msgid "The sales order '%s' has been cancelled."
#~ msgstr "Pasūtījums \"%s\" ir atcelts."
#~ msgid "Configuration Progress"
#~ msgstr "Konfigurācijas Progress"
#~ msgid "You invoice has been successfully created!"
#~ msgstr "Rēķins ir veiksmīgi izveidots!"
#~ msgid "Shipped Qty"
#~ msgstr "Piegādātais Daudz."
#~ msgid "Delivered"
#~ msgstr "Piegādāts"
#, python-format
#~ msgid "The sales order '%s' has been set in draft state."
#~ msgstr "Pasūtījums \"%s\" ir atzīmēts kā melnraksts."
#, python-format
#~ msgid "Warning !"
#~ msgstr "Uzmanību!"
#~ msgid "Procurement Order"
#~ msgstr "Iepirkuma Pasūtījums"
#~ msgid "UoM"
#~ msgstr "Mērv."
#, python-format
#~ msgid "You must first cancel stock moves attached to this sales order line."
#~ msgstr "Vispirms jāatceļ saistītie noliktavas grāmatojumi."
#~ msgid "Sales Open Invoice"
#~ msgstr "Atvērt Rēķinu"
#~ msgid "Security Days"
#~ msgstr "Rezerves Dienas"
#, python-format
#~ msgid "You cannot cancel a sales order line that has already been invoiced !"
#~ msgstr "Nevar atcelt pasūtījuma rindu, par kuru jau ir piestādīts rēķins!"
#~ msgid "Margins in Sales Orders"
#~ msgstr "Uzcenojumi Pasūtījumiem"
#~ msgid "Total Tax Excluded"
#~ msgstr "Nodokļa Summa, kas nav Iekļauta"
#~ msgid "Sales by Product Category"
#~ msgstr "Pārdošana pa Produktu Kategorijām"
#~ msgid "Procurement Method"
#~ msgstr "Sagādes Veids"
#~ msgid "Pick List"
#~ msgstr "Komplektācijas Saraksts"
#~ msgid "Sales per Customer in last 90 days"
#~ msgstr "Pārdošana pa Klientiem pēdējās 90 dienās"
#~ msgid "Invoice From The Picking"
#~ msgstr "Veidot Rēķinu Pēc Komplektācijas"
#, python-format
#~ msgid "Picking Information !"
#~ msgstr "Informācija par Komplektāciju"
#, python-format
#~ msgid "Could not cancel sales order !"
#~ msgstr "Nevar atcelt pasūtījumu!"
#~ msgid "Properties"
#~ msgstr "Parametri"
#~ msgid "Logistic"
#~ msgstr "Loģistika"
#~ msgid " Month "
#~ msgstr " Mēnesis "
#, python-format
#~ msgid "Warning"
#~ msgstr "Brīdinājums"
#~ msgid "Sales by Month"
#~ msgstr "Pārdošana pa Mēnešiem"
#~ msgid "Delivery Lead Time"
#~ msgstr "Piegādes laiks"
#~ msgid "Image"
#~ msgstr "Attēls"
#~ msgid "Error! You can not create recursive companies."
#~ msgstr "Kļūda! Jums nav tiesību veidot rekursīvus uzņēmumus."
#~ msgid "Invoicing journals"
#~ msgstr "Rēķinu žurnāli"
#~ msgid "Ordered Date"
#~ msgstr "Pasūtījuma Veikšanas Datums"
#~ msgid "Configure Your Sales Management Application"
#~ msgstr "Konfigurēt Tirdzniecības Vadības Moduli"
#~ msgid "Sales Order Layout Improvement"
#~ msgstr "Pasūtījuma Izkārtojuma Uzlabojums"
#, python-format
#~ msgid "You must first cancel all invoices attached to this sales order."
#~ msgstr "Vispirms jāatceļ visi rēķini, kas saistīti ar pasūtījumu."
#, python-format
#~ msgid "Not enough stock !"
#~ msgstr "Nav pietiekošs skaits noliktavā!"
#~ msgid "Layout Sequence"
#~ msgstr "Izkārtojuma Secība"
#, python-format
#~ msgid "Cannot delete Sales Order(s) which are already confirmed !"
#~ msgstr "Nevar izdzēst jau apstiprināto(-s) Pasūtījumu(-s)!"
#~ msgid "Accounting"
#~ msgstr "Grāmatvedība"
#~ msgid "You must assign a production lot for this product"
#~ msgstr "Šim produktam ir jāpiesaista produkcijas lots"
#~ msgid "State"
#~ msgstr "Statuss"
#~ msgid "Delivery Order Only"
#~ msgstr "Veikt Tikai Piegādi"
#~ msgid "Picking Default Policy"
#~ msgstr "Komplektācijas Noteikumi"
#~ msgid "References"
#~ msgstr "Kodi"
#~ msgid "Based on the shipped or on the ordered quantities."
#~ msgstr "Balstīts uz piegādāto vai pasūtīto skaitu."
#~ msgid "Related Picking"
#~ msgstr "Saistītā Komplektēšana Noliktavā"
#~ msgid "Create Pick List"
#~ msgstr "Veidot Komplektēšanas Sarakstu"
#~ msgid "Create Delivery Order"
#~ msgstr "Veidot Piegādes Rīkojumu"
#~ msgid "Create Procurement Order"
#~ msgstr "Veidot Piegādes Pasūtījumu"
#~ msgid "Picking List"
#~ msgstr "Komplektēšanas Saraksts"
#, python-format
#~ msgid "You must first cancel all picking attached to this sales order."
#~ msgstr "Vispirms jāatceļ visa komplektācija, kas saistīta ar pasūtījumu."
#~ msgid "Picking Policy"
#~ msgstr "Komplektācijas Noteikumi"
#~ msgid "Picking List & Delivery Order"
#~ msgstr "Komplektācijas Saraksts un Piegādes Pasūtījums"
+1 -1
View File
@@ -41,7 +41,7 @@
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Sales Management application installed!</field>
<field name="body"><![CDATA[<p>This application lets you create and send quotations and process your sales orders; from delivery to invoicing.</p>
<p>If you need to manage your sales pipeline (leads, opportunities, phonecalls), the &lt;i&gt;CRM&lt;/i&gt; application may be useful. Use the Settings menu to install it.</p>]]></field>
<p>If you need to manage your sales pipeline (leads, opportunities, phonecalls), the <i>CRM</i> application may be useful. Use the Settings menu to install it.</p>]]></field>
</record>
</data>
</openerp>
+1 -1
View File
@@ -329,7 +329,7 @@ Thanks!</field>
<field name="type">service</field>
<field name="list_price">150.0</field>
<field name="standard_price">100.0</field>
<field name="supply_method">produce</field>
<field name="supply_method">produce</field> <!-- TODO this is a procurement field, which is not a sale dependency -->
<field name="uom_id" ref="product.product_uom_day"/>
<field name="uom_po_id" ref="product.product_uom_day"/>
<field name="company_id" eval="[]"/>
+1 -1
View File
@@ -311,7 +311,7 @@
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
<field name="message_ids" widget="mail_thread" placeholder="Share a message..."/>
</div>
</form>
</field>
+4 -3
View File
@@ -283,10 +283,11 @@
<field name="model">stock.tracking</field>
<field name="field_parent">child_ids</field>
<field name="arch" type="xml">
<tree colors="grey:not active" string="Packs">
<tree colors="grey:active == False" string="Packs">
<field name="name"/>
<field name="serial"/>
<field name="date"/>
<field name="active" invisible="1"/>
</tree>
</field>
</record>
@@ -913,7 +914,7 @@
<xpath expr="/form/sheet" position="after">
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</xpath>
</data>
@@ -1039,7 +1040,7 @@
<xpath expr="/form/sheet" position="after">
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</xpath>
</data>
@@ -20,7 +20,7 @@ openerp.web_linkedin = function(instance) {
var tag = document.createElement('script');
tag.type = 'text/javascript';
tag.src = "http://platform.linkedin.com/in.js";
tag.innerHTML = 'api_key : ' + self.api_key + '\nauthorize : true';
tag.innerHTML = 'api_key : ' + self.api_key + '\nauthorize : true\nscope: r_network r_contactinfo';
document.getElementsByTagName('head')[0].appendChild(tag);
self.linkedin_added = true;
$(tag).load(function() {
@@ -107,7 +107,7 @@ openerp.web_linkedin = function(instance) {
}
to_change.website = entity.websiteUrl;
to_change.phone = false;
_.each(entity.locations.values || [], function(el) {
_.each((entity.locations || {}).values || [], function(el) {
to_change.phone = el.contactInfo.phone1;
});
var children_def = $.Deferred();
@@ -54,12 +54,8 @@ instance.web_shortcuts.Shortcuts = instance.web.Widget.extend({
},
add: function (sc) {
var self = this;
this.dataset.create(sc, function (out) {
self.trigger('display', {
name : sc.name,
id : out.result,
res_id : sc.res_id
});
this.dataset.create(sc).then(function(out){
self.trigger('load');
});
},
display: function(sc) {