[MERGE] from trunk

bzr revid: xmo@openerp.com-20120910142154-rp2wv8l84c5cat2x
bzr revid: xmo@openerp.com-20120911062046-r0otrm9pizuv26sv
This commit is contained in:
Xavier Morel
2012-09-11 08:20:46 +02:00
68 changed files with 2223 additions and 424 deletions
+1 -1
View File
@@ -1398,7 +1398,7 @@ class account_move(osv.osv):
if not l[0]:
l[2].update({
'reconcile_id':False,
'reconcil_partial_id':False,
'reconcile_partial_id':False,
'analytic_lines':False,
'invoice':False,
'ref':False,
+2 -2
View File
@@ -15,7 +15,7 @@
<group name="accounting" col="2" colspan="2" attrs="{'invisible': [('company_id','=', False)]}">
<separator string="Accounting Information" colspan="2"/>
<field name="journal_id"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</group>
</group>
</field>
@@ -28,7 +28,7 @@
<field name="inherit_id" ref="base.view_partner_bank_tree"/>
<field name="arch" type="xml">
<field name="acc_number" position="after">
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</field>
</field>
</record>
+2 -2
View File
@@ -214,7 +214,7 @@ class account_invoice(osv.osv):
\n* The \'Cancelled\' state is used when user cancel invoice.'),
'sent': fields.boolean('Sent', readonly=True, help="It indicates that the invoice has been sent."),
'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True,
'date_due': fields.date('Due Date', readonly=True, states={'draft':[('readonly',False)]}, select=True,
help="If you use payment terms, the due date will be computed automatically at the generation "\
"of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month."),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}),
@@ -253,7 +253,7 @@ class account_invoice(osv.osv):
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True, readonly=True, states={'draft':[('readonly',False)]}),
'check_total': fields.float('Verification Total', digits_compute=dp.get_precision('Account'), states={'open':[('readonly',True)],'close':[('readonly',True)]}),
'check_total': fields.float('Verification Total', digits_compute=dp.get_precision('Account'), readonly=True, states={'draft':[('readonly',False)]}),
'reconciled': fields.function(_reconciled, string='Paid/Reconciled', type='boolean',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, None, 50), # Check if we can remove ?
+7 -7
View File
@@ -127,7 +127,7 @@
<field name="user_id"/>
<field name="date_due"/>
<field name="origin"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="residual" sum="Residual Amount"/>
<field name="amount_untaxed" sum="Untaxed Amount"/>
<field name="amount_total" sum="Total Amount"/>
@@ -184,7 +184,7 @@
name="account_id" groups="account.group_account_user"/>
<field name="journal_id" groups="account.group_account_user"
on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</group>
</group>
<notebook>
@@ -271,7 +271,7 @@
<field name="debit"/>
<field name="credit"/>
<field name="amount_currency"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</tree>
</field>
</page>
@@ -332,8 +332,8 @@
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]"
name="account_id" groups="account.group_account_user"/>
<label for="currency_id"/>
<div>
<label for="currency_id" groups="base.group_multi_currency"/>
<div groups="base.group_multi_currency">
<field name="currency_id" class="oe_inline"/>
<!-- note fp: I don't think we need this feature ?
<button name="%(action_account_change_currency)d" type="action"
@@ -429,8 +429,8 @@
<field name="journal_id" groups="base.group_user"/>
<field name="debit"/>
<field name="credit"/>
<field name="amount_currency"/>
<field name="currency_id"/>
<field name="amount_currency" groups="base.group_multi_currency"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</tree>
</field>
</page>
+1 -1
View File
@@ -44,7 +44,7 @@
<menuitem id="menu_finance_periodical_processing_billing" name="Billing" parent="menu_finance_periodical_processing" sequence="35"/>
<menuitem id="next_id_22" name="Partners" parent="menu_finance_generic_reporting" sequence="1"/>
<menuitem id="menu_multi_currency" name="Multi-Currencies" parent="menu_finance_generic_reporting" sequence="10"/>
<menuitem id="menu_multi_currency" name="Multi-Currencies" parent="menu_finance_generic_reporting" sequence="10" groups="base.group_multi_currency"/>
<menuitem
parent="account.menu_finance_legal_statement"
id="final_accounting_reports"
+11 -11
View File
@@ -204,7 +204,7 @@
attrs="{'invisible':[('type','!=','consolidation')]}"
widget="many2many_tags"/>
</group>
<group>
<group groups="base.group_multi_currency">
<field name="currency_id"/>
<field name="currency_mode" attrs="{'readonly': [('currency_id','=',False)]}"/>
</group>
@@ -489,7 +489,7 @@
<group>
<field name="default_debit_account_id" attrs="{'required':[('type','in', ('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="default_credit_account_id" attrs="{'required':[('type','in',('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="currency"/>
<field name="currency" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
</group>
@@ -1068,7 +1068,7 @@
<field name="account_tax_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('parent_id','!=',False)]"/>
<field name="amount_currency" attrs="{'readonly':[('state','=','valid')]}"/>
<field name="currency_id" attrs="{'readonly':[('state','=','valid')]}"/>
<field name="currency_id" attrs="{'readonly':[('state','=','valid')]}" groups="base.group_multi_currency"/>
<field name="reconcile_partial_id"/>
<field name="reconcile_id"/>
<field name="state"/>
@@ -1119,7 +1119,7 @@
<field name="tax_amount"/>
<field name="account_tax_id" domain="[('parent_id','=',False)]"/>
</group>
<group attrs="{'readonly':[('state','=','valid')]}" string="Currency">
<group attrs="{'readonly':[('state','=','valid')]}" string="Currency" groups="base.group_multi_currency">
<field name="currency_id"/>
<field name="amount_currency"/>
</group>
@@ -1167,8 +1167,8 @@
<field name="credit"/>
<separator colspan="4" string="Optional Information"/>
<field name="currency_id"/>
<field name="amount_currency"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="amount_currency" groups="base.group_multi_currency"/>
<field name="quantity"/>
<field name="move_id" required="False"/>
<newline/>
@@ -1395,7 +1395,7 @@
<field name="account_tax_id" domain="[('parent_id','=',False)]"/>
</group>
<group string="Currency">
<group string="Currency" groups="base.group_multi_currency">
<field name="currency_id"/>
<field name="amount_currency"/>
</group>
@@ -1433,7 +1433,7 @@
<field name="credit" sum="Total Credit"/>
<field name="analytic_account_id" domain="[('parent_id','!=',False)]" groups="analytic.group_analytic_accounting"/>
<field name="amount_currency"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="tax_code_id"/>
<field name="tax_amount"/>
<field name="state"/>
@@ -2076,7 +2076,7 @@
<field name="type"/>
<field name="user_type"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="reconcile"/>
<field name="chart_template_id"/>
</group>
@@ -2403,7 +2403,7 @@
<tree editable="bottom">
<field name="acc_name"/>
<field name="account_type"/>
<field name="currency_id" widget="selection"/>
<field name="currency_id" widget="selection" groups="base.group_multi_currency"/>
</tree>
</field>
</div>
@@ -2568,7 +2568,7 @@ action = pool.get('res.config').next(cr, uid, [], context)
<field name="date" attrs="{'readonly':[('state','!=','draft')]}" on_change="onchange_date(date, company_id)"/>
<field name="closing_date" readonly="1"/>
<field name="period_id" class="oe_inline"/>
<field name="currency" invisible="1"/>
<field name="currency" invisible="1" groups="base.group_multi_currency"/>
</group>
</group>
<notebook>
+5 -5
View File
@@ -56,7 +56,7 @@
<field name="credit"/>
<field name="balance"/>
<field name="state" invisible="1"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="date" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
@@ -137,8 +137,8 @@
</group>
<group string="Amount">
<field name="amount"/>
<label for="amount_currency"/>
<div>
<label for="amount_currency" groups="base.group_multi_currency"/>
<div groups="base.group_multi_currency">
<field name="amount_currency" class="oe_inline"/>
<field name="currency_id" class="oe_inline"/>
</div>
@@ -251,8 +251,8 @@
</group>
<group string="Amount">
<field name="amount"/>
<label for="amount_currency"/>
<div>
<label for="amount_currency" groups="base.group_multi_currency"/>
<div groups="base.group_multi_currency">
<field name="amount_currency" class="oe_inline"/>
<field name="currency_id" class="oe_inline"/>
</div>
+3 -3
View File
@@ -43,8 +43,8 @@ class account_config_settings(osv.osv_memory):
string='Default company currency', help="Main currency of the company."),
'paypal_account': fields.related('company_id', 'paypal_account', type='char', size=128,
string='Paypal account', help="Paypal account (email) for receiving online payments (credit card, etc.) If you set a paypal account, the customer will be able to pay your invoices or quotations with a button \"Pay with Paypal\" in automated emails or through the OpenERP portal."),
'company_footer': fields.related('company_id', 'rml_footer2', type='char', size=250, readonly=True,
string='Bank accounts on reports will display as followed', help="Bank accounts as printed in the footer of each customer document. This is for information purpose only, you should configure these bank accounts through the above button \"Configure Bank Accounts\"."),
'company_footer': fields.related('company_id', 'rml_footer', type='text', readonly=True,
string='Bank accounts on reports will displayed as followed', help="Bank accounts as printed in the footer of each customer's document. This is for information purpose only, you should configure these bank accounts through the above button \"Configure Bank Accounts\"."),
'has_chart_of_accounts': fields.boolean('Company has a chart of accounts'),
'chart_template_id': fields.many2one('account.chart.template', 'Template', domain="[('visible','=', True)]"),
@@ -157,7 +157,7 @@ class account_config_settings(osv.osv_memory):
'expects_chart_of_accounts': company.expects_chart_of_accounts,
'currency_id': company.currency_id.id,
'paypal_account': company.paypal_account,
'company_footer': company.rml_footer2,
'company_footer': company.rml_footer,
'has_chart_of_accounts': has_chart_of_accounts,
'has_fiscal_year': bool(fiscalyear_count),
'chart_template_id': False,
+3 -3
View File
@@ -100,7 +100,7 @@
</group>
<group>
<field name="purchase_date"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="company_id" widget="selection" groups="base.group_multi_company" on_change="onchange_company_id(company_id)"/>
</group>
</group>
@@ -192,7 +192,7 @@
<field name="partner_id"/>
<field name="purchase_value"/>
<field name="value_residual"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="state"/>
</tree>
@@ -211,7 +211,7 @@
<field name="purchase_date"/>
<field name="purchase_value"/>
<field name="value_residual"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="state"/>
</tree>
+5 -5
View File
@@ -16,11 +16,11 @@
<filter string="Info" domain="[('state','=','info')]" icon="terp-folder-yellow"/>
<field name="bank_id"/>
<field name="journal"/>
<field name="currency"/>
<field name="currency" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company"/>
<group expand="0" string="Group By...">
<filter string="Bank Account" icon="terp-folder-yellow" domain="[]" context="{'group_by':'bank_id'}"/>
<filter string="Currency" icon="terp-dolar" domain="[]" context="{'group_by':'currency'}"/>
<filter string="Currency" icon="terp-dolar" domain="[]" context="{'group_by':'currency'}" groups="base.group_multi_currency"/>
</group>
</search>
</field>
@@ -32,7 +32,7 @@
<tree string="CODA Bank Account Configuration">
<field name="name"/>
<field name="bank_id"/>
<field name="currency"/>
<field name="currency" groups="base.group_multi_currency"/>
<field name="description1"/>
<field name="journal"/>
<field name="state"/>
@@ -48,7 +48,7 @@
<field name="name" colspan="4"/>
<field name="bank_id" domain="[('partner_id.ref_companies', 'in', [company_id])]"/>
<field name="description1"/>
<field name="currency"/>
<field name="currency" groups="base.group_multi_currency"/>
<field name="description2"/>
<field name="coda_st_naming"/>
<field name="state" on_change="onchange_state(state)"/>
@@ -305,7 +305,7 @@
<field name="name"/>
<field name="date"/>
<field name="coda_bank_account_id"/>
<field name="currency"/>
<field name="currency" groups="base.group_multi_currency"/>
<field name="period_id"/>
<field name="type"/>
<newline/>
+17 -14
View File
@@ -30,8 +30,8 @@
<field name="debit" sum="Total debit"/>
<field name="credit" sum="Total credit"/>
<field name="amount_to_pay"/>
<field name="amount_currency"/>
<field name="currency_id"/>
<field name="amount_currency" groups="base.group_multi_currency"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="period_id" invisible="1"/>
</tree>
</field>
@@ -131,8 +131,8 @@
<field name="move_line_id" on_change="onchange_move_line(move_line_id,parent.mode,parent.date_prefered,parent.date_scheduled,currency,company_currency)" domain="[('reconcile_id','=', False), ('credit', '>',0),('amount_to_pay','>',0)] "/>
<separator colspan="4" string="Transaction Information"/>
<field name="date"/>
<label for="amount_currency"/>
<div>
<label for="amount_currency" groups="base.group_multi_currency"/>
<div groups="base.group_multi_currency">
<field name="amount_currency" on_change="onchange_amount(amount_currency,currency,company_currency)" class="oe_inline"/>
<field name="currency" nolabel="1" class="oe_inline"/>
</div>
@@ -151,8 +151,8 @@
</page>
<page string="Information">
<group col="4" string="General Information">
<label for="amount"/>
<div>
<label for="amount" groups="base.group_multi_currency"/>
<div groups="base.group_multi_currency">
<field name="amount" class="oe_inline"/>
<field name="company_currency" class="oe_inline"/>
</div>
@@ -171,8 +171,8 @@
<field name="bank_id" domain="[('partner_id', '=', partner_id)]"/>
<field name="ml_maturity_date"/>
<field name="date"/>
<field name="amount_currency" string="Amount"/>
<field name="currency"/>
<field name="amount_currency" string="Amount" groups="base.group_multi_currency"/>
<field name="currency" groups="base.group_multi_currency"/>
<field name="name"/>
<field name="amount" sum="Total in Company Currency" invisible="1"/>
</tree>
@@ -257,8 +257,8 @@
<field name="move_line_id" on_change="onchange_move_line(move_line_id, False, currency, company_currency)" domain="[('reconcile_id','=', False), ('credit', '>',0),('amount_to_pay','>',0)]"/>
<separator colspan="4" string="Transaction Information"/>
<field name="date"/>
<label for="amount_currency"/>
<div>
<label for="amount_currency" groups="base.group_multi_currency"/>
<div groups="base.group_multi_currency">
<field name="amount_currency" on_change="onchange_amount(amount_currency,currency,company_currency)" class="oe_inline"/>
<field name="currency" class="oe_inline"/>
</div>
@@ -277,8 +277,11 @@
</page>
<page string="Information">
<group col="4" string="General Information">
<field name="amount"/>
<field name="company_currency" nolabel="1"/>
<label for="amoun"/>
<div>
<field name="amount" class="oe_inline"/>
<field name="company_currency" class="oe_inline"/>
</div>
</group>
<group col="4" string="Entry Information">
<field name="create_date"/>
@@ -302,8 +305,8 @@
<field name="partner_id"/>
<field name="communication"/>
<field name="amount" sum="Amount Total"/>
<field name="amount_currency" sum="Currency Amount Total"/>
<field name="currency"/>
<field name="amount_currency" sum="Currency Amount Total" groups="base.group_multi_currency"/>
<field name="currency" groups="base.group_multi_currency"/>
<field name="bank_id" domain="[('partner_id', '=', partner_id)]"/>
<field name="move_line_id" on_change="onchange_move_line(move_line_id,parent.mode)"/>
<field name="create_date"/>
@@ -75,7 +75,7 @@
</group>
<group string="Other Information">
<field name="number"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</group>
<group col="4" attrs="{'invisible':[('type','in',['payment', 'receipt', False])]}">
<separator string="Total" colspan="4"/>
@@ -102,9 +102,9 @@
<field name="narration" nolabel="1" colspan="2"/>
</group>
<group string="Other Information" col="4">
<field name="currency_id" colspan="4"/>
<field name="currency_id" colspan="4" groups="base.group_multi_currency"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" colspan="3"/>
<field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
<field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)" groups="base.group_multi_currency"/>
<field name="paid_amount_in_company_currency" colspan="4" invisible="1"/>
<field name="number" colspan="4"/>
</group>
@@ -194,7 +194,7 @@
<separator string="Currency Options" colspan="4"/>
<field name="is_multi_currency" invisible="1"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" colspan="3"/>
<field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
<field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)" groups="base.group_multi_currency"/>
<field name="paid_amount_in_company_currency" colspan="4" invisible="1"/>
</group>
<group col="2">
@@ -231,8 +231,8 @@
<field name="credit"/>
<field name="state"/>
<field name="reconcile_id"/>
<field name="amount_currency"/>
<field name="currency_id"/>
<field name="amount_currency" groups="base.group_multi_currency"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</tree>
</field>
</page>
@@ -366,7 +366,7 @@
<group col="4" attrs="{'invisible':[('currency_id','=',False),('is_multi_currency','=',False)]}">
<field name="is_multi_currency" invisible="1"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" colspan="3"/>
<field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
<field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)" groups="base.group_multi_currency"/>
<field name="paid_amount_in_company_currency" colspan="4" invisible="1"/>
</group>
<group>
@@ -401,7 +401,7 @@
<field name="state"/>
<field name="reconcile_id"/>
<field name="amount_currency"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</tree>
</field>
</page>
+14 -5
View File
@@ -1,3 +1,17 @@
.openerp .oe_dashboard_layout_selector ul {
white-space: nowrap;
}
.openerp .oe_dashboard_layout_selector li {
margin: 0;
padding: 0;
list-style-type: none;
float: left;
}
.openerp .oe_dashboard_layout_selector li .oe_dashboard_selected_layout {
margin-left: -30px;
vertical-align: bottom;
margin-bottom: 10px;
}
.openerp .oe_dashboard_links {
text-align: right;
margin: 0 4px 6px 0;
@@ -5,11 +19,6 @@
.openerp .oe_dashboard {
width: 100%;
}
.openerp .oe_dashboard .oe_dashboard_layout_selector ul, .openerp .oe_dashboard .oe_dashboard_layout_selector li {
margin: 0;
padding: 0;
list-style-type: none;
}
.openerp .oe_dashboard .oe_action {
margin: 0 8px 8px 0;
background-color: white;
+12 -5
View File
@@ -9,16 +9,23 @@
box-shadow: $bsval
.openerp
.oe_dashboard_layout_selector
ul
white-space: nowrap
li
margin: 0
padding: 0
list-style-type: none
float: left
.oe_dashboard_selected_layout
margin-left: -30px
vertical-align: bottom
margin-bottom: 10px
.oe_dashboard_links
text-align: right
margin: 0 4px 6px 0
.oe_dashboard
width: 100%
.oe_dashboard_layout_selector
ul, li
margin: 0
padding: 0
list-style-type: none
.oe_action
margin: 0 8px 8px 0
background-color: white
+27 -23
View File
@@ -220,36 +220,40 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
am.do_action = function (action) {
self.do_action(action);
};
if (action_attrs.creatable && action_attrs.creatable !== 'false') {
var action_id = parseInt(action_attrs.creatable, 10);
$action.parent().find('button.oe_dashboard_button_create').click(function() {
if (isNaN(action_id)) {
action_orig.flags.default_view = 'form';
self.do_action(action_orig);
} else {
self.rpc('/web/action/load', {
action_id: action_id
}, function(result) {
result.result.flags = result.result.flags || {};
result.result.flags.default_view = 'form';
self.do_action(result.result);
});
}
});
}
if (am.inner_widget) {
am.inner_widget.on_mode_switch.add(function(mode) {
var new_form_action = function(id, editable) {
var new_views = [];
_.each(action_orig.views, function(view) {
new_views[view[1] === mode ? 'unshift' : 'push'](view);
new_views[view[1] === 'form' ? 'unshift' : 'push'](view);
});
if (!new_views.length || new_views[0][1] !== mode) {
new_views.unshift([false, mode]);
if (!new_views.length || new_views[0][1] !== 'form') {
new_views.unshift([false, 'form']);
}
action_orig.views = new_views;
action_orig.res_id = am.inner_widget.dataset.ids[am.inner_widget.dataset.index];
action_orig.res_id = id;
action_orig.flags = {
form: {
"initial_mode": editable ? "edit" : "view",
}
};
self.do_action(action_orig);
});
};
var list = am.inner_widget.views.list;
if (list) {
list.deferred.then(function() {
$(list.controller.groups).off('row_link').on('row_link', function(e, id) {
new_form_action(id);
});
});
}
var kanban = am.inner_widget.views.kanban;
if (kanban) {
kanban.deferred.then(function() {
kanban.controller.open_record = function(id, editable) {
new_form_action(id, editable);
};
});
}
}
},
renderElement: function() {
-1
View File
@@ -26,7 +26,6 @@
<span class="oe_header_txt"> <t t-esc="action.attrs.string"/> </span>
<input class = "oe_header_text" type="text"/>
<t t-if="!action.attrs.string">&amp;nbsp;</t>
<button t-if="action.attrs.creatable and action.attrs.creatable !== 'false'" class="oe_button oe_button_create">Create</button>
<span class='oe_icon oe_close'></span>
<span class='oe_icon oe_minimize oe_fold' t-if="!action.attrs.fold"></span>
<span class='oe_icon oe_maximize oe_fold' t-if="action.attrs.fold"></span>
+1 -1
View File
@@ -423,7 +423,7 @@
<label for="planned_revenue" class="oe_edit_only"/>
<h2>
<field name="planned_revenue" class="oe_inline"/>
<field name="company_currency" class="oe_inline"/> at
<field name="company_currency" class="oe_inline" groups="base.group_multi_currency"/> at
<field name="probability" class="oe_inline" widget="integer"/>%% success rate
</h2>
</div>
@@ -8,7 +8,7 @@
<field name="model">wizard.document.page.history.show_diff</field>
<field name="arch" type="xml">
<form string="Difference" version="7.0">
<field name="diff" widget="html"/>
<field name="diff" widget="html" options='{"safe": true}'/>
<footer>
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
+390
View File
@@ -0,0 +1,390 @@
# Russian 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:37+0100\n"
"PO-Revision-Date: 2012-09-10 15:12+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: edi
#: sql_constraint:res.currency:0
msgid "The currency code must be unique per company!"
msgstr "Код валюты должен быть уникальным в компании!"
#. module: edi
#: model:ir.model,name:edi.model_res_partner_address
msgid "Partner Addresses"
msgstr "Адреса контрагентов"
#. module: edi
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr "Название компании должно быть уникальным!"
#. module: edi
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr "Ошибка! Вы не можете создавать рекурсивные ссылки на участников."
#. module: edi
#: field:edi.document,name:0
msgid "EDI token"
msgstr ""
#. module: edi
#: help:edi.document,name:0
msgid "Unique identifier for retrieving an EDI document."
msgstr ""
#. module: edi
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr "Ошибка ! Нельзя создать рекурсивные организации."
#. module: edi
#: model:ir.model,name:edi.model_res_company
msgid "Companies"
msgstr "Компании"
#. module: edi
#: sql_constraint:edi.document:0
msgid "EDI Tokens must be unique!"
msgstr ""
#. module: edi
#: model:ir.model,name:edi.model_res_currency
msgid "Currency"
msgstr "Валюта"
#. module: edi
#: code:addons/edi/models/edi.py:153
#, python-format
msgid ""
"The document you are trying to import requires the OpenERP `%s` application. "
"You can install it by connecting as the administrator and opening the "
"configuration assistant."
msgstr ""
#. module: edi
#: help:edi.document,document:0
msgid "EDI document content"
msgstr ""
#. module: edi
#: model:ir.model,name:edi.model_edi_document
msgid "EDI Document"
msgstr "EDI документ"
#. module: edi
#: code:addons/edi/models/edi.py:48
#, python-format
msgid "'%s' is an invalid external ID"
msgstr ""
#. module: edi
#: model:ir.model,name:edi.model_res_partner
msgid "Partner"
msgstr "Контрагент"
#. module: edi
#: code:addons/edi/models/edi.py:152
#, python-format
msgid "Missing Application"
msgstr "Отсутствие приложения"
#. module: edi
#: field:edi.document,document:0
msgid "Document"
msgstr "Документ"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:23
msgid "View/Print"
msgstr "Просмотр/Печать"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:28
msgid "Import this document"
msgstr "Импорт этого документа"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:33
msgid "Import it into an existing OpenERP instance"
msgstr "Импорт в существующую OpenERP"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:36
msgid "OpenERP instance address:"
msgstr "Адрес этой OpenERP:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:39
msgid "Import"
msgstr "Импорт"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:44
msgid "Import it into a new OpenERP Online instance"
msgstr "Импорт в новый онлайн экземпляр OpenERP"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:47
msgid "Create my new OpenERP instance"
msgstr "Создать мой новый экземпляр OpenERP"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:52
msgid "Import into another application"
msgstr "Импорт в другое приложение"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:54
msgid ""
"OpenERP's Electronic Data Interchange documents are based on a generic and "
"language\n"
" independent"
msgstr ""
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:56
msgid "JSON"
msgstr "JSON"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:56
msgid ""
"serialization of the document's attribute.\n"
" It is usually very quick and straightforward to "
"create a small plug-in for your preferred\n"
" application that will be capable of importing "
"any OpenERP EDI document.\n"
" You can find out more details about how to do "
"this and what the content of OpenERP EDI documents\n"
" is like in the"
msgstr ""
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:60
msgid "OpenERP documentation"
msgstr "OpenERP документация"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:61
msgid "To get started immediately,"
msgstr "Чтобы приступить к работе немедленно,"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:62
msgid "see is all it takes to use this EDI document in Python"
msgstr ""
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:70
msgid "You can download the raw EDI document here:"
msgstr "Вы можете скачать исходный документ EDI здесь:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:73
msgid "Download"
msgstr "Скачать"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87
msgid "Powered by"
msgstr "На базе"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87
msgid "OpenERP"
msgstr "OpenERP"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:34
msgid "Invoice"
msgstr "Счет"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:37
msgid "Description"
msgstr "Описание"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:38
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:41
msgid "Date"
msgstr "Дата"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:39
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:40
msgid "Your Reference"
msgstr "Ваша ссылка"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:50
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:57
msgid "Product Description"
msgstr "Описание товара"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:51
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:58
msgid "Quantity"
msgstr "Количество"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:52
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:59
msgid "Unit Price"
msgstr "Цена за ед."
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:53
msgid "Discount"
msgstr "Скидка"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:54
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:61
msgid "Price"
msgstr "Цена"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:72
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:81
msgid "Net Total:"
msgstr "Чистый итог:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:83
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:92
msgid "Taxes:"
msgstr "Налоги:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:94
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:103
msgid "Total:"
msgstr "Итого:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:106
msgid "Tax"
msgstr "Налог"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:107
msgid "Base Amount"
msgstr "Базовая сумма"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:108
msgid "Amount"
msgstr "Сумма"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:121
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:113
msgid "Notes:"
msgstr "Примечания:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:129
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:121
msgid "Pay Online"
msgstr "Оплата онлайн"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:133
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:125
msgid "Paypal"
msgstr "Paypal"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:135
msgid ""
"You may directly pay this invoice online via Paypal's secure payment gateway:"
msgstr ""
"Вы можете напрямую оплатить этот счет в режиме онлайн через безопасный "
"платежный шлюз PayPal:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:145
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:137
msgid "Bank Wire Transfer"
msgstr "Банковский перевод"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:147
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:139
msgid "Please transfer"
msgstr "Пожалуйста, переведите"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:148
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:140
msgid "to"
msgstr ""
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:149
msgid ""
"(postal address on the invoice header)\n"
" using one of the following bank accounts. Be sure to "
"mention the invoice\n"
" reference"
msgstr ""
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:151
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:143
msgid "on the transfer:"
msgstr ""
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:36
msgid "Order"
msgstr "Заказ"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:42
msgid "Salesman"
msgstr "Менеджер продаж"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:43
msgid "Payment terms"
msgstr "Условия платежа"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:60
msgid "Discount(%)"
msgstr "Скидка ( %)"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:127
msgid ""
"You may directly pay this order online via Paypal's secure payment gateway:"
msgstr ""
"Вы можете напрямую оплатить этот заказ он-лайн через безопасный платежный "
"шлюз PayPal:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:141
msgid ""
"(postal address on the order header)\n"
" using one of the following bank accounts. Be sure to "
"mention the document\n"
" reference"
msgstr ""
@@ -20,7 +20,7 @@
<field name="email_cc" readonly="1" attrs="{'invisible':[('email_cc','=',False)]}"/>
<field name="reply_to" readonly="1" attrs="{'invisible':[('reply_to','=',False)]}"/>
<field name="subject" readonly="1"/>
<field name="body_html" widget="html" readonly="1"/>
<field name="body_html" widget="html" readonly="1" options='{"safe": true}'/>
</group>
</form>
</field>
+10 -7
View File
@@ -180,17 +180,16 @@ class hr_employee(osv.osv):
'resource_id': fields.many2one('resource.resource', 'Resource', ondelete='cascade', required=True),
'coach_id': fields.many2one('hr.employee', 'Coach'),
'job_id': fields.many2one('hr.job', 'Job'),
# image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Photo",
help="This field holds the image used as a photo for the "\
"employee. The image is base64 encoded, and PIL-supported. "\
"It is limited to a 1024x1024 px image."),
help="This field holds the image used as photo for the employee, limited to 1024x1024px."),
'image_medium': fields.function(_get_image, fnct_inv=_set_image,
string="Medium-sized photo", type="binary", multi="_get_image",
store = {
'hr.employee': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Medium-sized photo of the employee. It is automatically "\
"resized as a 180x180 px image, with aspect ratio preserved. "\
"resized as a 128x128px image, with aspect ratio preserved. "\
"Use this field in form views or some kanban views."),
'image_small': fields.function(_get_image, fnct_inv=_set_image,
string="Smal-sized photo", type="binary", multi="_get_image",
@@ -198,7 +197,7 @@ class hr_employee(osv.osv):
'hr.employee': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Small-sized photo of the employee. It is automatically "\
"resized as a 50x50 px image, with aspect ratio preserved. "\
"resized as a 64x64px image, with aspect ratio preserved. "\
"Use this field anywhere a small image is required."),
'passport_id':fields.char('Passport No', size=64),
'color': fields.integer('Color Index'),
@@ -290,8 +289,12 @@ class hr_department(osv.osv):
'member_ids': fields.one2many('hr.employee', 'department_id', 'Members', readonly=True),
}
hr_department()
def copy(self, cr, uid, ids, default=None, context=None):
if default is None:
default = {}
default = default.copy()
default['member_ids'] = []
return super(hr_department, self).copy(cr, uid, ids, default, context=context)
class res_users(osv.osv):
_name = 'res.users'
+576
View File
@@ -0,0 +1,576 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-09-10 13:06+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: hr_attendance
#: model:ir.ui.menu,name:hr_attendance.menu_hr_time_tracking
msgid "Time Tracking"
msgstr "Tid Sporing"
#. module: hr_attendance
#: view:hr.attendance:0
msgid "Group By..."
msgstr "Grupper etter ..."
#. module: hr_attendance
#: view:hr.attendance:0
msgid "Today"
msgstr "I dag"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "March"
msgstr "Mars"
#. module: hr_attendance
#: view:hr.sign.in.out.ask:0
msgid ""
"You did not sign out the last time. Please enter the date and time you "
"signed out."
msgstr ""
"Du logget ikke ut siste gang. Vennligst skriv inn datoen og klokkeslettet du "
"logget ut."
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid "Total period:"
msgstr "Total periode:"
#. module: hr_attendance
#: field:hr.action.reason,name:0
msgid "Reason"
msgstr "Grunn"
#. module: hr_attendance
#: view:hr.attendance.error:0
msgid "Print Attendance Report Error"
msgstr "Skriv ut Oppmøte Rapporter Feil."
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:161
#, python-format
msgid "The sign-out date must be in the past"
msgstr "Logg - ut må være i fortiden."
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid "Date Signed"
msgstr "Signeringsdato"
#. module: hr_attendance
#: model:ir.actions.act_window,help:hr_attendance.open_view_attendance
msgid ""
"The Time Tracking functionality aims to manage employee attendances from "
"Sign in/Sign out actions. You can also link this feature to an attendance "
"device using OpenERP's web service features."
msgstr ""
"Tid Sporing funksjonalitet mål er å forvalte de ansattes tilskuertall fra "
"Logg inn / Logg ut handlinger. Du kan også koble denne funksjonen til en "
"frammøte enheten ved hjelp OpenERP web-service funksjoner."
#. module: hr_attendance
#: view:hr.action.reason:0
msgid "Attendance reasons"
msgstr "Oppmøte grunner"
#. module: hr_attendance
#: view:hr.attendance:0
#: field:hr.attendance,day:0
msgid "Day"
msgstr "Dag"
#. module: hr_attendance
#: selection:hr.employee,state:0
msgid "Present"
msgstr "Presentere"
#. module: hr_attendance
#: model:ir.model,name:hr_attendance.model_hr_sign_in_out_ask
msgid "Ask for Sign In Out"
msgstr "Spør for pålogging ut."
#. module: hr_attendance
#: field:hr.attendance,action_desc:0
#: model:ir.model,name:hr_attendance.model_hr_action_reason
msgid "Action Reason"
msgstr "Handling grunn."
#. module: hr_attendance
#: view:hr.sign.in.out:0
msgid "Ok"
msgstr "Ok"
#. module: hr_attendance
#: view:hr.action.reason:0
msgid "Define attendance reason"
msgstr "Definer frammøte grunn."
#. module: hr_attendance
#: code:addons/hr_attendance/report/attendance_by_month.py:184
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_month
#, python-format
msgid "Attendances By Month"
msgstr "Tilskuertall Pr.mnd"
#. module: hr_attendance
#: field:hr.sign.in.out,name:0
#: field:hr.sign.in.out.ask,name:0
msgid "Employees name"
msgstr "Ansattnavn"
#. module: hr_attendance
#: model:ir.actions.act_window,name:hr_attendance.open_view_attendance_reason
#: model:ir.ui.menu,name:hr_attendance.menu_open_view_attendance_reason
msgid "Attendance Reasons"
msgstr "Oppmøte grunner"
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:161
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:167
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:174
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:179
#, python-format
msgid "UserError"
msgstr "Brukerfeil"
#. module: hr_attendance
#: field:hr.attendance.error,end_date:0
#: field:hr.attendance.week,end_date:0
msgid "Ending Date"
msgstr "Sluttdato"
#. module: hr_attendance
#: code:addons/hr_attendance/hr_attendance.py:140
#, python-format
msgid "Warning"
msgstr "Advarsel"
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:174
#, python-format
msgid "The Sign-in date must be in the past"
msgstr "Logg inn dato må være i fortiden."
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:167
#, python-format
msgid "A sign-in must be right after a sign-out !"
msgstr "En pålogging må være rett etter en logg ut!"
#. module: hr_attendance
#: field:hr.employee,state:0
#: model:ir.model,name:hr_attendance.model_hr_attendance
msgid "Attendance"
msgstr "Oppmøte"
#. module: hr_attendance
#: field:hr.attendance.error,max_delay:0
msgid "Max. Delay (Min)"
msgstr "Maks. Forsinkelse (Min)"
#. module: hr_attendance
#: view:hr.attendance.error:0
#: view:hr.attendance.month:0
#: view:hr.attendance.week:0
msgid "Print"
msgstr "Skriv ut"
#. module: hr_attendance
#: view:hr.attendance:0
msgid "Hr Attendance Search"
msgstr "Hr Oppmøte Søk."
#. module: hr_attendance
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_week
msgid "Attendances By Week"
msgstr "Tilskuertall etter uke."
#. module: hr_attendance
#: constraint:hr.attendance:0
msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)"
msgstr "Feil: Logg på (hhv. Logg ut) må følge Logg ut (hhv. Logg inn)"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "July"
msgstr "juli"
#. module: hr_attendance
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_error
#: model:ir.actions.report.xml,name:hr_attendance.attendance_error_report
msgid "Attendance Error Report"
msgstr "Oppmøte Feilrapport"
#. module: hr_attendance
#: field:hr.attendance.error,init_date:0
#: field:hr.attendance.week,init_date:0
msgid "Starting Date"
msgstr "Startdato"
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid "Min Delay"
msgstr "Minimum forsinkelse."
#. module: hr_attendance
#: selection:hr.attendance,action:0
#: view:hr.employee:0
msgid "Sign In"
msgstr "Logg Inn"
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid "Operation"
msgstr "Handling"
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_error.py:49
#, python-format
msgid "No Data Available"
msgstr "Ingen informasjon tilgjengelig"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "September"
msgstr "September"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "December"
msgstr "Desember"
#. module: hr_attendance
#: field:hr.attendance.month,month:0
msgid "Month"
msgstr "Måned"
#. module: hr_attendance
#: field:hr.action.reason,action_type:0
msgid "Action Type"
msgstr "Handlingstype"
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid ""
"(*) A negative delay means that the employee worked more than encoded."
msgstr ""
"(*) En negativ forsinkelse innebærer at arbeidstakeren jobbet mer enn kodet."
#. module: hr_attendance
#: view:hr.attendance:0
msgid "My Attendance"
msgstr "Min Oppmøte"
#. module: hr_attendance
#: help:hr.attendance,action_desc:0
msgid ""
"Specifies the reason for Signing In/Signing Out in case of extra hours."
msgstr "Angir årsaken til pålogging / logge ut I tilfelle ekstra timer."
#. module: hr_attendance
#: model:ir.model,name:hr_attendance.model_hr_attendance_month
msgid "Print Monthly Attendance Report"
msgstr "Skriv ut månedlig Oppmøte Rapporter."
#. module: hr_attendance
#: model:ir.model,name:hr_attendance.model_hr_sign_in_out
msgid "Sign In Sign Out"
msgstr "Logg inn - Logg ut"
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:105
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:129
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:146
#: view:hr.sign.in.out:0
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_sigh_in_out
#: model:ir.ui.menu,name:hr_attendance.menu_hr_attendance_sigh_in_out
#, python-format
msgid "Sign in / Sign out"
msgstr "Logg inn / Logg ut"
#. module: hr_attendance
#: view:hr.sign.in.out.ask:0
msgid "hr.sign.out.ask"
msgstr "hr.signere.ut.spør."
#. module: hr_attendance
#: view:hr.attendance.week:0
msgid "Print Attendance Report Weekly"
msgstr "Skriv ut Oppmøte Rapporter Ukentlig."
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "August"
msgstr "August"
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_sign_in_out.py:179
#, python-format
msgid "A sign-out must be right after a sign-in !"
msgstr "Et logg-ut må være rett etter en logg - inn!"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "June"
msgstr "Juni"
#. module: hr_attendance
#: model:ir.model,name:hr_attendance.model_hr_attendance_error
msgid "Print Error Attendance Report"
msgstr "Print Feil Oppmøte Rapporter."
#. module: hr_attendance
#: field:hr.attendance,name:0
msgid "Date"
msgstr "Dato"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "November"
msgstr "November"
#. module: hr_attendance
#: constraint:hr.employee:0
msgid "Error ! You cannot create recursive Hierarchy of Employees."
msgstr "Feil! Du kan ikke opprette rekursiv Hierarki av ansatte."
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "October"
msgstr "Oktober"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "January"
msgstr "Januar"
#. module: hr_attendance
#: selection:hr.action.reason,action_type:0
#: view:hr.sign.in.out:0
#: view:hr.sign.in.out.ask:0
msgid "Sign in"
msgstr "Logg inn"
#. module: hr_attendance
#: view:hr.attendance.error:0
msgid "Analysis Information"
msgstr "Analyse Informasjon."
#. module: hr_attendance
#: view:hr.sign.in.out:0
msgid "Sign-out Entry Must Follow Sign-in."
msgstr ""
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid "Attendance Errors"
msgstr "Oppmøte feil"
#. module: hr_attendance
#: field:hr.attendance,action:0
#: selection:hr.attendance,action:0
msgid "Action"
msgstr "Handling"
#. module: hr_attendance
#: view:hr.sign.in.out:0
msgid ""
"If you need your staff to sign in when they arrive at work and sign out "
"again at the end of the day, OpenERP allows you to manage this with this "
"tool. If each employee has been linked to a system user, then they can "
"encode their time with this action button."
msgstr ""
"Hvis du trenger dine ansatte til å logge på når de kommer på jobb og logge "
"ut igjen på slutten av dagen, kan OpenERP tillate deg å administrere dette "
"med dette verktøyet. Hvis hver ansatt har vært knyttet til et system bruker, "
"så de kan kode sin tid med denne handlingen knappen."
#. module: hr_attendance
#: model:ir.model,name:hr_attendance.model_hr_attendance_week
msgid "Print Week Attendance Report"
msgstr "Skriv Ut Uke Oppmøte Rapporter."
#. module: hr_attendance
#: field:hr.sign.in.out,emp_id:0
#: field:hr.sign.in.out.ask,emp_id:0
msgid "Empoyee ID"
msgstr "Ansatt ID"
#. module: hr_attendance
#: view:hr.attendance.error:0
#: view:hr.attendance.month:0
#: view:hr.attendance.week:0
#: view:hr.sign.in.out:0
#: view:hr.sign.in.out.ask:0
msgid "Cancel"
msgstr "Avbryt"
#. module: hr_attendance
#: help:hr.action.reason,name:0
msgid "Specifies the reason for Signing In/Signing Out."
msgstr "Angir årsaken til pålogging / logger av."
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid ""
"(*) A positive delay means that the employee worked less than recorded."
msgstr ""
"(*) En positiv forsinkelse innebærer at arbeidstakeren jobbet mindre enn "
"registrert."
#. module: hr_attendance
#: view:hr.attendance.month:0
msgid "Print Attendance Report Monthly"
msgstr "Skriv ut Oppmøte Rapporter Månedlig."
#. module: hr_attendance
#: selection:hr.action.reason,action_type:0
#: view:hr.sign.in.out:0
#: view:hr.sign.in.out.ask:0
msgid "Sign out"
msgstr "Logg av"
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid "Delay"
msgstr "Forsinkelse"
#. module: hr_attendance
#: view:hr.attendance:0
#: model:ir.model,name:hr_attendance.model_hr_employee
msgid "Employee"
msgstr "Ansatt"
#. module: hr_attendance
#: code:addons/hr_attendance/hr_attendance.py:140
#, python-format
msgid ""
"You tried to %s with a date anterior to another event !\n"
"Try to contact the administrator to correct attendances."
msgstr ""
"Du prøvde å% s med en dato fremre til en annen hendelse!\n"
"Prøv å kontakte administrator for å rette tilskuertall."
#. module: hr_attendance
#: view:hr.sign.in.out.ask:0
#: field:hr.sign.in.out.ask,last_time:0
msgid "Your last sign out"
msgstr "Din siste Logg ut."
#. module: hr_attendance
#: report:report.hr.timesheet.attendance.error:0
msgid "Date Recorded"
msgstr "Dato Innspilt"
#. module: hr_attendance
#: model:ir.actions.act_window,name:hr_attendance.open_view_attendance
#: model:ir.ui.menu,name:hr_attendance.menu_hr_attendance
#: model:ir.ui.menu,name:hr_attendance.menu_open_view_attendance
msgid "Attendances"
msgstr "Tilskuertall"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "May"
msgstr "Mai"
#. module: hr_attendance
#: view:hr.sign.in.out.ask:0
msgid "Your last sign in"
msgstr "Din siste logg inn."
#. module: hr_attendance
#: selection:hr.attendance,action:0
#: view:hr.employee:0
msgid "Sign Out"
msgstr "Logg Ut"
#. module: hr_attendance
#: model:ir.actions.act_window,help:hr_attendance.action_hr_attendance_sigh_in_out
msgid ""
"Sign in / Sign out. In some companies, staff have to sign in when they "
"arrive at work and sign out again at the end of the day. If each employee "
"has been linked to a system user, then they can encode their time with this "
"action button."
msgstr ""
"Logg inn / Logg ut. I noen bedrifter, ansatte må logge inn når de kommer på "
"jobb og Logg ut igjen på slutten av dagen. Hvis hver ansatt har vært knyttet "
"til et system bruker, så de kan kode sin tid med denne handlingen knappen."
#. module: hr_attendance
#: field:hr.attendance,employee_id:0
msgid "Employee's Name"
msgstr "Ansatte's navn."
#. module: hr_attendance
#: selection:hr.employee,state:0
msgid "Absent"
msgstr "Fraværende"
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "February"
msgstr "Februar"
#. module: hr_attendance
#: view:hr.attendance:0
msgid "Employee attendances"
msgstr "Ansattes tilskuertall"
#. module: hr_attendance
#: field:hr.sign.in.out,state:0
msgid "Current state"
msgstr "Nåværende tilstand."
#. module: hr_attendance
#: selection:hr.attendance.month,month:0
msgid "April"
msgstr "April"
#. module: hr_attendance
#: view:hr.attendance.error:0
msgid "Bellow this delay, the error is considered to be voluntary"
msgstr "Under denne forsinkelsen, er feilen anses å være frivillig."
#. module: hr_attendance
#: code:addons/hr_attendance/wizard/hr_attendance_error.py:49
#, python-format
msgid "No records found for your selection!"
msgstr "Ingen rader funnet med angitt utvalg!"
#. module: hr_attendance
#: view:hr.sign.in.out.ask:0
msgid ""
"You did not sign in the last time. Please enter the date and time you signed "
"in."
msgstr ""
"Du hadde ikke logget ut siste gang. Vennligst skriv inn datoen og "
"klokkeslettet du logget."
#. module: hr_attendance
#: field:hr.attendance.month,year:0
msgid "Year"
msgstr "År"
#. module: hr_attendance
#: view:hr.sign.in.out.ask:0
msgid "hr.sign.in.out.ask"
msgstr "hr.Logg.i.ut.spør"
#~ msgid "Sign-Out Entry must follow Sign-In."
#~ msgstr "Logg ut Entry må følge pålogging."
@@ -29,7 +29,7 @@ openerp.hr_attendance = function (instance) {
title: function() {
var last_text = instance.web.format_value(self.last_sign, {type: "datetime"});
var current_text = instance.web.format_value(new Date(), {type: "datetime"});
var duration = $.timeago(self.last_sign);
var duration = self.last_sign ? $.timeago(self.last_sign) : "none";
if (self.get("signed_in")) {
return _.str.sprintf(_t("Last sign in: %s,<br />%s.<br />Click to sign out."), last_text, duration);
} else {
+1 -1
View File
@@ -17,7 +17,7 @@
<field name="inherit_id" ref="hr.board_hr_form"/>
<field name="arch" type="xml">
<xpath expr="/form/board/column[1]" position="inside">
<action name="%(action_my_expense)d" string="My Expenses" creatable="true"/>
<action name="%(action_my_expense)d" string="My Expenses"/>
</xpath>
</field>
</record>
@@ -52,6 +52,7 @@
partner_name: 'John Bruno'
state: 'done'
job_id: hr.job_developer
color: 5
stage_id: stage_job5
name: 'Marketing Job'
-
@@ -100,6 +101,9 @@
partner_name: 'David Armstrong'
job_id: hr.job_developer
stage_id: stage_job2
color: 4
name: 'Advertisement'
salary_expected: 11000.0
-
!record {model: hr.job, id: hr.job_developer}:
survey_id: hr_recruitment.survey_job_0
+19 -19
View File
@@ -115,13 +115,13 @@
<sheet>
<div class="oe_right oe_button_box">
<button name="action_makeMeeting" type="object"
string="Schedule Interview" icon="gtk-index" help="Schedule interview with this applicant"/>
string="Schedule Meeting" help="Schedule interview with this applicant"/>
<button name="%(survey.action_view_survey_question_message)d" type="action"
string="Start Interview" icon="gtk-execute" help="Answer related job question"
string="Start Interview" help="Answer related job question"
context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}"
attrs="{'invisible':[('survey','=',False)]}"/>
<button name="action_print_survey" type="object"
string="Print Interview" icon="gtk-print" help="Print interview report"
string="Print Interview" help="Print interview report"
attrs="{'invisible':[('survey','=',False)]}"/>
</div>
<div class="oe_title">
@@ -208,28 +208,28 @@
<field name="arch" type="xml">
<search string="Search Jobs">
<field name="partner_name" filter_domain="['|','|',('name','ilike',self),('partner_name','ilike',self),('email_from','ilike',self)]" string="Subject / Applicant"/>
<filter icon="terp-mail-message-new" string="Inbox" help="Unread messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<filter string="Inbox" help="Unread messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator/>
<filter icon="terp-document-new" string="New" domain="[('state','=','draft')]" help="All Initial Jobs"/>
<filter icon="terp-camera_test" string="In Progress" domain="[('state','=','open')]" help="Open Jobs"/>
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="Pending Jobs"/>
<filter string="New" domain="[('state','=','draft')]" help="All Initial Jobs"/>
<filter string="In Progress" domain="[('state','=','open')]" help="Open Jobs"/>
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Jobs"/>
<separator/>
<filter string="Unassigned Recruitments" domain="[('user_id','=',False)]" help="Unassigned Recruitments" icon="terp-personal-"/>
<filter string="Unassigned Recruitments" domain="[('user_id','=',False)]" help="Unassigned Recruitments"/>
<separator/>
<filter icon="terp-gtk-jump-to-ltr" string="Next Actions" context="{'invisible_next_action':False, 'invisible_next_date':False}"
<filter string="Next Actions" context="{'invisible_next_action':False, 'invisible_next_date':False}"
domain="[('date_action','&lt;&gt;',False)]" help="Filter and view on next actions and date"/>
<field name="job_id"/>
<field name="user_id"/>
<group expand="0" string="Group By...">
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/>
<filter string="Degree" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'type_id'}"/>
<filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'availability'}"/>
<filter string="Appreciation" icon="terp-face-plain" domain="[]" context="{'group_by':'priority'}"/>
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
<filter string="Source" icon="terp-face-plain" domain="[]" context="{'group_by':'source_id'}"/>
<filter string="Creation Date" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
<filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Job" domain="[]" context="{'group_by':'job_id'}"/>
<filter string="Degree" domain="[]" context="{'group_by':'type_id'}"/>
<filter string="Availability" domain="[]" context="{'group_by':'availability'}"/>
<filter string="Appreciation" domain="[]" context="{'group_by':'priority'}"/>
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
<filter string="Source" domain="[]" context="{'group_by':'source_id'}"/>
<filter string="Creation Date" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
</group>
</search>
</field>
@@ -339,7 +339,7 @@
<div groups="base.group_user">
<field name="survey_id" class="oe_inline"/>
<button class="oe_inline"
string="Interview" icon="gtk-print"
string="Interview"
name="action_print_survey" type="object"
attrs="{'invisible':[('survey_id','=',False)]}"/>
</div>
+6 -7
View File
@@ -56,25 +56,24 @@ class mail_group(osv.Model):
help="Members of those groups will automatically added as followers. "\
"Note that they will be able to manage their subscription manually "\
"if necessary."),
# image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Photo",
help="This field holds the image used as photo for the "\
"user. The image is base64 encoded, and PIL-supported. "\
"It is limited to a 1024x1024 px image."),
help="This field holds the image used as photo for the group, limited to 1024x1024px."),
'image_medium': fields.function(_get_image, fnct_inv=_set_image,
string="Medium-sized photo", type="binary", multi="_get_image",
store = {
store={
'mail.group': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Medium-sized photo of the group. It is automatically "\
"resized as a 180x180px image, with aspect ratio preserved. "\
"resized as a 128x128px image, with aspect ratio preserved. "\
"Use this field in form views or some kanban views."),
'image_small': fields.function(_get_image, fnct_inv=_set_image,
string="Small-sized photo", type="binary", multi="_get_image",
store = {
store={
'mail.group': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Small-sized photo of the group. It is automatically "\
"resized as a 50x50px image, with aspect ratio preserved. "\
"resized as a 64x64px image, with aspect ratio preserved. "\
"Use this field anywhere a small image is required."),
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
help="The email address associated with this group. New emails received will automatically "
+13 -2
View File
@@ -55,9 +55,20 @@ class res_users(osv.Model):
return init_res
def _auto_init(self, cr, context=None):
"""Installation hook to create aliases for all users and avoid constraint errors."""
self.pool.get('mail.alias').migrate_to_alias(cr, self._name, self._table, super(res_users,self)._auto_init,
""" Installation hook: aliases, partner following themselves """
# create aliases for all users and avoid constraint errors
self.pool.get('mail.alias').migrate_to_alias(cr, self._name, self._table, super(res_users, self)._auto_init,
self._columns['alias_id'], 'login', alias_force_key='id', context=context)
# make already existing users follow themselves, using SQL to avoid using the ORM during the auto_init
cr.execute(""" SELECT p.id FROM res_partner p
LEFT JOIN mail_followers n
ON (n.partner_id = p.id AND n.res_model = 'res.partner' AND n.res_id = p.id)
WHERE n.id IS NULL
""")
params = [(res[0], res[0]) for res in cr.fetchall()]
cr.executemany(""" INSERT INTO mail_followers (partner_id, res_model, res_id)
VALUES (%s, 'res.partner', %s)
""", params)
def create(self, cr, uid, data, context=None):
# create default alias same as the login
+6 -9
View File
@@ -322,11 +322,7 @@
text-decoration: none;
}
.openerp .oe_mail_msg_subtitle {
margin: 0 0 .5em 0;
}
.openerp .oe_mail_msg_footer,
.openerp .oe_mail_msg_subtitle {
.openerp .oe_mail_msg_footer {
color: #888;
}
@@ -340,12 +336,13 @@
text-align: justify;
}
.openerp .oe_mail_msg_body span.oe_mail_msg_tail {
display: inline;
.openerp .oe_mail_msg_record_body pre {
font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif;
margin: 0px;
}
.openerp .oe_mail_oe_bold {
font-weight: bold;
.openerp .oe_mail_msg_body span.oe_mail_msg_tail {
display: inline;
}
/* Read more/less link */
+6 -5
View File
@@ -411,7 +411,7 @@ openerp.mail = function(session) {
self.thread = new mail.Thread(self, {
'context': {
'default_model': record.model,
'default_id': record.res_id,
'default_res_id': record.res_id,
'default_parent_id': record.id },
'message_data': record.child_ids, 'thread_level': self.options.thread_level-1,
'show_header_compose': false, 'show_reply': self.options.thread_level > 1,
@@ -473,7 +473,7 @@ openerp.mail = function(session) {
},
display_user_avatar: function () {
var avatar = mail.ChatterUtils.get_image(this.session.prefix, this.session.session_id, 'res.users', 'image_small', this.options.uid);
var avatar = mail.ChatterUtils.get_image(this.session.prefix, this.session.session_id, 'res.users', 'image_small', this.session.uid);
return this.$el.find('img.oe_mail_icon').attr('src', avatar);
},
@@ -484,9 +484,9 @@ openerp.mail = function(session) {
var body = comment_node.val();
comment_node.val('');
}
return this.ds_post.call('message_post', [
[this.options.context.res_id], body, false, 'comment', this.options.context.parent_id]
).then(this.proxy('message_fetch'));
return this.ds_thread.call('message_post', [
[this.options.context.default_res_id], body, false, 'comment', this.options.context.default_parent_id, undefined]
).then(self.message_fetch());
},
/** Action: 'shows more' to fetch new messages */
@@ -585,6 +585,7 @@ openerp.mail = function(session) {
var thread = new mail.Thread(self, {
'context': this.options.context,
'thread_level': this.options.thread_level, 'show_header_compose': true,
'message_ids': this.get_value(),
'show_delete': true, 'composer': true });
this.thread_list.push(thread);
return thread.appendTo(this.$el.find('div.oe_mail_recthread_main'));
+2 -3
View File
@@ -118,15 +118,14 @@
<t t-raw="record.subject"/>
</h1>
<div class="oe_mail_msg_body">
<div class="oe_mail_msg_record_body">
<a t-attf-href="#model=#{params.res_model}&amp;id=#{params.res_id}" t-if="(params.thread_level > 0) &amp; (!record.subject)"><t t-raw="record.record_name"/></a>
<a t-attf-href="#model=#{record.model}&amp;id=#{record.res_id}" t-if="(params.thread_level > 0) &amp; (!record.subject)"><t t-raw="record.record_name"/></a>
<t t-raw="record.body"/>
</div>
</div>
<div class="oe_clear"/>
<ul class="oe_mail_msg_footer">
<li t-if="record.subject &amp; params.thread_level > 0"><a t-attf-href="#model=#{params.res_model}&amp;id=#{params.res_id}"><t t-raw="record.record_name"/></a></li>
<li t-if="record.subject &amp; params.thread_level > 0"><a t-attf-href="#model=#{record.model}&amp;id=#{record.res_id}"><t t-raw="record.record_name"/></a></li>
<li><a t-attf-href="#model=res.partner&amp;id=#{record.author_id[0]}"><t t-raw="record.author_id[1]"/></a></li>
<li><span t-att-title="record.date"><t t-raw="record.timerelative"/></span></li>
<li t-if="display['show_reply']"><a href="#" class="oe_mail_msg_reply">Reply</a></li>
@@ -0,0 +1,192 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-09-10 13:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: marketing_campaign_crm_demo
#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
msgid "Marketing campaign demo report"
msgstr "Markedsføringskampanje demo rapport."
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_1
msgid ""
"Hello,Thanks for generous interest you have shown in the "
"openERP.Regards,OpenERP Team,"
msgstr ""
"Hei, Takk for sjenerøs interessen du har vist i openERP.Regards, OpenERP lag,"
#. module: marketing_campaign_crm_demo
#: report:crm.lead.demo:0
msgid "Company :"
msgstr "Firma :"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_4
msgid "Thanks for buying the OpenERP book"
msgstr "Takk for at du kjøpte OpenERP boken."
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_6
msgid ""
"Hello, We have very good offer that might suit you.\n"
" For our silver partners,We are paid technical training on "
"june,2010.\n"
" If any further information required kindly revert back.\n"
" I really appreciate your co-operation on this.\n"
" Regards,OpenERP Team,"
msgstr ""
"Hei, Vi har veldig godt tilbud som kan passe for deg.\n"
"             For våre sølv partnere, Vi betalte teknisk trening på juni "
"2010.\n"
"             Hvis noen ytterligere opplysninger som kreves ber gå tilbake.\n"
"             Jeg setter pris på ditt samarbeid om dette.\n"
"             Hilsen OpenERP Team,"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_5
msgid "Propose a free technical training to Gold partners"
msgstr "Foreslå en gratis teknisk opplæring til Gold partnere."
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_3
msgid "Thanks for subscribing to the OpenERP Discovery Day"
msgstr "Takk for at du abonnerte på OpenERP Discovery dag."
#. module: marketing_campaign_crm_demo
#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy
msgid "Dummy Action"
msgstr "Dummy handling."
#. module: marketing_campaign_crm_demo
#: report:crm.lead.demo:0
msgid "Partner :"
msgstr "Partner :"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_1
msgid "Thanks for showing interest in OpenERP"
msgstr "Takk for at du viser interesse for OpenERP."
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_2
msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010"
msgstr "Foreslår å abonnere på OpenERP Discovery Day mai 2010."
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_7
msgid ""
"Hello, We have very good offer that might suit you.\n"
" For our silver partners,We are offering Gold partnership.\n"
" If any further information required kindly revert back.\n"
" I really appreciate your co-operation on this.\n"
" Regards,OpenERP Team,"
msgstr ""
"Hei, Vi har veldig godt tilbud som kan passe for deg.\n"
"             For våre sølv partnere, tilbyr vi Gold partnerskap.\n"
"             Hvis noen ytterligere opplysninger som kreves ber gå tilbake.\n"
"             Jeg setter pris på ditt samarbeid om dette.\n"
"             Hilsen OpenERP Team,"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_7
msgid "Propose gold partnership to silver partners"
msgstr "Foreslå gull partnerskap til sølv partnere."
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_4
msgid ""
"Hello,Thanks for showing intrest and buying the OpenERP book.\n"
" If any further information required kindly revert back.\n"
" I really appreciate your co-operation on this.\n"
" Regards,OpenERP Team,"
msgstr ""
"Hei, Takk for at du viser interesse og kjøpe OpenERP boken.\n"
"             Hvis noen ytterligere opplysninger som kreves ber gå tilbake.\n"
"             Jeg setter pris på ditt samarbeid om dette.\n"
"             Hilsen OpenERP Team,"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_5
msgid ""
"Hello, We have very good offer that might suit you.\n"
" For our gold partners,We are arranging free technical training "
"on june,2010.\n"
" If any further information required kindly revert back.\n"
" I really appreciate your co-operation on this.\n"
" Regards,OpenERP Team,"
msgstr ""
"Hei, Vi har veldig godt tilbud som kan passe for deg.\n"
"             For våre gull partnere, Vi arrangerer gratis teknisk trening på "
"juni 2010.\n"
"             Hvis noen ytterligere opplysninger som kreves ber gå tilbake.\n"
"             Jeg setter pris på ditt samarbeid om dette.\n"
"             Hilsen OpenERP Team,"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_3
msgid ""
"Hello,Thanks for showing intrest and for subscribing to the OpenERP "
"Discovery Day.\n"
" If any further information required kindly revert back.\n"
" I really appreciate your co-operation on this.\n"
" Regards,OpenERP Team,"
msgstr ""
"Hei, Takk for at du viser interesse og for å abonnere på OpenERP Discovery "
"Day.\n"
"              Hvis noen ytterligere opplysninger som kreves ber gå tilbake.\n"
"              Jeg setter pris på ditt samarbeid om dette.\n"
"              Hilsen OpenERP Team,"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_8
msgid "Thanks for subscribing to technical training"
msgstr "Takk for at du abonnerte på teknisk trening."
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_2
msgid ""
"Hello,We have very good offer that might suit you.\n"
" We propose you to subscribe to the OpenERP Discovery Day on May "
"2010.\n"
" If any further information required kindly revert back.\n"
" We really appreciate your co-operation on this.\n"
" Regards,OpenERP Team,"
msgstr ""
"Hei, Vi har veldig godt tilbud som kan passe for deg.\n"
"             Vi foreslår at du abonnere på OpenERP Discovery Day mai 2010.\n"
"             Hvis noen ytterligere opplysninger som kreves ber gå tilbake.\n"
"             Vi setter pris på din samarbeid om dette.\n"
"             Hilsen OpenERP Team,"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_8
msgid ""
"Hello, Thanks for showing intrest and for subscribing to technical "
"training.If any further information required kindly revert back.I really "
"appreciate your co-operation on this.\n"
" Regards,OpenERP Team,"
msgstr ""
"Hei, Takk for at du viser interesse og for å abonnere på teknisk training.If "
"ytterligere informasjon som kreves ber tilbake tilbake.Jeg virkelig setter "
"pris på din samarbeid om dette.\n"
"             Hilsen OpenERP Team,"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_6
msgid "Propose paid training to Silver partners"
msgstr "Foreslå betalt opplæring til Silver partnere."
+132
View File
@@ -0,0 +1,132 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-09-10 13:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: mrp_subproduct
#: field:mrp.subproduct,product_id:0
msgid "Product"
msgstr "Produkt"
#. module: mrp_subproduct
#: selection:mrp.subproduct,subproduct_type:0
msgid "Fixed"
msgstr "Fast"
#. module: mrp_subproduct
#: sql_constraint:mrp.bom:0
msgid ""
"All product quantities must be greater than 0.\n"
"You should install the mrp_subproduct module if you want to manage extra "
"products on BoMs !"
msgstr ""
"Alle produktantall må være større en 0.\n"
"Du bør installere modulen mrp:subproduct hvis du vil håndtere ekstra "
"produkter på Materiallister !"
#. module: mrp_subproduct
#: view:mrp.bom:0
msgid "sub products"
msgstr "Sub produkter"
#. module: mrp_subproduct
#: model:ir.model,name:mrp_subproduct.model_mrp_production
msgid "Manufacturing Order"
msgstr "Produksjonsordre"
#. module: mrp_subproduct
#: constraint:mrp.bom:0
msgid "BoM line product should not be same as BoM product."
msgstr "Bom linje produktet bør ikke være det samme som BOM produkt."
#. module: mrp_subproduct
#: view:mrp.bom:0
msgid "Sub Products"
msgstr "Sub produkter."
#. module: mrp_subproduct
#: field:mrp.subproduct,subproduct_type:0
msgid "Quantity Type"
msgstr "Antall Type."
#. module: mrp_subproduct
#: model:ir.model,name:mrp_subproduct.model_mrp_bom
msgid "Bill of Material"
msgstr "Materialliste"
#. module: mrp_subproduct
#: field:mrp.subproduct,product_qty:0
msgid "Product Qty"
msgstr "Produkt Ant"
#. module: mrp_subproduct
#: field:mrp.subproduct,product_uom:0
msgid "Product UOM"
msgstr "Produkt Enhet"
#. module: mrp_subproduct
#: field:mrp.subproduct,bom_id:0
msgid "BoM"
msgstr "Materialliste"
#. module: mrp_subproduct
#: sql_constraint:mrp.production:0
msgid "Reference must be unique per Company!"
msgstr "Referanse må være unik pr firma!"
#. module: mrp_subproduct
#: field:mrp.bom,sub_products:0
msgid "sub_products"
msgstr "Sub_produkter."
#. module: mrp_subproduct
#: selection:mrp.subproduct,subproduct_type:0
msgid "Variable"
msgstr "Variabel"
#. module: mrp_subproduct
#: model:ir.model,name:mrp_subproduct.model_mrp_subproduct
msgid "Sub Product"
msgstr "Sub produkt."
#. module: mrp_subproduct
#: constraint:mrp.production:0
msgid "Order quantity cannot be negative or zero!"
msgstr "Ordrekvantum kan ikke være negativt eller null!"
#. module: mrp_subproduct
#: help:mrp.subproduct,subproduct_type:0
msgid ""
"Define how the quantity of subproducts will be set on the production orders "
"using this BoM. 'Fixed' depicts a situation where the quantity of created "
"subproduct is always equal to the quantity set on the BoM, regardless of how "
"many are created in the production order. By opposition, 'Variable' means "
"that the quantity will be computed as '(quantity of subproduct set on the "
"BoM / quantity of manufactured product set on the BoM * quantity of "
"manufactured product in the production order.)'"
msgstr ""
"Definere hvordan mengden av delkomponenter vil bli satt på produksjonsordrer "
"ved hjelp av denne BOM. 'Fast' beskriver en situasjon der mengden av laget "
"subproduct er alltid lik mengde sett på BOM, uavhengig av hvor mange som er "
"skapt i produksjonen rekkefølge. Av motstand, 'variabel' betyr at mengden "
"vil bli beregnet som '(mengde subproduct satt på BOM / mengde produsert "
"produkt satt på BOM * mengde produsert produkt i produksjonen rekkefølge.)'"
#. module: mrp_subproduct
#: constraint:mrp.bom:0
msgid "Error ! You cannot create recursive BoM."
msgstr "Feil! Du kan ikke lage en rekursive BoM."
+58
View File
@@ -0,0 +1,58 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2012-09-10 13:38+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: pad
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr "Firmanavn må være unikt !"
#. module: pad
#: help:res.company,pad_url_template:0
msgid "Template used to generate pad URL."
msgstr "Mal som brukes til å generere pad URL."
#. module: pad
#: model:ir.model,name:pad.model_res_company
msgid "Companies"
msgstr "Firmaer"
#. module: pad
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr "Feil ! Du kan ikke lage rekursive firmaer."
#. module: pad
#: model:ir.model,name:pad.model_ir_attachment
msgid "ir.attachment"
msgstr "ir.vedlegg"
#. module: pad
#: view:res.company:0
msgid "Pad"
msgstr "Pad"
#. module: pad
#: field:res.company,pad_url_template:0
msgid "Pad URL Template"
msgstr "Pad URL Mal."
#. openerp-web
#: /home/odo/repositories/addons/trunk/pad/static/src/xml/pad.xml:9
msgid "Add Pad"
msgstr "Legg til Pad."
+38
View File
@@ -0,0 +1,38 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-09-10 13:38+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: pad_project
#: constraint:project.task:0
msgid "Error ! Task end-date must be greater then task start-date"
msgstr "Feil! Oppgave sluttdato må være større enn oppgave startdato"
#. module: pad_project
#: model:ir.model,name:pad_project.model_project_task
msgid "Task"
msgstr "Oppgave"
#. module: pad_project
#: view:project.task:0
msgid "Pad"
msgstr "Pad"
#. module: pad_project
#: constraint:project.task:0
msgid "Error ! You cannot create recursive tasks."
msgstr "Feil! Du kan ikke lage en rekursive oppgaver."
+23
View File
@@ -0,0 +1,23 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-09-10 13:40+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: plugin
#: model:ir.model,name:plugin.model_plugin_handler
msgid "plugin.handler"
msgstr "Plugg.behandleren"
+78
View File
@@ -0,0 +1,78 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-09 00:36+0000\n"
"PO-Revision-Date: 2012-09-10 13:42+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: plugin_outlook
#: view:outlook.installer:0
msgid ""
"This plug-in allows you to create and link outlook emails with openerp "
"objects."
msgstr ""
"Denne plug-in tillater deg å opprette og koble Outlook e-post med openerp "
"objekter."
#. module: plugin_outlook
#: field:outlook.installer,name:0
msgid "Outlook Plug-in"
msgstr "Outlook Plugginn"
#. module: plugin_outlook
#: model:ir.actions.act_window,name:plugin_outlook.action_outlook_installer
#: model:ir.actions.act_window,name:plugin_outlook.action_outlook_wizard
#: model:ir.ui.menu,name:plugin_outlook.menu_base_config_plugins_outlook
#: view:outlook.installer:0
msgid "Install Outlook Plug-In"
msgstr "Installere Outlook Plugg-Inn."
#. module: plugin_outlook
#: field:outlook.installer,config_logo:0
msgid "Image"
msgstr "Bilde"
#. module: plugin_outlook
#: view:outlook.installer:0
msgid "title"
msgstr "tittel"
#. module: plugin_outlook
#: model:ir.model,name:plugin_outlook.model_outlook_installer
msgid "outlook.installer"
msgstr "outlook.installer"
#. module: plugin_outlook
#: view:outlook.installer:0
msgid "_Close"
msgstr "_Lukk"
#. module: plugin_outlook
#: view:outlook.installer:0
msgid "Installation and Configuration Steps"
msgstr "Installasjon og Konfigurasjon trinn"
#. module: plugin_outlook
#: help:outlook.installer,name:0
msgid ""
"outlook plug-in file. Save as this file and install this plug-in in outlook."
msgstr ""
"Outlook pluginn-filen. Lagre som denne filen og installere denne plugin-"
"modulen i outlook."
#. module: plugin_outlook
#: field:outlook.installer,description:0
msgid "Description"
msgstr "Beskrivelse:"
+108
View File
@@ -0,0 +1,108 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-09 00:36+0000\n"
"PO-Revision-Date: 2012-09-10 13:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: plugin_thunderbird
#: field:plugin_thunderbird.installer,pdf_file:0
msgid "Installation Manual"
msgstr "Installasjons håndbok."
#. module: plugin_thunderbird
#: field:plugin_thunderbird.installer,description:0
msgid "Description"
msgstr "Beskrivelse:"
#. module: plugin_thunderbird
#: view:plugin_thunderbird.installer:0
msgid "title"
msgstr "tittel"
#. module: plugin_thunderbird
#: model:ir.model,name:plugin_thunderbird.model_plugin_thunderbird_installer
msgid "plugin_thunderbird.installer"
msgstr "plugin_thunderbird.installer"
#. module: plugin_thunderbird
#: field:plugin_thunderbird.installer,config_logo:0
msgid "Image"
msgstr "Bilde"
#. module: plugin_thunderbird
#: field:plugin_thunderbird.installer,plugin_file:0
#: field:plugin_thunderbird.installer,thunderbird:0
msgid "Thunderbird Plug-in"
msgstr "Thunderbird Plug-in"
#. module: plugin_thunderbird
#: view:plugin_thunderbird.installer:0
msgid ""
"This plug-in allows you to link your email to OpenERP's documents. You can "
"attach it to any existing one in OpenERP or create a new one."
msgstr ""
#. module: plugin_thunderbird
#: help:plugin_thunderbird.installer,thunderbird:0
msgid ""
"Allows you to select an object that you would like to add to your email and "
"its attachments."
msgstr ""
"Lar deg velge et objekt som du ønsker å legge til din e-post og vedlegg."
#. module: plugin_thunderbird
#: help:plugin_thunderbird.installer,pdf_file:0
msgid "The documentation file :- how to install Thunderbird Plug-in."
msgstr "Dokumentasjonen fil: - hvordan du installerer Thunderbird Plug-in."
#. module: plugin_thunderbird
#: view:plugin_thunderbird.installer:0
msgid "_Close"
msgstr "_Lukk"
#. module: plugin_thunderbird
#: view:plugin_thunderbird.installer:0
msgid "Installation and Configuration Steps"
msgstr "Installasjon og Konfigurasjon trinn"
#. module: plugin_thunderbird
#: field:plugin_thunderbird.installer,name:0
#: field:plugin_thunderbird.installer,pdf_name:0
msgid "File name"
msgstr "Filnavn"
#. module: plugin_thunderbird
#: help:plugin_thunderbird.installer,plugin_file:0
msgid ""
"Thunderbird plug-in file. Save as this file and install this plug-in in "
"thunderbird."
msgstr ""
"Thunderbird plug-in-filen. Lagre som denne filen og installere denne plugin-"
"modulen i thunderbird."
#. module: plugin_thunderbird
#: model:ir.actions.act_window,name:plugin_thunderbird.action_thunderbird_installer
#: model:ir.ui.menu,name:plugin_thunderbird.menu_base_config_plugins_thunderbird
#: view:plugin_thunderbird.installer:0
msgid "Install Thunderbird Plug-In"
msgstr "Installer Thunderbird Plug-in."
#~ msgid ""
#~ "This plug-in allows you to link your e-mail to OpenERP's documents. You can "
#~ "attach it to any existing one in OpenERP or create a new one."
#~ msgstr ""
#~ "Denne plug-in tillater deg å koble din e-post til OpenERP er dokumenter. Du "
#~ "kan feste den til enhver eksisterende i OpenERP eller opprette en ny."
+10 -13
View File
@@ -314,10 +314,9 @@ class pos_session(osv.osv):
# define some cash journal if no payment method exists
if not pos_config.journal_ids:
cashids = self.pool.get('account.journal').search(cr, uid, [('journal_user','=',True)], context=context)
cashids = self.pool.get('account.journal').search(cr, uid, [('journal_user', '=', True), ('type','=','cash')], context=context)
if not cashids:
cashids = self.pool.get('account.journal').search(cr, uid, [('type','=','cash')], context=context)
self.pool.get('account.journal').write(cr, uid, cashids, {'journal_user': True})
cashids = self.pool.get('account.journal').search(cr, uid, [('journal_user','=',True)], context=context)
jobj.write(cr, uid, [pos_config.id], {'journal_ids': [(6,0, cashids)]})
@@ -1211,29 +1210,27 @@ class pos_category(osv.osv):
'child_id': fields.one2many('pos.category', 'parent_id', string='Children Categories'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of product categories."),
# NOTE: there is no 'default image', because by default we don't show thumbnails for categories. However if we have a thumbnail
# NOTE: there is no 'default image', because by default we don't show thumbnails for categories. However if we have a thumbnail
# for at least one category, then we display a default image on the other, so that the buttons have consistent styling.
# In this case, the default image is set by the js code.
# In this case, the default image is set by the js code.
# NOTE2: image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Image",
help="This field holds the image used for the category. "\
"The image is base64 encoded, and PIL-supported. "\
"It is limited to a 1024x1024 px image."),
help="This field holds the image used as image for the cateogry, limited to 1024x1024px."),
'image_medium': fields.function(_get_image, fnct_inv=_set_image,
string="Medium-sized image", type="binary", multi="_get_image",
store = {
store={
'pos.category': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Medium-sized image of the category. It is automatically "\
"resized as a 180x180 px image, with aspect ratio preserved. "\
"resized as a 128x128px image, with aspect ratio preserved. "\
"Use this field in form views or some kanban views."),
'image_small': fields.function(_get_image, fnct_inv=_set_image,
string="Smal-sized image", type="binary", multi="_get_image",
store = {
store={
'pos.category': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Small-sized image of the category. It is automatically "\
"resized as a 50x50 px image, with aspect ratio preserved. "\
"resized as a 64x64px image, with aspect ratio preserved. "\
"Use this field anywhere a small image is required."),
}
+1 -1
View File
@@ -948,7 +948,7 @@
<field name="total_entry_encoding" />
<field name="balance_end_real" />
<field name="difference" />
<field name="currency" />
<field name="currency" groups="base.group_multi_currency" />
<field name="state" />
</tree>
</field>
+1 -1
View File
@@ -37,7 +37,7 @@ class portal(osv.osv):
'group_id': fields.many2one('res.groups', required=True, ondelete='cascade',
string='Group',
help='The group corresponding to this portal'),
'url': fields.char('URL', size=64,
'url': fields.char('URL',
help="The url where portal users can connect to the server"),
'home_action_id': fields.many2one('ir.actions.actions',
string='Home Action',
+4 -4
View File
@@ -119,7 +119,7 @@
<field name="name" string="Products Price"/>
<field name="type"/>
<field name="active" />
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</search>
</field>
</record>
@@ -132,7 +132,7 @@
<tree string="Products Price List">
<field name="name"/>
<field name="type"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="active" />
</tree>
</field>
@@ -149,7 +149,7 @@
<group col="4">
<field name="active"/>
<field name="type"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<field name="version_id">
@@ -230,7 +230,7 @@
<field name="name"/>
<field name="active"/>
<field name="field"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</group>
</form>
</field>
+8 -9
View File
@@ -509,7 +509,7 @@ class product_product(osv.osv):
def _get_image(self, cr, uid, ids, name, args, context=None):
result = dict.fromkeys(ids, False)
for obj in self.browse(cr, uid, ids, context=context):
result[obj.id] = tools.image_get_resized_images(obj.image)
result[obj.id] = tools.image_get_resized_images(obj.image, avoid_resize_medium=True)
return result
def _set_image(self, cr, uid, id, name, value, args, context=None):
@@ -548,25 +548,24 @@ class product_product(osv.osv):
'pricelist_id': fields.dummy(string='Pricelist', relation='product.pricelist', type='many2one'),
'name_template': fields.related('product_tmpl_id', 'name', string="Name", type='char', size=128, store=True, select=True),
'color': fields.integer('Color Index'),
# image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Image",
help="This field holds the image used for the product. "\
"The image is base64 encoded, and PIL-supported. "\
"It is limited to a 1024x1024 px image."),
help="This field holds the image used as image for the product, limited to 1024x1024px."),
'image_medium': fields.function(_get_image, fnct_inv=_set_image,
string="Medium-sized image", type="binary", multi="_get_image",
store = {
store={
'product.product': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Medium-sized image of the product. It is automatically "\
"resized as a 180x180 px image, with aspect ratio preserved. "\
"Use this field in form views or some kanban views."),
"resized as a 128x128px image, with aspect ratio preserved, "\
"only when the image exceeds one of those sizes. Use this field in form views or some kanban views."),
'image_small': fields.function(_get_image, fnct_inv=_set_image,
string="Small-sized image", type="binary", multi="_get_image",
store = {
store={
'product.product': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Small-sized image of the product. It is automatically "\
"resized as a 50x50 px image, with aspect ratio preserved. "\
"resized as a 64x64px image, with aspect ratio preserved. "\
"Use this field anywhere a small image is required."),
'seller_info_id': fields.function(_calc_seller, type='many2one', relation="product.supplierinfo", multi="seller_info"),
'seller_delay': fields.function(_calc_seller, type='integer', string='Supplier Lead Time', multi="seller_info", help="This is the average delay in days between the purchase order confirmation and the reception of goods for this product and for the default supplier. It is used by the scheduler to order requests based on reordering delays."),
+1
View File
@@ -39,6 +39,7 @@
<field name="default_code"/>
<field name="name"/>
<field name="categ_id" invisible="1"/>
<field name="type" invisible="1"/>
<field name="variants" groups="product.group_product_variant"/>
<field name="uom_id" string="Unit of Measure" groups="product.group_uom"/>
<field name="qty_available"/>
+4 -2
View File
@@ -139,8 +139,10 @@
<field name="parent_id" domain="[('id','!=',analytic_account_id)]" context="{'current_model': 'project.project'}"/>
<field name="priority"/>
<field name="active" attrs="{'invisible':[('state','in',['open', 'pending', 'template'])]}"/>
<field name="currency_id" groups="base.group_multi_company" required="1"/>
<field name="company_id" groups="base.group_multi_company" widget="selection" required="1"/>
<field name="currency_id" groups="base.group_multi_currency" required="1"/>
<field name="parent_id" domain="[('id','!=',analytic_account_id)]" context="{'current_model': 'project.project'}"/>
</group>
</group>
</page>
+1 -1
View File
@@ -45,7 +45,7 @@
<field name="name">public Members</field>
<field name="model_id" ref="model_project_project"/>
<field name="global" eval="True"/>
<field name="domain_force">['|','|',('privacy_visibility','in',[False,'public']),('members','in',[user.id]),('follower_ids','in',[user.partner_id.id])]</field>
<field name="domain_force">['|','|',('privacy_visibility','in',[False,'public']),('members','in',[user.id]),('message_follower_ids','in',[user.partner_id.id])]</field>
</record>
<record model="ir.rule" id="task_comp_rule">
+1 -1
View File
@@ -62,7 +62,7 @@
<form string="Purchase Dashboard" version="7.0">
<board style="2-1">
<column>
<action name="%(purchase_draft)d" string="Request for Quotations" creatable="true"/>
<action name="%(purchase_draft)d" string="Request for Quotations"/>
</column>
<column>
<action name="%(action_purchase_order_monthly_categ_graph)d" string="Monthly Purchases by Category"/>
@@ -84,7 +84,7 @@
<field name="weight"/>
<field name="value"/>
<field name="supply_units"/>
<field name="currency_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="type"/>
</tree>
</field>
+123
View File
@@ -0,0 +1,123 @@
# Russian 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-09-10 14:37+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:37
msgid "Refund"
msgstr "Возврат"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:22
msgid "Fax"
msgstr "Факс"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:49
msgid "Disc.(%)"
msgstr "Дисконт (%)"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:19
msgid "Tel"
msgstr "Тел"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:49
msgid "Description"
msgstr "Описание"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:35
msgid "Supplier Invoice"
msgstr "Счет поставщика"
#. module: report_webkit_sample
#: model:ir.actions.report.xml,name:report_webkit_sample.report_webkit_html
msgid "WebKit invoice"
msgstr "Счет Webkit"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:49
msgid "Price"
msgstr "Цена"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:44
msgid "Invoice Date"
msgstr "Дата счёта"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:49
msgid "Taxes"
msgstr "Налоги"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:49
msgid "QTY"
msgstr "Кол-во"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:25
msgid "Email"
msgstr "Эл. почта"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:64
msgid "Amount"
msgstr "Сумма"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:64
msgid "Base"
msgstr ""
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:33
msgid "Invoice"
msgstr "Счет"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:39
msgid "Supplier Refund"
msgstr "Возврат средств от поставщика"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:44
msgid "Document"
msgstr "Документ"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:49
msgid "Unit Price"
msgstr "Цена за ед."
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:44
msgid "Partner Ref."
msgstr "Ссылка на контрагента"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:28
msgid "VAT"
msgstr "НДС"
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:76
msgid "Total"
msgstr "Всего"
+1 -1
View File
@@ -51,7 +51,7 @@
<form string="Sales Dashboard" version="7.0">
<board style="2-1">
<column>
<action name="%(action_quotation_for_sale)d" string="My Quotations" creatable="true"/>
<action name="%(action_quotation_for_sale)d" string="My Quotations"/>
</column>
<column>
<action name="%(action_turnover_by_month)d" string="Monthly Turnover"/>
+77 -62
View File
@@ -7,19 +7,19 @@ 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 17:51+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2012-09-10 14:56+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-07 04:58+0000\n"
"X-Generator: Launchpad (build 15914)\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: sale
#: field:sale.config.picking_policy,timesheet:0
msgid "Based on Timesheet"
msgstr ""
msgstr "Основано на затратах времени"
#. module: sale
#: view:sale.order.line:0
@@ -27,6 +27,8 @@ msgid ""
"Sale Order Lines that are confirmed, done or in exception state and haven't "
"yet been invoiced"
msgstr ""
"Позиции заказа на продажу в состоянии \"Подтвержден\", \"Cделано\" или "
"\"Исключение\" и на которые не был выставлен счет"
#. module: sale
#: view:board.board:0
@@ -78,7 +80,7 @@ msgstr "Запрос цен '%s' был преобразован в заказ
#. module: sale
#: view:sale.order:0
msgid "Print Quotation"
msgstr ""
msgstr "Печать предложения цен"
#. module: sale
#: code:addons/sale/wizard/sale_make_invoice.py:42
@@ -89,7 +91,7 @@ msgstr "Внимание!"
#. module: sale
#: report:sale.order:0
msgid "Tax"
msgstr ""
msgstr "Налог"
#. module: sale
#: model:process.node,note:sale.process_node_saleorderprocurement0
@@ -123,6 +125,9 @@ msgid ""
"cancel a sale order, you must first cancel related picking or delivery "
"orders."
msgstr ""
"Для удаления подтвержденного заказа на продажу надо сначала его отменить ! "
"Для отмены заказа на продажу надо отменить его комплектование или заказ на "
"доставку."
#. module: sale
#: model:process.node,name:sale.process_node_saleprocurement0
@@ -137,7 +142,7 @@ msgstr "Контрагент"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Invoice based on deliveries"
msgstr ""
msgstr "Счет основанный на отгрузке"
#. module: sale
#: view:sale.order:0
@@ -187,12 +192,12 @@ msgstr "Условия платежа по умолчанию"
#. module: sale
#: field:sale.config.picking_policy,deli_orders:0
msgid "Based on Delivery Orders"
msgstr ""
msgstr "Основанный на заказе на отгрузку"
#. module: sale
#: field:sale.config.picking_policy,time_unit:0
msgid "Main Working Time Unit"
msgstr ""
msgstr "Основная единица рабочего времени"
#. module: sale
#: view:sale.order:0 view:sale.order.line:0 field:sale.order.line,state:0
@@ -218,7 +223,7 @@ msgstr "Отметьте для группирования счетов по з
#. module: sale
#: view:sale.order:0
msgid "My Sale Orders"
msgstr ""
msgstr "Мои заказы на продажу"
#. module: sale
#: selection:sale.order,invoice_quantity:0
@@ -267,7 +272,7 @@ msgstr ""
#. module: sale
#: model:ir.actions.act_window,name:sale.act_res_partner_2_sale_order
msgid "Quotations and Sales"
msgstr ""
msgstr "Предложения цен и продажи"
#. module: sale
#: model:ir.model,name:sale.model_sale_make_invoice
@@ -278,7 +283,7 @@ msgstr "Продажи - создать счет"
#: code:addons/sale/sale.py:330
#, python-format
msgid "Pricelist Warning!"
msgstr ""
msgstr "Предупреждение по прайс листу!"
#. module: sale
#: field:sale.order.line,discount:0
@@ -344,7 +349,7 @@ msgstr "Продажи в состоянии \"Исключение\""
#: code:addons/sale/wizard/sale_make_invoice_advance.py:70
#, python-format
msgid "Configuration Error !"
msgstr ""
msgstr "Ошибка конфигурации !"
#. module: sale
#: view:sale.order:0
@@ -406,7 +411,7 @@ msgstr "Октябрь"
#. module: sale
#: sql_constraint:stock.picking:0
msgid "Reference must be unique per Company!"
msgstr ""
msgstr "Ссылка должна быть уникальна для каждой компании!"
#. module: sale
#: view:board.board:0 view:sale.order:0 view:sale.report:0
@@ -469,7 +474,7 @@ msgstr ""
#: code:addons/sale/sale.py:1074
#, python-format
msgid "You cannot cancel a sale order line that has already been invoiced!"
msgstr ""
msgstr "Нельзя отменить позицию заказа на продажу, которая уже в счете!"
#. module: sale
#: code:addons/sale/sale.py:1079
@@ -519,7 +524,7 @@ msgstr "Примечания"
#. module: sale
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "Название компании должно быть уникальным!"
#. module: sale
#: help:sale.order,partner_invoice_id:0
@@ -529,12 +534,12 @@ msgstr "Адрес счета для текущего заказа на прод
#. module: sale
#: view:sale.report:0
msgid "Month-1"
msgstr ""
msgstr "Месяц-1"
#. module: sale
#: view:sale.report:0
msgid "Ordered month of the sales order"
msgstr ""
msgstr "Месяц заказа в заказе на продажу"
#. module: sale
#: code:addons/sale/sale.py:504
@@ -542,11 +547,12 @@ msgstr ""
msgid ""
"You cannot group sales having different currencies for the same partner."
msgstr ""
"Нельзя сгруппировать продажи в разных валютах для одного контрагента."
#. module: sale
#: selection:sale.order,picking_policy:0
msgid "Deliver each product when available"
msgstr ""
msgstr "Отгрузка каждого товара по готовности."
#. module: sale
#: field:sale.order,invoiced_rate:0 field:sale.order.line,invoiced:0
@@ -581,12 +587,12 @@ msgstr "Март"
#. module: sale
#: constraint:stock.move:0
msgid "You can not move products from or to a location of the type view."
msgstr ""
msgstr "Нельзя переместить ТМЦ в/из место хранения типа вид."
#. module: sale
#: field:sale.config.picking_policy,sale_orders:0
msgid "Based on Sales Orders"
msgstr ""
msgstr "Основанный на заказах на продажу"
#. module: sale
#: help:sale.order,amount_total:0
@@ -606,7 +612,7 @@ msgstr "Адрес счета:"
#. module: sale
#: field:sale.order.line,sequence:0
msgid "Line Sequence"
msgstr ""
msgstr "Последовательность"
#. module: sale
#: model:process.transition,note:sale.process_transition_saleorderprocurement0
@@ -697,7 +703,7 @@ msgstr "Дата создания"
#. module: sale
#: model:ir.ui.menu,name:sale.menu_sales_configuration_misc
msgid "Miscellaneous"
msgstr ""
msgstr "Прочее"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_tree3
@@ -741,7 +747,7 @@ msgstr "Кол-во"
#: code:addons/sale/sale.py:1327
#, python-format
msgid "Hour"
msgstr ""
msgstr "Час"
#. module: sale
#: view:sale.order:0
@@ -762,7 +768,7 @@ msgstr "Все предложения"
#. module: sale
#: view:sale.config.picking_policy:0
msgid "Options"
msgstr ""
msgstr "Настройки"
#. module: sale
#: selection:sale.report,month:0
@@ -773,7 +779,7 @@ msgstr "Сентябрь"
#: code:addons/sale/sale.py:632
#, python-format
msgid "You cannot confirm a sale order which has no line."
msgstr ""
msgstr "Нельзя подтвердить заказ на продажу без товара"
#. module: sale
#: code:addons/sale/sale.py:1259
@@ -782,6 +788,8 @@ msgid ""
"You have to select a pricelist or a customer in the sales form !\n"
"Please set one before choosing a product."
msgstr ""
"Перед выбором ТМЦ, \n"
"вы должны выбрать прайс-лист или заказчика в форме ввода продаж !"
#. module: sale
#: view:sale.report:0 field:sale.report,categ_id:0
@@ -851,7 +859,7 @@ msgstr ""
#. module: sale
#: field:sale.order,date_order:0
msgid "Date"
msgstr ""
msgstr "Дата"
#. module: sale
#: view:sale.report:0
@@ -883,7 +891,7 @@ msgstr ""
#: code:addons/sale/sale.py:1272
#, python-format
msgid "No valid pricelist line found ! :"
msgstr ""
msgstr "Нет верной позиции в прайс листе ! :"
#. module: sale
#: view:sale.order:0
@@ -893,7 +901,7 @@ msgstr "Журнал"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Invoice on order after delivery"
msgstr ""
msgstr "Счет на заказ после отгрузки"
#. module: sale
#: help:sale.order,invoice_ids:0
@@ -935,7 +943,7 @@ msgstr "Ссылки"
#. module: sale
#: view:sale.order.line:0
msgid "My Sales Order Lines"
msgstr ""
msgstr "Мои позиции заказов на продажу"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancel0
@@ -949,7 +957,7 @@ msgstr "Отмена"
#. module: sale
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique per Company!"
msgstr ""
msgstr "Ссылка на заказ должны быть уникальной для каждой компании!"
#. module: sale
#: model:process.transition,name:sale.process_transition_invoice0
@@ -967,7 +975,7 @@ msgstr "Всего без налогов"
#. module: sale
#: view:sale.order.line:0
msgid "Order reference"
msgstr ""
msgstr "Ссылка на заказ"
#. module: sale
#: view:sale.open.invoice:0
@@ -1019,7 +1027,7 @@ msgstr "На основании отгруженного или заказанн
#. module: sale
#: selection:sale.order,picking_policy:0
msgid "Deliver all products at once"
msgstr ""
msgstr "Отгрузка всех товаров за раз"
#. module: sale
#: field:sale.order,picking_ids:0
@@ -1056,7 +1064,7 @@ msgstr "Создать заказ на доставку"
#: code:addons/sale/sale.py:1303
#, python-format
msgid "Cannot delete a sales order line which is in state '%s'!"
msgstr ""
msgstr "Нельзя удалить позицию заказа на продажу со статусом '%s'!"
#. module: sale
#: view:sale.order:0
@@ -1076,7 +1084,7 @@ msgstr "Создать комплектовочный лист"
#. module: sale
#: view:sale.report:0
msgid "Ordered date of the sales order"
msgstr ""
msgstr "Дата заказа в заказе на продажу"
#. module: sale
#: view:sale.report:0
@@ -1238,7 +1246,7 @@ msgstr "Налоги"
#. module: sale
#: view:sale.order:0
msgid "Sales Order ready to be invoiced"
msgstr ""
msgstr "Заказ на продажу готов к выставлению счета"
#. module: sale
#: help:sale.order,create_date:0
@@ -1258,7 +1266,7 @@ msgstr "Создать счета"
#. module: sale
#: view:sale.report:0
msgid "Sales order created in current month"
msgstr ""
msgstr "Заказы на продажу, созданные в этом месяце"
#. module: sale
#: report:sale.order:0
@@ -1300,6 +1308,8 @@ msgid ""
"If you change the pricelist of this order (and eventually the currency), "
"prices of existing order lines will not be updated."
msgstr ""
"Даже если вы измените прайс-лист этого заказа (и даже валюту), то цена "
"позиции заказа не обновиться."
#. module: sale
#: model:ir.model,name:sale.model_stock_picking
@@ -1323,12 +1333,12 @@ msgstr "Нельзя отменить заказ на продажу !"
#. module: sale
#: view:sale.order:0
msgid "Qty(UoM)"
msgstr ""
msgstr "Кол-во(Ед.изм)"
#. module: sale
#: view:sale.report:0
msgid "Ordered Year of the sales order"
msgstr ""
msgstr "Год заказа в заказе на продажу"
#. module: sale
#: selection:sale.report,month:0
@@ -1349,7 +1359,7 @@ msgstr "Исключение при доставке"
#: code:addons/sale/sale.py:1156
#, python-format
msgid "Picking Information ! : "
msgstr ""
msgstr "Информация по комплектованию ! : "
#. module: sale
#: field:sale.make.invoice,grouped:0
@@ -1359,13 +1369,13 @@ msgstr "Сгруппировать счета"
#. module: sale
#: field:sale.order,order_policy:0
msgid "Invoice Policy"
msgstr ""
msgstr "Политика выставления счета"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_config_picking_policy
#: view:sale.config.picking_policy:0
msgid "Setup your Invoicing Method"
msgstr ""
msgstr "Настройка способа выставления счета"
#. module: sale
#: model:process.node,note:sale.process_node_invoice0
@@ -1383,6 +1393,9 @@ msgid ""
"This tool will help you to install the right module and configure the system "
"according to the method you use to invoice your customers."
msgstr ""
"Этот инструмент поможет вам установить правильный модуль и настроить систему "
"в соответствии с методом который вы используете для выставления счетов своим "
"клиентам."
#. module: sale
#: model:ir.model,name:sale.model_sale_order_line_make_invoice
@@ -1457,13 +1470,13 @@ msgstr ""
#. module: sale
#: view:sale.order.line:0
msgid "Confirmed sale order lines, not yet delivered"
msgstr ""
msgstr "Не доставленные подтвержденные позиции заказа на продажу"
#. module: sale
#: code:addons/sale/sale.py:473
#, python-format
msgid "Customer Invoices"
msgstr ""
msgstr "Счета заказчику"
#. module: sale
#: model:process.process,name:sale.process_process_salesprocess0
@@ -1544,7 +1557,7 @@ msgstr "Месяц"
#. module: sale
#: model:email.template,subject:sale.email_template_edi_sale
msgid "${object.company_id.name} Order (Ref ${object.name or 'n/a' })"
msgstr ""
msgstr "${object.company_id.name} Заказ (Ссылка ${object.name or 'n/a' })"
#. module: sale
#: view:sale.order.line:0 field:sale.order.line,product_id:0
@@ -1566,7 +1579,7 @@ msgstr "sale.config.picking_policy"
#: view:account.invoice.report:0 view:board.board:0
#: model:ir.actions.act_window,name:sale.action_turnover_by_month
msgid "Monthly Turnover"
msgstr ""
msgstr "Ежемесячный оборот"
#. module: sale
#: field:sale.order,invoice_quantity:0
@@ -1677,12 +1690,12 @@ msgstr ""
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Pay before delivery"
msgstr ""
msgstr "Оплата перед отгрузкой"
#. module: sale
#: view:board.board:0 model:ir.actions.act_window,name:sale.open_board_sales
msgid "Sales Dashboard"
msgstr ""
msgstr "Панель продаж"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_sale_order_make_invoice
@@ -1730,6 +1743,8 @@ msgid ""
"Couldn't find a pricelist line matching this product and quantity.\n"
"You have to change either the product, the quantity or the pricelist."
msgstr ""
"Не удалось найти позицию в прайс-листе для этого товара и этого количества.\n"
"Вы должны изменить товар, количество или прайс-лист."
#. module: sale
#: help:sale.order,picking_ids:0
@@ -1756,7 +1771,7 @@ msgstr "Отменено"
#. module: sale
#: view:sale.order.line:0
msgid "Sales Order Lines related to a Sales Order of mine"
msgstr ""
msgstr "Позиции заказа на продажу относящиеся к моим заказам"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_shop_form
@@ -1799,7 +1814,7 @@ msgstr "Количество (UoS)"
#. module: sale
#: view:sale.order.line:0
msgid "Sale Order Lines that are in 'done' state"
msgstr ""
msgstr "Позиции заказа на продажу в состоянии «Сделано»"
#. module: sale
#: model:process.transition,note:sale.process_transition_packing0
@@ -1823,7 +1838,7 @@ msgstr "Подтвержден"
#. module: sale
#: field:sale.config.picking_policy,order_policy:0
msgid "Main Method Based On"
msgstr ""
msgstr "Основной метод основан на"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_confirm0
@@ -1871,12 +1886,12 @@ msgstr ""
#. module: sale
#: view:sale.order:0
msgid "Print Order"
msgstr ""
msgstr "Печать заказа"
#. module: sale
#: view:sale.report:0
msgid "Sales order created in current year"
msgstr ""
msgstr "Заказы на продажу созданные в этом году"
#. module: sale
#: code:addons/sale/wizard/sale_line_invoice.py:113
@@ -1894,7 +1909,7 @@ msgstr ""
#. module: sale
#: view:sale.order.line:0
msgid "Sale order lines done"
msgstr ""
msgstr "Позиции заказа на продажу сделаны"
#. module: sale
#: field:sale.order.line,th_weight:0
@@ -2003,18 +2018,18 @@ msgstr "Упаковки"
#. module: sale
#: view:sale.order.line:0
msgid "Sale Order Lines ready to be invoiced"
msgstr ""
msgstr "Позиции заказа на продажу готовы к выставлению счета"
#. module: sale
#: view:sale.report:0
msgid "Sales order created in last month"
msgstr ""
msgstr "Заказы на продажу созданные в прошлом месяце"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_email_templates
#: model:ir.ui.menu,name:sale.menu_email_templates
msgid "Email Templates"
msgstr ""
msgstr "Шаблоны писем"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_form
@@ -2072,7 +2087,7 @@ msgstr "Задержка по обязательствам"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Deliver & invoice on demand"
msgstr ""
msgstr "Доставка и счета по требованию"
#. module: sale
#: model:process.node,note:sale.process_node_saleprocurement0
@@ -2101,7 +2116,7 @@ msgstr "Подтвержденный заказ на продажу в счет"
#. module: sale
#: view:sale.order:0
msgid "Sales Order that haven't yet been confirmed"
msgstr ""
msgstr "Заказы на продажу, которые еще не были подтверждены"
#. module: sale
#: code:addons/sale/sale.py:322
@@ -2123,7 +2138,7 @@ msgstr "Закрыть"
#: code:addons/sale/sale.py:1261
#, python-format
msgid "No Pricelist ! : "
msgstr ""
msgstr "Нет прайс листа ! : "
#. module: sale
#: field:sale.order,shipped:0
@@ -2204,7 +2219,7 @@ msgstr "Запрос заказа на продажу"
#: code:addons/sale/sale.py:1255
#, python-format
msgid "Not enough stock ! : "
msgstr ""
msgstr "Не достаточно запасов ! : "
#. module: sale
#: report:sale.order:0 field:sale.order,payment_term:0
+1 -1
View File
@@ -70,7 +70,7 @@ class sale_order(osv.osv):
return result
def _get_order(self, cr, uid, ids, context=None):
return super(self,sale_order)._get_order(cr, uid, ids, context=context)
return super(sale_order, self)._get_order(cr, uid, ids, context=context)
_columns = {
'margin': fields.function(_product_margin, string='Margin', help="It gives profitability by calculating the difference between the Unit Price and Cost Price.", store={
+59 -39
View File
@@ -8,39 +8,39 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2011-04-26 05:57+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2012-09-10 14:15+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:34+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: share
#: field:share.wizard,embed_option_title:0
msgid "Display title"
msgstr ""
msgstr "Название отображения"
#. module: share
#: view:share.wizard:0
msgid "Access granted!"
msgstr ""
msgstr "Access granted!"
#. module: share
#: field:share.wizard,user_type:0
msgid "Sharing method"
msgstr ""
msgstr "Метод совместного доступа"
#. module: share
#: view:share.wizard:0
msgid "Share with these People (one email per line)"
msgstr ""
msgstr "Совместный доступ с этими людьми (один эл.адрес в строке)"
#. module: share
#: field:share.wizard,name:0
msgid "Share Title"
msgstr ""
msgstr "Название совместного доступа"
#. module: share
#: model:ir.module.category,name:share.module_category_share
@@ -50,19 +50,20 @@ msgstr "Совместный доступ"
#. module: share
#: field:share.wizard,share_root_url:0
msgid "Share Access URL"
msgstr ""
msgstr "Адрес(URL) совместного доступа"
#. module: share
#: code:addons/share/wizard/share_wizard.py:782
#, python-format
msgid "You may use your current login (%s) and password to view them.\n"
msgstr ""
"Вы можете использовать ваш текущий логин (%s) и пароль, для их просмотра.\n"
#. module: share
#: code:addons/share/wizard/share_wizard.py:601
#, python-format
msgid "(Modified)"
msgstr ""
msgstr "(Изменено)"
#. module: share
#: code:addons/share/wizard/share_wizard.py:769
@@ -71,6 +72,7 @@ msgid ""
"The documents are not attached, you can view them online directly on my "
"OpenERP server at:"
msgstr ""
"Документы не вложены, их можно просмотреть онлайн на OpenERP сервере:"
#. module: share
#: code:addons/share/wizard/share_wizard.py:579
@@ -88,7 +90,7 @@ msgstr "Адрес совместного доступа"
#: code:addons/share/wizard/share_wizard.py:776
#, python-format
msgid "These are your credentials to access this protected area:\n"
msgstr ""
msgstr "Это ваши учетные данные для доступа с защищенной области:\n"
#. module: share
#: code:addons/share/wizard/share_wizard.py:643
@@ -110,7 +112,7 @@ msgstr "Совместный доступ"
#: code:addons/share/wizard/share_wizard.py:551
#, python-format
msgid "(Duplicated for modified sharing permissions)"
msgstr ""
msgstr "(Дублирован для измененных прав совместного доступа)"
#. module: share
#: help:share.wizard,domain:0
@@ -125,7 +127,7 @@ msgstr "Вы не можете иметь двух одинаковых поль
#. module: share
#: model:ir.model,name:share.model_ir_model_access
msgid "ir.model.access"
msgstr ""
msgstr "ir.model.access"
#. module: share
#: view:share.wizard:0
@@ -141,13 +143,13 @@ msgstr "Пользователь"
#. module: share
#: view:share.wizard:0
msgid "Sharing Options"
msgstr ""
msgstr "Параметры общего доступа"
#. module: share
#: code:addons/share/wizard/share_wizard.py:765
#, python-format
msgid "Hello,"
msgstr ""
msgstr "Здравствуйте,"
#. module: share
#: view:share.wizard:0
@@ -158,7 +160,7 @@ msgstr "Закрыть"
#: code:addons/share/wizard/share_wizard.py:640
#, python-format
msgid "Action and Access Mode are required to create a shared access"
msgstr ""
msgstr "Действие и режим доступа необходимы для создания общего доступа"
#. module: share
#: view:share.wizard:0
@@ -176,6 +178,7 @@ msgid ""
"The documents have been automatically added to your current OpenERP "
"documents.\n"
msgstr ""
"Документы были автоматически добавлены к вашим текущим документам OpenERP .\n"
#. module: share
#: view:share.wizard:0
@@ -206,11 +209,13 @@ msgstr ""
#: help:share.wizard,name:0
msgid "Title for the share (displayed to users as menu and shortcut name)"
msgstr ""
"Название для общего доступа (выводится пользователям как меню и название "
"закладки)"
#. module: share
#: view:share.wizard:0
msgid "Options"
msgstr ""
msgstr "Настройки"
#. module: share
#: view:res.groups:0
@@ -225,6 +230,9 @@ msgid ""
"Sales, HR, etc.)\n"
"It is open source and can be found on http://www.openerp.com."
msgstr ""
"OpenERP является мощным и удобным набором бизнес-приложений (CRM, продажи, "
"кадры и т.д.)\n"
"с открытым исходным кодом. Сайт: www.openerp.com ."
#. module: share
#: field:share.wizard,action_id:0
@@ -234,7 +242,7 @@ msgstr "Действие совместного доступа"
#. module: share
#: view:share.wizard:0
msgid "Optional: include a personal message"
msgstr ""
msgstr "Дополнительно: включить личное сообщение"
#. module: share
#: field:res.users,share:0
@@ -246,11 +254,13 @@ msgstr "Совместный доступ с пользователем"
#, python-format
msgid "Please indicate the emails of the persons to share with, one per line"
msgstr ""
"Пожалуйста, укажите эл.адреса лиц для совместного доступа, один адрес в "
"строке"
#. module: share
#: field:share.wizard,embed_code:0 field:share.wizard.result.line,user_id:0
msgid "unknown"
msgstr ""
msgstr "неизвесно"
#. module: share
#: help:res.groups,share:0
@@ -295,12 +305,14 @@ msgstr ""
#: code:addons/share/wizard/share_wizard.py:767
#, python-format
msgid "I've shared %s with you!"
msgstr ""
msgstr "Я предоставил вам доступ к %s !"
#. module: share
#: help:share.wizard,share_root_url:0
msgid "Main access page for users that are granted shared access"
msgstr ""
"Главная страница доступа для пользователей, которым предоставляется "
"совместный доступ"
#. module: share
#: sql_constraint:res.groups:0
@@ -310,7 +322,7 @@ msgstr "Название группы должно быть уникальным
#. module: share
#: model:res.groups,name:share.group_share_user
msgid "User"
msgstr ""
msgstr "Пользователь"
#. module: share
#: view:res.groups:0
@@ -333,7 +345,7 @@ msgstr ""
#. module: share
#: view:share.wizard:0
msgid "Use this Link"
msgstr ""
msgstr "Используйте эту ссылку"
#. module: share
#: code:addons/share/wizard/share_wizard.py:779
@@ -360,12 +372,13 @@ msgstr "Скопированы права совместного доступа"
#. module: share
#: model:ir.actions.act_window,name:share.action_share_wizard_step1
msgid "Share your documents"
msgstr ""
msgstr "Поделитесь своими документами"
#. module: share
#: view:share.wizard:0
msgid "Or insert the following code where you want to embed your documents"
msgstr ""
"Или вставьте следующий код туда, где вы хотите вставить ваши документы"
#. module: share
#: view:share.wizard:0
@@ -373,6 +386,7 @@ msgid ""
"An email notification with instructions has been sent to the following "
"people:"
msgstr ""
"Уведомление с инструкциями было отправлено по эл.почте следующим людям:"
#. module: share
#: model:ir.model,name:share.model_share_wizard_result_line
@@ -389,23 +403,23 @@ msgstr ""
#. module: share
#: field:share.wizard,view_type:0
msgid "Current View Type"
msgstr ""
msgstr "Тип этого вида"
#. module: share
#: selection:share.wizard,access_mode:0
msgid "Can view"
msgstr ""
msgstr "Можно просматривать"
#. module: share
#: selection:share.wizard,access_mode:0
msgid "Can edit"
msgstr ""
msgstr "Можно редактировать"
#. module: share
#: help:share.wizard,message:0
msgid ""
"An optional personal message, to be included in the email notification."
msgstr ""
msgstr "Персональное сообщение, которое может быть включено в эл.письмо."
#. module: share
#: model:ir.model,name:share.model_res_users
@@ -417,7 +431,7 @@ msgstr "res.users"
#: code:addons/share/wizard/share_wizard.py:635
#, python-format
msgid "Sharing access could not be created"
msgstr ""
msgstr "Общий доступ не был создан"
#. module: share
#: help:res.users,share:0
@@ -439,7 +453,7 @@ msgstr "Мастер совместного доступа"
#: code:addons/share/wizard/share_wizard.py:740
#, python-format
msgid "Shared access created!"
msgstr ""
msgstr "Общий доступ создан!"
#. module: share
#: model:res.groups,comment:share.group_share_user
@@ -448,6 +462,10 @@ msgid ""
"Members of this groups have access to the sharing wizard, which allows them "
"to invite external users to view or edit some of their documents."
msgstr ""
"\n"
"Члены этой группы имеют доступ к мастеру совместного доступа , который "
"позволяет им приглашать внешних пользователей, для просмотра или изменения "
"некоторых своих документов."
#. module: share
#: model:ir.model,name:share.model_res_groups
@@ -464,23 +482,23 @@ msgstr "Пароль"
#. module: share
#: field:share.wizard,new_users:0
msgid "Emails"
msgstr ""
msgstr "Эл.почта"
#. module: share
#: field:share.wizard,embed_option_search:0
msgid "Display search view"
msgstr ""
msgstr "Показать поиск"
#. module: share
#: code:addons/share/wizard/share_wizard.py:197
#, python-format
msgid "No email address configured"
msgstr ""
msgstr "Не настроен адрес эл.почты"
#. module: share
#: field:share.wizard,message:0
msgid "Personal Message"
msgstr ""
msgstr "Личное сообщение"
#. module: share
#: code:addons/share/wizard/share_wizard.py:763
@@ -495,7 +513,7 @@ msgstr ""
#. module: share
#: field:share.wizard.result.line,login:0
msgid "Login"
msgstr ""
msgstr "Имя пользователя"
#. module: share
#: view:res.users:0
@@ -510,7 +528,7 @@ msgstr "Режим доступа"
#. module: share
#: view:share.wizard:0
msgid "Sharing: preparation"
msgstr ""
msgstr "Совместный доступ: подготовка"
#. module: share
#: code:addons/share/wizard/share_wizard.py:198
@@ -519,21 +537,23 @@ msgid ""
"You must configure your email address in the user preferences before using "
"the Share button."
msgstr ""
"Вы должны настроить ваш адрес электронной почты в настройках пользователя, "
"прежде чем использовать кнопку \"Совместный доступ\"."
#. module: share
#: help:share.wizard,access_mode:0
msgid "Access rights to be granted on the shared documents."
msgstr ""
msgstr "Права доступа будут предоставлены на документы совместного доступа"
#. openerp-web
#: /home/odo/repositories/addons/trunk/share/static/src/xml/share.xml:8
msgid "Link or embed..."
msgstr ""
msgstr "Ссылка или встроить ..."
#. openerp-web
#: /home/odo/repositories/addons/trunk/share/static/src/xml/share.xml:9
msgid "Share with..."
msgstr ""
msgstr "Совместный доступ с..."
#, python-format
#~ msgid ""
+31 -30
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:04+0000\n"
"PO-Revision-Date: 2012-09-10 11:41+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:57+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n"
"X-Generator: Launchpad (build 15924)\n"
#. module: stock
#: field:product.product,track_outgoing:0
@@ -698,6 +698,7 @@ msgid ""
"There is no inventory Valuation account defined on the product category: "
"\"%s\" (id: %d)"
msgstr ""
"Не определен счет оценки запасов для категории продукта: \"%s\" (id: %d)"
#. module: stock
#: view:report.stock.move:0
@@ -1059,7 +1060,7 @@ msgstr ""
#. module: stock
#: field:product.category,property_stock_valuation_account_id:0
msgid "Stock Valuation Account"
msgstr ""
msgstr "Счет складских запасов"
#. module: stock
#: code:addons/stock/stock.py:1349
@@ -1529,7 +1530,7 @@ msgstr "Общая информация"
#. module: stock
#: view:report.stock.inventory:0
msgid "Analysis including future moves (similar to virtual stock)"
msgstr ""
msgstr "Анализ включающий будущие перемещения (подобно виртуальным остаткам)"
#. module: stock
#: model:ir.actions.act_window,name:stock.action3 view:stock.tracking:0
@@ -1929,7 +1930,7 @@ msgstr "Оценка запасов"
#. module: stock
#: view:stock.move:0
msgid "Orders planned for today"
msgstr ""
msgstr "Документы запланированные на сегодня"
#. module: stock
#: view:stock.move:0 view:stock.picking:0
@@ -2078,7 +2079,7 @@ msgstr "Логистическая единица: поддон, ящик, уп
#. module: stock
#: view:stock.location:0
msgid "Customer Locations"
msgstr ""
msgstr "Места хранения заказчиков"
#. module: stock
#: view:stock.change.product.qty:0 view:stock.change.standard.price:0
@@ -2289,7 +2290,7 @@ msgstr "Тип поставки"
#. module: stock
#: view:stock.move:0
msgid "Stock moves that are Confirmed, Available or Waiting"
msgstr ""
msgstr "Перемещения которые подтверждены, доступны или в ожидании"
#. module: stock
#: model:ir.actions.act_window,name:stock.act_product_location_open
@@ -2553,7 +2554,7 @@ msgstr ""
#. module: stock
#: model:stock.location,name:stock.location_opening
msgid "opening"
msgstr ""
msgstr "открытие"
#. module: stock
#: model:ir.actions.report.xml,name:stock.report_product_history
@@ -2638,7 +2639,7 @@ msgstr "Ваша компания"
#. module: stock
#: constraint:stock.move:0
msgid "You can not move products from or to a location of the type view."
msgstr ""
msgstr "Нельзя переместить ТМЦ в/из место хранения типа вид."
#. module: stock
#: help:stock.tracking,active:0
@@ -2974,7 +2975,7 @@ msgstr "Продукция"
#. module: stock
#: view:stock.return.picking:0
msgid "Return"
msgstr ""
msgstr "Возврат"
#. module: stock
#: field:stock.return.picking,invoice_state:0
@@ -2984,7 +2985,7 @@ msgstr "Выставление счета"
#. module: stock
#: view:stock.picking:0
msgid "Assigned Internal Moves"
msgstr ""
msgstr "Назначенные внутренние перемещения"
#. module: stock
#: code:addons/stock/stock.py:2379 code:addons/stock/stock.py:2440
@@ -3053,12 +3054,12 @@ msgstr "ТМЦ по категориям"
#. module: stock
#: selection:stock.picking,state:0
msgid "Waiting Another Operation"
msgstr ""
msgstr "Ожидание другой операции"
#. module: stock
#: view:stock.location:0
msgid "Supplier Locations"
msgstr ""
msgstr "Места хранения поставщиков"
#. module: stock
#: field:stock.partial.move.line,wizard_id:0
@@ -3070,7 +3071,7 @@ msgstr "Мастер"
#. module: stock
#: view:report.stock.move:0
msgid "Completed Stock-Moves"
msgstr ""
msgstr "Вычисленные перемещения"
#. module: stock
#: model:ir.actions.act_window,name:stock.action_view_stock_location_product
@@ -3124,7 +3125,7 @@ msgstr "Место хранения источника"
#. module: stock
#: view:stock.move:0
msgid " Waiting"
msgstr ""
msgstr " Ожидание"
#. module: stock
#: view:product.template:0
@@ -3134,7 +3135,7 @@ msgstr "Бухгалтерские проводки"
#. module: stock
#: model:res.groups,name:stock.group_stock_manager
msgid "Manager"
msgstr ""
msgstr "Менеджер"
#. module: stock
#: report:stock.picking.list:0
@@ -3242,12 +3243,12 @@ msgstr "Причина"
#. module: stock
#: model:product.template,name:stock.product_icecream_product_template
msgid "Ice Cream"
msgstr ""
msgstr "Мороженое"
#. module: stock
#: model:ir.model,name:stock.model_stock_partial_picking
msgid "Partial Picking Processing Wizard"
msgstr ""
msgstr "Запуск мастера частичного комплектования"
#. module: stock
#: model:ir.actions.act_window,help:stock.action_production_lot_form
@@ -3527,7 +3528,7 @@ msgstr "Создать счет"
#. module: stock
#: view:stock.picking:0
msgid "Confirmed Internal Moves"
msgstr ""
msgstr "Подтвержденные внутренние перемещения"
#. module: stock
#: model:ir.ui.menu,name:stock.menu_stock_configuration
@@ -3584,7 +3585,7 @@ msgstr "Клиенты"
#. module: stock
#: selection:stock.move,state:0 selection:stock.picking,state:0
msgid "Waiting Availability"
msgstr ""
msgstr "Ожидание поступления"
#. module: stock
#: code:addons/stock/stock.py:1347
@@ -3600,7 +3601,7 @@ msgstr "Позиции инвентаризации склада"
#. module: stock
#: view:stock.move:0
msgid "Waiting "
msgstr ""
msgstr "Ожидание "
#. module: stock
#: code:addons/stock/product.py:427
@@ -3646,7 +3647,7 @@ msgstr "Декабрь"
#. module: stock
#: view:stock.production.lot:0
msgid "Available Product Lots"
msgstr ""
msgstr "Партии доступных ТМЦ"
#. module: stock
#: model:ir.actions.act_window,help:stock.action_move_form2
@@ -3789,7 +3790,7 @@ msgstr "Обнулить"
#. module: stock
#: model:res.groups,name:stock.group_stock_user
msgid "User"
msgstr ""
msgstr "Пользователь"
#. module: stock
#: code:addons/stock/wizard/stock_invoice_onshipping.py:98
@@ -4001,7 +4002,7 @@ msgstr ""
#. module: stock
#: view:report.stock.move:0
msgid "Future Stock-Moves"
msgstr ""
msgstr "Будущие перемещения"
#. module: stock
#: model:ir.model,name:stock.model_stock_move_split
@@ -4012,7 +4013,7 @@ msgstr "Разбиение в партиях изделий"
#: code:addons/stock/wizard/stock_move.py:213
#, python-format
msgid "Processing Error"
msgstr ""
msgstr "Ошибка обработки"
#. module: stock
#: view:report.stock.inventory:0
@@ -4085,12 +4086,12 @@ msgstr "Идентификация партии изделий"
#. module: stock
#: model:stock.location,name:stock.location_refrigerator_small
msgid "Small Refrigerator"
msgstr ""
msgstr "Маленький холодильник"
#. module: stock
#: model:stock.location,name:stock.location_convenience_shop
msgid "Convenient Store"
msgstr ""
msgstr "Удобный магазин"
#. module: stock
#: field:stock.location,scrap_location:0 view:stock.move.scrap:0
@@ -4140,7 +4141,7 @@ msgstr ""
#. module: stock
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr ""
msgstr "Ошибка! Вы не можете создавать рекурсивные ссылки на участников."
#. module: stock
#: code:addons/stock/wizard/stock_partial_picking.py:159
@@ -4161,7 +4162,7 @@ msgstr ""
#. module: stock
#: constraint:product.category:0
msgid "Error ! You cannot create recursive categories."
msgstr ""
msgstr "Ошибка ! Нельзя создавать рекурсивные категории."
#. module: stock
#: help:stock.move,move_dest_id:0
@@ -44,7 +44,7 @@
<field name="prodlot_id" domain="[('product_id', '=', product_id)]" groups="stock.group_production_lot"/>
<field name="update_cost" invisible="1"/>
<field name="cost" attrs="{'invisible': [('update_cost','=', False)]}"/>
<field name="currency" attrs="{'invisible': [('update_cost','=', False)]}"/>
<field name="currency" attrs="{'invisible': [('update_cost','=', False)]}" groups="base.group_multi_currency"/>
</tree>
</field>
</record>
@@ -63,7 +63,7 @@
<field name="prodlot_id" domain="[('product_id', '=', product_id)]"/>
<field name="update_cost" invisible="1"/>
<field name="cost" attrs="{'invisible': [('update_cost','=', False)]}"/>
<field name="currency" attrs="{'invisible': [('update_cost','=', False)]}"/>
<field name="currency" attrs="{'invisible': [('update_cost','=', False)]}" groups="base.group_multi_currency"/>
</group>
</form>
</field>
@@ -71,7 +71,7 @@
<field name="prodlot_id" domain="[('product_id', '=', product_id)]" attrs="{'required':[('tracking','=',True)]}"/>
<field name="update_cost" invisible="1"/>
<field name="cost" attrs="{'invisible': [('update_cost','=', False)]}"/>
<field name="currency" attrs="{'invisible': [('update_cost','=', False)]}"/>
<field name="currency" attrs="{'invisible': [('update_cost','=', False)]}" groups="base.group_multi_currency"/>
</group>
</form>
</field>
+2 -2
View File
@@ -56,10 +56,10 @@ user name and password for the invitation of the survey.
'test/survey_question_type.yml',
'test/survey_report.yml',
],
'css': ['static/src/css/survey.css'],
'installable': True,
'auto_install': False,
'certificate' : '001131639736864143245',
'images': ['images/survey_answers.jpeg','images/survey_pages.jpeg','images/surveys.jpeg'],
'images': ['images/survey_answers.jpeg','images/survey_pages.jpeg','images/surveys.jpeg'],
'css': ['static/src/css/survey.css','static/css/survey.css'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 55 KiB

+7 -10
View File
@@ -1,14 +1,11 @@
.oe_survey_responsible{
height: auto;
width: 200px;
font-size: 14px;
.openerp .oe_survey_title {
font-weight: bold;
font-size: 19px;
margin: 8px 0px 8px 0px;
color: #5B5B5B;
}
.oe_survey_start_date{
height: auto;
.openerp .oe_kanban_survey {
width: 200px;
font-size: 14px;
}
.oe_survey_rate{
font-size: 14px;
}
+20 -2
View File
@@ -145,15 +145,33 @@ class survey(osv.osv):
return report
def fill_survey(self, cr, uid, ids, context=None):
sur_obj = self.read(cr, uid, ids,['title'], context=context)
for sur in sur_obj:
name = sur['title']
context.update({'active':False,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
'res_model': 'survey.question.wiz',
'type': 'ir.actions.act_window',
'target': 'new',
'context': {'survey_id': ids[0]}
'name': name,
'context': context
}
def test_survey(self, cr, uid, ids, context=None):
sur_obj = self.read(cr, uid, ids,['title'], context=context)
for sur in sur_obj:
name = sur['title']
context.update({'active':True,'survey_id': ids[0]})
return {
'view_type': 'form',
'view_mode': 'form',
'res_model': 'survey.question.wiz',
'type': 'ir.actions.act_window',
'target': 'new',
'name': name,
'context': context
}
survey()
class survey_history(osv.osv):
+2
View File
@@ -13,6 +13,7 @@
<field name="max_response_limit">20</field>
<field name="type" ref="survey_type2"/>
<field name="state">open</field>
<field name="color">5</field>
<field name="tot_comp_survey">1</field>
<field name="tot_start_survey">1</field>
<field name="response_user">5</field>
@@ -1402,6 +1403,7 @@
<record id="survey_0" model="survey">
<field eval="&quot;&quot;&quot;OpenERP Feedback&quot;&quot;&quot;" name="title"/>
<field name="responsible_id" ref="base.user_demo"/>
<field name="color">4</field>
<field name="max_response_limit">20</field>
<field name="type" ref="survey_type2"/>
<field name="state">open</field>
+24 -30
View File
@@ -26,8 +26,12 @@
</header>
<sheet>
<div class="oe_button_box oe_right">
<button name="%(action_view_survey_question_message)d" states="open,draft,close,cancel" string="Test Survey" type="action" icon="gtk-new" context="{'active':True,'survey_id': active_id}" attrs="{'invisible':[('id','=',0)]}"/>
<button name="%(action_view_survey_question_message)d" states="open,draft,close,cancel" string="Answer Survey" type="action" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
<button name="test_survey" states="open,draft,close,cancel" string="Test Survey" type="object" icon="gtk-new" context="{'survey_id': active_id}" attrs="{'invisible':[('id','=',0)]}"/>
<button name="fill_survey" states="open" string="Answer Survey" type="object" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
<button name="action_print_survey" states="open,draft,close,cancel" string="Print Answer" type="object"/>
<button name="%(action_view_survey_question_message)d" states="open,draft,close,cancel"
string="Edit Survey" type="action" context="{'active':True,'edit' : True,'survey_id': active_id}"/>
</div>
<div class="oe_title">
<label for="title" class="oe_edit_only"/>
@@ -49,8 +53,6 @@
</group>
<notebook>
<page string="Survey Details">
<field name="note" colspan="4" placeholder="Survey description..."/>
<label for="page_ids"/>
<field name="page_ids" colspan="4" mode="tree">
<form string="Survey Page" version="7.0">
<sheet>
@@ -58,9 +60,7 @@
<h1>
<field name="title"/>
</h1>
<group>
<field name="note" placeholder="Description on the survey page..." nolabel="1"/>
</group>
<field name="note" placeholder="Description on the survey page..."/>
<newline/>
<group>
<label for="question_ids"/>
@@ -210,6 +210,7 @@
</sheet>
</form>
</field>
<field name="note" placeholder="Survey description..."/>
</page>
<page string="Invited User">
<field name="invited_user_ids" readonly="1"/>
@@ -254,13 +255,11 @@
<field name="tot_start_survey" string="Started"/>
<field name="tot_comp_survey" string="Completed"/>
<field name="state"/>
<button name="%(action_view_survey_question_message)d" states="open,draft,close,cancel"
string="Test Survey" type="action" icon="gtk-new"
context="{'active':True,'survey_id': active_id}"/>
<button name="%(action_view_survey_question_message)d" states="open,draft,close,cancel"
string="Answer Survey" type="action" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
<button name="%(action_view_survey_question_message)d" states="open,draft,close,cancel"
string="Edit Survey" type="action" icon="gtk-edit" context="{'active':True,'edit' : True,'survey_id': active_id}"/>
<button name="test_survey" states="open,draft,close,cancel"
string="Test Survey" type="object" icon="gtk-new"
context="{'survey_id': active_id}"/>
<button name="fill_survey" states="open"
string="Answer Survey" type="object" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
<button name="action_print_survey" states="open,draft,close,cancel"
string="Print Answer" type="object" icon="gtk-print"/>
</tree>
@@ -295,10 +294,13 @@
<kanban>
<field name="title"/>
<field name="date_open"/>
<field name="tot_comp_survey"/>
<field name="max_response_limit"/>
<field name="responsible_id"/>
<field name="color"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card">
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_survey">
<div class="oe_dropdown_toggle oe_dropdown_kanban">
<span class="oe_e">i</span>
<ul class="oe_dropdown_menu">
@@ -309,21 +311,13 @@
</div>
<div class="oe_kanban_content">
<h3 class="oe_kanban_ellipsis"><t t-esc="record.title.raw_value.toString()"></t></h3>
<div class="oe_survey_responsible">
<t t-if="record.responsible_id.raw_value">By: <field name="responsible_id"/></t>
</div><br/>
<div class="oe_survey_start_date">
<t t-if="record.date_open.raw_value">
Opened at
<t t-esc="record.date_open.raw_value.getDate()"/>
<t t-esc="record.date_open.raw_value.toString('MMM')"/>,
<t t-esc="record.date_open.raw_value.getFullYear()"/>
</t>
</div><br/>
<div class="oe_survey_rate">
Rate:
<a name="fill_survey" type="object">Fill</a>
</div>
<div>
Answers: <field name="tot_comp_survey"/>
<t t-if="record.max_response_limit.raw_value > 0"> / <field name="max_response_limit"/></t>
</div>
<br/>
<a name="fill_survey" type="object">Answer Survey</a>
<img t-att-src="kanban_image('res.users', 'image_small', record.responsible_id.raw_value)" t-att-title="record.responsible_id.value" width="24" height="24" class="oe_kanban_avatar oe_right"/>
</div>
</div>
</t>
+54 -54
View File
@@ -146,8 +146,18 @@ class survey_question_wiz(osv.osv_memory):
pre_button = True
if flag:
pag_rec = page_obj.browse(cr, uid, p_id, context=context)
xml_form = etree.Element('form', {'string': tools.ustr(pag_rec.title)})
xml_group = etree.SubElement(xml_form, 'group', {'col': '1', 'colspan': '4'})
xml_form = etree.Element('form', {'string': tools.ustr(pag_rec.title or sur_rec.title)})
if context.has_key('active') and context.get('active',False) and context.has_key('edit'):
context.update({'page_id' : tools.ustr(p_id),'page_number' : sur_name_rec.page_no , 'transfer' : sur_name_read.transfer})
xml_group3 = etree.SubElement(xml_form, 'group', {'col': '4', 'colspan': '4'})
etree.SubElement(xml_group3, 'button', {'string' :'Add Page','icon': "gtk-new", 'type' :'object','name':"action_new_page", 'context' : tools.ustr(context)})
etree.SubElement(xml_group3, 'button', {'string' :'Edit Page','icon': "gtk-edit", 'type' :'object','name':"action_edit_page", 'context' : tools.ustr(context)})
etree.SubElement(xml_group3, 'button', {'string' :'Delete Page','icon': "gtk-delete", 'type' :'object','name':"action_delete_page", 'context' : tools.ustr(context)})
etree.SubElement(xml_group3, 'button', {'string' :'Add Question','icon': "gtk-new", 'type' :'object','name':"action_new_question", 'context' : tools.ustr(context)})
# FP Note
xml_group = xml_form
if context.has_key('response_id') and context.get('response_id', False) \
and int(context.get('response_id',0)[0]) > 0:
# TODO: l10n, cleanup this code to make it readable. Or template?
@@ -162,12 +172,11 @@ class survey_question_wiz(osv.osv_memory):
if wiz_id:
fields["wizardid_" + str(wiz_id)] = {'type':'char', 'size' : 255, 'string':"", 'views':{}}
etree.SubElement(xml_form, 'field', {'invisible':'1','name': "wizardid_" + str(wiz_id),'default':str(lambda *a: 0)})
etree.SubElement(xml_form, 'field', {'invisible':'1','name': "wizardid_" + str(wiz_id),'default':str(lambda *a: 0),'modifiers':'{"invisible":true}'})
if pag_rec.note:
xml_group = etree.SubElement(xml_form, 'group', {'col': '1', 'colspan': '4'})
for que_test in pag_rec.note.split('\n'):
etree.SubElement(xml_group, 'label', {'string': to_xml(tools.ustr(que_test)), 'align':"0.0"})
etree.SubElement(xml_form, 'label', {'string': to_xml(tools.ustr(que_test)), 'align':"0.0"})
que_ids = pag_rec.question_ids
qu_no = 0
@@ -180,19 +189,16 @@ class survey_question_wiz(osv.osv_memory):
star = '*'
else:
star = ''
xml_group = etree.SubElement(xml_form, 'group', {'col': '2', 'colspan': '4'})
if context.has_key('active') and context.get('active',False) and \
context.has_key('edit'):
xml_group = etree.SubElement(xml_form, 'group', {'col': '1', 'colspan': '2'})
etree.SubElement(xml_group, 'separator', {'string': star+to_xml(separator_string), 'colspan': '3'})
etree.SubElement(xml_form, 'separator', {'string': star+to_xml(separator_string)})
xml_group1 = etree.SubElement(xml_form, 'group', {'col': '2', 'colspan': '2'})
context.update({'question_id' : tools.ustr(que.id),'page_number': sur_name_rec.page_no , 'transfer' : sur_name_read.transfer, 'page_id' : p_id})
etree.SubElement(xml_group1, 'button', {'string':'','icon': "gtk-edit", 'type' :'object', 'name':"action_edit_question", 'context' : tools.ustr(context)})
etree.SubElement(xml_group1, 'button', {'string':'','icon': "gtk-delete", 'type' :'object','name':"action_delete_question", 'context' : tools.ustr(context)})
else:
xml_group = etree.SubElement(xml_form, 'group', {'col': '1', 'colspan': '4'})
etree.SubElement(xml_group, 'separator', {'string': star+to_xml(separator_string), 'colspan': '4'})
etree.SubElement(xml_form, 'separator', {'string': star+to_xml(separator_string)})
ans_ids = que_rec.answer_choice_ids
xml_group = etree.SubElement(xml_form, 'group', {'col': '1', 'colspan': '4'})
@@ -352,36 +358,29 @@ class survey_question_wiz(osv.osv_memory):
etree.SubElement(xml_group, 'field', {'readonly' :str(readonly), 'name': tools.ustr(que.id) + "_other", 'nolabel':"1" ,'colspan':"4"})
fields[tools.ustr(que.id) + "_other"] = {'type': 'text', 'string': '', 'views':{}}
etree.SubElement(xml_form, 'separator', {'colspan': '4'})
xml_group = etree.SubElement(xml_form, 'group', {'col': '6', 'colspan': '4'})
etree.SubElement(xml_group, 'field', {'name': 'progress_bar_' + tools.ustr(page_number) , 'widget':'progressbar'})
fields['progress_bar_' + tools.ustr(page_number)] = {'type':'float', 'string':"Progress", 'views':{}}
etree.SubElement(xml_group, 'label', {'string': tools.ustr(page_number+ 1) + "/" + tools.ustr(total_pages)})
etree.SubElement(xml_group, 'button', {'icon': "gtk-cancel", 'special': "cancel",'string':"Cancel"})
xml_footer = etree.SubElement(xml_form, 'footer', {'col': '8', 'colspan': '1', 'width':"100%"})
if pre_button:
etree.SubElement(xml_group, 'button', {'colspan':"1",'icon':"gtk-go-back",'name':"action_previous",'string':"Previous",'type':"object"})
etree.SubElement(xml_footer, 'label', {'string': ""})
etree.SubElement(xml_footer, 'button', {'name':"action_previous",'string':"Previous",'type':"object"})
but_string = "Next"
if int(page_number) + 1 == total_pages:
but_string = "Done"
if context.has_key('active') and context.get('active',False) and int(page_number) + 1 == total_pages and context.has_key('response_id') and context.has_key('response_no') and context.get('response_no',0) + 1 == len(context.get('response_id',0)):
etree.SubElement(xml_group, 'button', {'icon': "gtk-go-forward", 'special' : 'cancel','string': tools.ustr("Done") ,'context' : tools.ustr(context)})
etree.SubElement(xml_footer, 'label', {'string': ""})
etree.SubElement(xml_footer, 'button', {'special' : 'cancel','string': tools.ustr("Done") ,'context' : tools.ustr(context), 'class':"oe_highlight"})
elif context.has_key('active') and context.get('active', False) and int(page_number) + 1 == total_pages and context.has_key('response_id'):
etree.SubElement(xml_group, 'button', {'icon': "gtk-go-forward", 'name':"action_forward_next",'string': tools.ustr("Next Answer") ,'type':"object",'context' : tools.ustr(context)})
etree.SubElement(xml_footer, 'label', {'string': ""})
etree.SubElement(xml_footer, 'button', {'name':"action_forward_next",'string': tools.ustr("Next Answer") ,'type':"object",'context' : tools.ustr(context), 'class':"oe_highlight"})
elif context.has_key('active') and context.get('active',False) and int(page_number) + 1 == total_pages:
etree.SubElement(xml_group, 'button', {'icon': "gtk-go-forward", 'special': "cancel", 'string' : 'Done', 'context' : tools.ustr(context)})
etree.SubElement(xml_footer, 'label', {'string': ""})
etree.SubElement(xml_footer, 'button', {'special': "cancel", 'string' : 'Done', 'context' : tools.ustr(context), 'class':"oe_highlight"})
else:
etree.SubElement(xml_group, 'button', {'icon': "gtk-go-forward", 'name':"action_next",'string': tools.ustr(but_string) ,'type':"object",'context' : tools.ustr(context)})
if context.has_key('active') and context.get('active',False) and context.has_key('edit'):
etree.SubElement(xml_form, 'separator', {'string' : '','colspan': '4'})
context.update({'page_id' : tools.ustr(p_id),'page_number' : sur_name_rec.page_no , 'transfer' : sur_name_read.transfer})
xml_group3 = etree.SubElement(xml_form, 'group', {'col': '4', 'colspan': '4'})
etree.SubElement(xml_group3, 'button', {'string' :'Add Page','icon': "gtk-new", 'type' :'object','name':"action_new_page", 'context' : tools.ustr(context)})
etree.SubElement(xml_group3, 'button', {'string' :'Edit Page','icon': "gtk-edit", 'type' :'object','name':"action_edit_page", 'context' : tools.ustr(context)})
etree.SubElement(xml_group3, 'button', {'string' :'Delete Page','icon': "gtk-delete", 'type' :'object','name':"action_delete_page", 'context' : tools.ustr(context)})
etree.SubElement(xml_group3, 'button', {'string' :'Add Question','icon': "gtk-new", 'type' :'object','name':"action_new_question", 'context' : tools.ustr(context)})
etree.SubElement(xml_footer, 'label', {'string': ""})
etree.SubElement(xml_footer, 'button', {'name':"action_next",'string': tools.ustr(but_string) ,'type':"object",'context' : tools.ustr(context), 'class':"oe_highlight"})
etree.SubElement(xml_footer, 'label', {'string': "or"})
etree.SubElement(xml_footer, 'button', {'special': "cancel",'string':"Exit",'class':"oe_link"})
etree.SubElement(xml_footer, 'label', {'string': tools.ustr(page_number+ 1) + "/" + tools.ustr(total_pages), 'class':"oe_survey_title_page oe_right"})
root = xml_form.getroottree()
result['arch'] = etree.tostring(root)
@@ -393,27 +392,28 @@ class survey_question_wiz(osv.osv_memory):
# mark the survey request as done; call 'survey_req_done' on its actual model
survey_req_obj = self.pool.get(context.get('active_model'))
if survey_req_obj and hasattr(survey_req_obj, 'survey_req_done'):
if survey_req_obj and hasattr(survey_req_obj, 'survey_req_done'):
survey_req_obj.survey_req_done(cr, uid, context.get('active_ids', []), context=context)
if sur_rec.send_response:
survey_data = survey_obj.browse(cr, uid, survey_id)
response_id = surv_name_wiz.read(cr, uid, context.get('sur_name_id',False))['response']
context.update({'response_id':response_id})
report = self.create_report(cr, uid, [survey_id], 'report.survey.browse.response', survey_data.title,context)
attachments = {}
file = open(addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf")
file_data = ""
while 1:
line = file.readline()
file_data += line
if not line:
break
pdf_filename = addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf"
if os.path.exists(pdf_filename):
file = open(pdf_filename)
file_data = ""
while 1:
line = file.readline()
file_data += line
if not line:
break
attachments[survey_data.title + ".pdf"] = file_data
file.close()
os.remove(addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf")
attachments[survey_data.title + ".pdf"] = file_data
file.close()
os.remove(addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf")
context.update({'response_id':response_id})
user_email = user_obj.browse(cr, uid, uid, context).email
resp_email = survey_data.responsible_id and survey_data.responsible_id.email or False
@@ -433,10 +433,12 @@ class survey_question_wiz(osv.osv_memory):
self.pool.get('mail.mail').create(cr, uid, vals, context=context)
xml_form = etree.Element('form', {'string': _('Complete Survey Answer')})
xml_footer = etree.SubElement(xml_form, 'footer', {'col': '6', 'colspan': '4' ,'class': 'oe_survey_title_height'})
etree.SubElement(xml_form, 'separator', {'string': 'Complete Survey', 'colspan': "4"})
etree.SubElement(xml_form, 'label', {'string': 'Thanks for your Answer'})
etree.SubElement(xml_form, 'newline')
etree.SubElement(xml_form, 'button', {'icon': "gtk-go-forward", 'special':"cancel",'string':"OK",'colspan':"2"})
etree.SubElement(xml_footer, 'button', {'special':"cancel",'string':"OK",'colspan':"2",'class':'oe_highlight'})
root = xml_form.getroottree()
result['arch'] = etree.tostring(root)
result['fields'] = {}
@@ -445,7 +447,7 @@ class survey_question_wiz(osv.osv_memory):
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False, context=None):
"""
If any user give answer of survey then last create report of this answer and if 'Email Notification on Answer' set True in survey then send mail on responsible person of this survey and attach survey answer report in pdf format.
If any user give answer of survey then last create report of this answer and if 'E-mail Notification on Answer' set True in survey then send mail on responsible person of this survey and attach survey answer report in pdf format.
"""
if not report_name or not res_ids:
return (False, Exception('Report name and Resources ids are required !!!'))
@@ -473,7 +475,6 @@ class survey_question_wiz(osv.osv_memory):
except Exception,e:
return (False, str(e))
return (True, ret_file_name)
def default_get(self, cr, uid, fields_list, context=None):
@@ -490,7 +491,6 @@ class survey_question_wiz(osv.osv_memory):
value[field] = tot_per
response_obj = self.pool.get('survey.response')
surv_name_wiz = self.pool.get('survey.name.wiz')
if context.has_key('response_id') and context.get('response_id') and int(context['response_id'][0]) > 0:
data = super(survey_question_wiz, self).default_get(cr, uid, fields_list, context)
response_ans = response_obj.browse(cr, uid, context['response_id'][context['response_no']])
@@ -537,11 +537,11 @@ class survey_question_wiz(osv.osv_memory):
value[field] = ans.answer
else:
if not context.has_key('sur_name_id'):
return value
if context.has_key('active') and context.get('active',False):
return value
sur_name_read = surv_name_wiz.read(cr, uid, context.get('sur_name_id',False))
ans_list = []
@@ -549,7 +549,6 @@ class survey_question_wiz(osv.osv_memory):
for field in fields_list:
if field in list(val):
value[field] = val[field]
return value
def create(self, cr, uid, vals, context=None):
@@ -603,8 +602,9 @@ class survey_question_wiz(osv.osv_memory):
self.pool.get(context.get('object',False)).write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id})
self.pool.get(context.get('object',False)).survey_req_done(cr, uid, [int(context.get('cur_id'))], context)
else:
self.pool.get(context.get('object',False)).write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id})
if sur_name_read['store_ans'] and type(sur_name_read['store_ans']) == dict:
self.pool.get(context.get('object',False)).write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id})
if sur_name_read['store_ans'] and type(safe_eval(sur_name_read['store_ans'])) == dict:
sur_name_read['store_ans'] = safe_eval(sur_name_read['store_ans'])
for key,val in sur_name_read['store_ans'].items():
for field in vals:
if field.split('_')[0] == val['question_id']:
+2 -3
View File
@@ -5,8 +5,8 @@
<!--
Survey Question Wizard
-->
<record id="view_survey_question_message" model="ir.ui.view">
<field name="name">Answer Survey</field>
<record id="view_survey_question_message" model="ir.ui.view">
<field name="name">Survey Answer</field>
<field name="model">survey.question.wiz</field>
<field name="arch" type="xml">
<form string="Your Messages" version="7.0">
@@ -26,7 +26,6 @@
</record>
<record id="action_view_survey_question_message" model="ir.actions.act_window">
<field name="name">Answer Survey</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">survey.question.wiz</field>
<field name="view_type">form</field>