[MERGE] latest trunk

bzr revid: abo@openerp.com-20120605171231-hb64kk1garpo51bc
This commit is contained in:
Antonin Bourguignon 2012-06-05 19:12:31 +02:00
commit c837594c4c
134 changed files with 6750 additions and 1593 deletions

View File

@ -127,6 +127,7 @@ class account_bank_statement(osv.osv):
_order = "date desc, id desc"
_name = "account.bank.statement"
_description = "Bank Statement"
_inherit = ['mail.thread']
_columns = {
'name': fields.char('Name', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then /, its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'), # readonly for account_cash_statement
'date': fields.date('Date', required=True, states={'confirm': [('readonly', True)]}, select=True),
@ -364,7 +365,7 @@ class account_bank_statement(osv.osv):
'name': st_number,
'balance_end_real': st.balance_end
}, context=context)
self.log(cr, uid, st.id, _('Statement %s is confirmed, journal items are created.') % (st_number,))
self.message_append_note(cr, uid, [st.id], body=_('Statement %s is confirmed, journal items are created.') % (st_number,), context=context)
return self.write(cr, uid, ids, {'state':'confirm'}, context=context)
def button_cancel(self, cr, uid, ids, context=None):

View File

@ -982,7 +982,6 @@ class account_invoice(osv.osv):
def invoice_validate(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'open'}, context=context)
self.invoice_validate_send_note(cr, uid, ids, context=context)
return True
def line_get_convert(self, cr, uid, x, part, date, context=None):
@ -1046,7 +1045,7 @@ class account_invoice(osv.osv):
if obj_inv.type in ('out_invoice', 'out_refund'):
ctx = self.get_log_context(cr, uid, context=ctx)
message = _("Invoice '%s' is validated.") % name
self.log(cr, uid, inv_id, message, context=ctx)
self.message_append_note(cr, uid, [inv_id], body=message, context=context)
return True
def action_cancel(self, cr, uid, ids, *args):
@ -1276,7 +1275,7 @@ class account_invoice(osv.osv):
# TODO: use currency's formatting function
msg = _("Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)") % \
(name, pay_amount, code, invoice.amount_total, code, total, code)
self.log(cr, uid, inv_id, msg)
self.message_append_note(cr, uid, [inv_id], body=msg, context=context)
self.pool.get('account.move.line').reconcile_partial(cr, uid, line_ids, 'manual', context)
# Update the stored value (fields.function), so we write to trigger recompute
@ -1300,10 +1299,6 @@ class account_invoice(osv.osv):
for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id],body=_("%s <b>created</b>.") % (self._get_document_type(obj.type)), context=context)
def invoice_validate_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>validated</b>.") % (self._get_document_type(obj.type)), context=context)
def confirm_paid_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>paid</b>.") % (self._get_document_type(obj.type)), context=context)

View File

@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--
Invoices
-->
<!-- Invoices -->
<record id="view_invoice_line_calendar" model="ir.ui.view">
<field name="name">account.invoice.calendar</field>
<field name="model">account.invoice</field>
@ -132,8 +131,6 @@
<field name="amount_untaxed" sum="Untaxed Amount"/>
<field name="amount_total" sum="Total Amount"/>
<field name="state"/>
<button name="invoice_open" states="draft,proforma2" string="Approve" icon="terp-camera_test"/>
</tree>
</field>
</record>
@ -145,21 +142,18 @@
<field name="priority">2</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="invoice_open" states="draft,proforma2" string="Validate"/>
<button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid'/>
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/>
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</header>
<sheet string="Supplier Invoice" layout="auto">
<group col="8" colspan="4" class="oe_form_header">
<field name="journal_id" on_change="onchange_journal_id(journal_id)" widget="selection"/>
<field name="number" readonly="1"/>
<field name="number" readonly="1" placeholder="PO0025"/>
<field name="type" invisible="1"/>
<field name="currency_id" width="50"/>
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change" attrs="{'invisible':[('state','!=','draft')]}" groups="account.group_account_user"/>
@ -177,7 +171,7 @@
<page string="Invoice">
<field domain="[('company_id', '=', company_id), ('type', '=', 'payable')]" name="account_id" groups="account.group_account_user"/>
<field name="reference_type" nolabel="1" size="0"/>
<field name="reference" nolabel="1"/>
<field name="reference" nolabel="1" placeholder="Payment Reference"/>
<field name="date_due"/>
<field colspan="4" context="{'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False, 'type': type}" name="invoice_line" nolabel="1">
<tree string="Invoice lines">
@ -225,7 +219,7 @@
<field name="payment_term" widget="selection"/>
<field name="name"/>
<newline/>
<field name="origin"/>
<field name="origin" placeholder="PO0025"/>
<field name="user_id"/>
<field name="move_id" groups="account.group_account_user"/>
<separator colspan="4" string="Additional Information"/>
@ -249,7 +243,7 @@
</notebook>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
@ -261,7 +255,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="action_invoice_sent" type="object" string="Send by Email" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/>
<button name="invoice_print" string="Print Invoice" type="object" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/>
<button name="invoice_open" states="draft,proforma2" string="Validate"/>
@ -271,11 +265,8 @@
<button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object"/>
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','&lt;&gt;','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
<!--button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/-->
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
</header>
<sheet string="Invoice" layout="auto">
<group colspan="4" col="8" class="oe_form_header">
<field name="journal_id" groups="base.group_user" on_change="onchange_journal_id(journal_id, context)" widget="selection"/>
@ -292,7 +283,7 @@
<field name="payment_term" widget="selection"/>
<newline/>
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]" name="account_id" groups="account.group_account_user"/>
<field name="name"/>
<field name="name" placeholder="Project XYZ"/>
<field name="sent"/>
</group>
<notebook colspan="4">
@ -331,7 +322,7 @@
<field name="user_id" groups="base.group_user"/>
<newline/>
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"/>
<field name="origin" groups="base.group_user"/>
<field name="origin" placeholder="SO0032" groups="base.group_user"/>
<field name="move_id" groups="account.group_account_user"/>
<separator colspan="4" string="Additional Information"/>
<field colspan="4" name="comment" nolabel="1"/>
@ -354,7 +345,7 @@
</notebook>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>

View File

@ -12,14 +12,11 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="create_period" states="draft" string="Create Monthly Periods" type="object"/>
<button name="create_period3" states="draft" string="Create 3 Months Periods" type="object"/>
<div class="oe_right">
<field name="state" select="1" widget="statusbar" nolabel="1" />
</div>
<div class="oe_clear"/>
</div>
<field name="state" select="1" widget="statusbar" nolabel="1" />
</header>
<sheet string="Fiscalyear" layout="auto">
<group class="oe_form_header">
<field name="name"/>
@ -97,13 +94,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="action_draft" states="done" string="Set to Draft" type="object" groups="account.group_account_manager"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1"/>
</header>
<sheet string="Period" layout="auto">
<group class="oe_form_header">
<field name="name"/>
@ -131,8 +125,6 @@
<field name="special"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="state"/>
<button name="action_draft" states="done" string="Set to Draft" type="object" icon="terp-document-new" groups="account.group_account_manager"/>
<button name="%(action_account_period_close)d" states="draft" string="Close Period" type="action" icon="terp-camera_test"/>
</tree>
</field>
</record>
@ -569,8 +561,6 @@
<field name="balance_end_real"/>
<field name="balance_end" invisible="1"/>
<field name="state"/>
<button type="object" string="Cancel" name="button_cancel" states="confirm" icon="gtk-cancel"/>
<button type="object" string="Confirm" name="button_confirm_bank" states="draft" icon="terp-camera_test"/>
</tree>
</field>
</record>
@ -605,15 +595,12 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_confirm_bank" states="draft" string="Confirm" type="object" />
<button name="button_dummy" states="draft" string="Compute" type="object"/>
<button name="button_cancel" states="confirm" string="Cancel" type="object"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</header>
<sheet string="Bank Statement" layout="auto">
<group col="7" colspan="4" class="oe_form_header">
<field name="name" select="1"/>
@ -670,15 +657,12 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_confirm_bank" states="draft" string="Confirm" type="object" />
<button name="button_dummy" states="draft" string="Compute" type="object"/>
<button name="button_cancel" states="confirm" string="Cancel" type="object"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</header>
<sheet string="Bank Statement" layout="auto">
<group col="7" colspan="4" class="oe_form_header">
<field name="name" select="1"/>
@ -1356,7 +1340,6 @@
<field name="amount" sum="Total Amount"/>
<field name="to_check"/>
<field name="state"/>
<button name="button_validate" states="draft" string="Approve" type="object" icon="terp-camera_test"/>
</tree>
</field>
</record>
@ -1366,14 +1349,11 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_validate" states="draft" string="Post" type="object"/>
<button name="button_cancel" states="posted" string="Cancel" type="object"/>
<div class="oe_right">
<field name="state" select="1" widget="statusbar" nolabel="1" />
</div>
<div class="oe_clear"/>
</div>
<field name="state" select="1" widget="statusbar" nolabel="1" />
</header>
<sheet string="Journal Entries" layout="auto">
<group colspan="4" col="6" class="oe_form_header">
<field name="name" readonly="True"/>
@ -2627,9 +2607,6 @@ action = pool.get('res.config').next(cr, uid, [], context)
<field name="balance_end_real"/>
<field name="balance_end"/>
<field name="state"/>
<button type="object" string="Cancel" name="button_cancel" states="confirm" icon="gtk-cancel"/>
<button type="object" string="Open" name="button_open" states="draft" icon="terp-camera_test"/>
<button type="object" string="Confirm" name="button_confirm_bank" states="open" icon="terp-gtk-go-back-rtl"/>
</tree>
</field>
</record>
@ -2640,15 +2617,12 @@ action = pool.get('res.config').next(cr, uid, [], context)
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_confirm_cash" states="open" string="Close CashBox" type="object"/>
<button name="button_open" states="draft" string="Open CashBox" type="object"/>
<button name="button_cancel" states="confirm,open" string="Cancel" type="object" groups="base.group_extended"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</header>
<sheet string="Statement" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="name" select="1"/>

View File

@ -24,7 +24,7 @@
<field name="arch" type="xml">
<field name="currency_id" position="after">
<field name="property_reserve_and_surplus_account" colspan="2"/>
<field name="paypal_account" />
<field name="paypal_account" placeholder="sales@openerp.com"/>
</field>
</field>
</record>

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: account

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 00:35+0000\n"
"PO-Revision-Date: 2012-05-23 07:32+0000\n"
"Last-Translator: VTTW <victso@gmail.com>\n"
"PO-Revision-Date: 2012-06-05 02:38+0000\n"
"Last-Translator: Boyce Huang <boyce.huang@cenoq.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-05-24 11:09+0000\n"
"X-Generator: Launchpad (build 15288)\n"
"X-Launchpad-Export-Date: 2012-06-05 04:54+0000\n"
"X-Generator: Launchpad (build 15353)\n"
#. module: account
#: view:account.invoice.report:0
@ -419,7 +419,7 @@ msgstr "貸方合計"
#. module: account
#: view:account.move.line.unreconcile.select:0
msgid "Open for Unreconciliation"
msgstr ""
msgstr "開啟反核銷"
#. module: account
#: field:account.account.template,chart_template_id:0
@ -2737,7 +2737,7 @@ msgstr "要設置期初餘額需在憑證簿設置中勾選合併選項"
#: model:ir.actions.act_window,name:account.action_tax_code_list
#: model:ir.ui.menu,name:account.menu_action_tax_code_list
msgid "Tax Codes"
msgstr ""
msgstr "稅碼"
#. module: account
#: view:account.account:0
@ -4593,7 +4593,7 @@ msgstr "已付"
#. module: account
#: view:account.period.close:0
msgid "Are you sure?"
msgstr ""
msgstr "您確定嗎?"
#. module: account
#: help:account.move.line,statement_id:0
@ -5930,7 +5930,7 @@ msgstr "銷售稅(%)"
#. module: account
#: view:account.addtmpl.wizard:0
msgid "Create an Account Based on this Template"
msgstr ""
msgstr "根據這個範本建立使用者"
#. module: account
#: view:account.account.type:0
@ -7868,7 +7868,7 @@ msgstr "反向輔助核算餘額 -"
#. module: account
#: view:account.move.bank.reconcile:0
msgid "Open for Bank Reconciliation"
msgstr ""
msgstr "開啟銀行核銷"
#. module: account
#: view:account.analytic.line:0
@ -9126,7 +9126,7 @@ msgstr "為了對賬,您必須在賬簿中定義一個銀行帳號。"
#. module: account
#: view:account.move.line.reconcile:0
msgid "Reconciliation Transactions"
msgstr ""
msgstr "核銷交易"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_common_menu

View File

@ -16,10 +16,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Configure Accounting" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<field name="has_default_company" invisible="1" />
<field name="has_chart_of_accounts" invisible="1"/>

View File

@ -83,10 +83,7 @@
<button name="validate" states="draft" string="Confirm Asset" type="object"/>
<button name="set_to_close" states="open" string="Set to Close" type="object"/>
<button name="set_to_draft" states="open" string="Set to Draft" type="object"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/>
</div>
<div class="oe_clear"/>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/>
</div>
<sheet string="Asset" layout="auto">
<group col="6" colspan="4" class="oe_form_header">

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: account_bank_statement_extensions

View File

@ -105,17 +105,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Confirm" name="confirm" states="draft" type="workflow" />
<button string="Approve" name="validate" states="confirm" type="workflow"/>
<button string="Done" name="done" states="validate" type="workflow" />
<button name="draft" states="cancel" string="Reset to Draft" type="workflow"/>
<button string="Cancel" name="cancel" states="confirm,validate" type="workflow"/>
<div class="oe_right">
<field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</header>
<sheet string="Budget" layout="auto">
<group class="oe_form_header">
<field name="name" colspan="1" select="1" attrs="{'readonly':[('state','!=','draft')]}"/>

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-05-10 18:14+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2012-06-01 06:41+0000\n"
"Last-Translator: Akira Hiyama <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-11 05:15+0000\n"
"X-Generator: Launchpad (build 15225)\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: account_check_writing
#: selection:res.company,check_layout:0
@ -100,7 +100,7 @@ msgstr "小切手の振出"
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Discount"
msgstr "割引"
msgstr "割引"
#. module: account_check_writing
#: report:account.print.check.bottom:0

View File

@ -18,8 +18,7 @@
<field name="balance" sum="Balance"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="blocked" invisible="1" />
<field name="period_id" invisible="1" />
<field name="period_id" invisible="1" />
</tree>
</field>
</record>

View File

@ -101,16 +101,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="open" states="draft" string="Confirm Payments" />
<button name="set_done" states="open" string="Make Payments" type="object"/>
<button name="set_to_draft" states="cancel" string="Set to draft" type="object"/>
<button name="cancel" states="draft,open" string="Cancel"/>
<div class="oe_right">
<field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/>
</header>
<sheet string="Payment order" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="reference"/>
@ -193,9 +190,6 @@
<field name="date_done"/>
<field name="total"/>
<field name="state"/>
<button name="cancel" states="draft,open" string="Cancel" icon="gtk-cancel"/>
<button name="open" states="draft" string="Confirm Payments" icon="gtk-apply"/>
<button name="set_done" states="open" string="Make Payments" type ="object" icon="gtk-execute"/>
</tree>
</field>
</record>

View File

@ -0,0 +1,220 @@
# Swedish translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-06-04 17:24+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@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-06-05 04:54+0000\n"
"X-Generator: Launchpad (build 15353)\n"
#. module: account_sequence
#: view:account.sequence.installer:0
#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
msgid "Account Sequence Application Configuration"
msgstr ""
#. module: account_sequence
#: constraint:account.move:0
msgid ""
"You can not create more than one move per period on centralized journal"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "Company must be the same for its related account and period."
msgstr "Bolaget måste överenstämma för alla konton och perioder."
#. module: account_sequence
#: help:account.move,internal_sequence_number:0
#: help:account.move.line,internal_sequence_number:0
msgid "Internal Sequence Number"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,number_next:0
msgid "Next number of this sequence"
msgstr "Nästa nummer i sekvensen"
#. module: account_sequence
#: field:account.sequence.installer,number_next:0
msgid "Next Number"
msgstr "Nästa nummer"
#. module: account_sequence
#: field:account.sequence.installer,number_increment:0
msgid "Increment Number"
msgstr "Räkna upp nummer"
#. module: account_sequence
#: help:account.sequence.installer,number_increment:0
msgid "The next number of the sequence will be incremented by this number"
msgstr "Nästa nummer i sekvensen kommer att beräknas utgående från detta"
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure Your Account Sequence Application"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure"
msgstr "Inställningar"
#. module: account_sequence
#: help:account.sequence.installer,suffix:0
msgid "Suffix value of the record for the sequence"
msgstr "Suffixvärde för löpnumret"
#. module: account_sequence
#: field:account.sequence.installer,company_id:0
msgid "Company"
msgstr "Bolag"
#. module: account_sequence
#: help:account.journal,internal_sequence_id:0
msgid ""
"This sequence will be used to maintain the internal number for the journal "
"entries related to this journal."
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,padding:0
msgid "Number padding"
msgstr "Numerisk utfyllnad"
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move_line
msgid "Journal Items"
msgstr "Transaktioner"
#. module: account_sequence
#: field:account.move,internal_sequence_number:0
#: field:account.move.line,internal_sequence_number:0
msgid "Internal Number"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "You can not create journal items on an account of type view."
msgstr "Du kan inte skapa transaktioner på rubrikkonton."
#. module: account_sequence
#: help:account.sequence.installer,padding:0
msgid ""
"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
"get the required padding size."
msgstr ""
"OpenERP lägger automatiskt till några '0' till vänster på 'Nästa nummer' för "
"att få rätt storlek."
#. module: account_sequence
#: field:account.sequence.installer,name:0
msgid "Name"
msgstr "Namn"
#. module: account_sequence
#: constraint:account.move.line:0
msgid "You can not create journal items on closed account."
msgstr "Du kan inte skapa transaktioner på ett stängt konto."
#. module: account_sequence
#: constraint:account.journal:0
msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
"Konfigurationsfel! Vald valuta bör delas mellan standard-konton också."
#. module: account_sequence
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
msgstr "Fel kredit- eller debetvärde i bokföringstransaktionerna."
#. module: account_sequence
#: field:account.journal,internal_sequence_id:0
msgid "Internal Sequence"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,prefix:0
msgid "Prefix value of the record for the sequence"
msgstr "Prefix för löpnumret"
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move
msgid "Account Entry"
msgstr "Kontotransaktion"
#. module: account_sequence
#: field:account.sequence.installer,suffix:0
msgid "Suffix"
msgstr "Suffix"
#. module: account_sequence
#: field:account.sequence.installer,config_logo:0
msgid "Image"
msgstr "Bild"
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "title"
msgstr "titel"
#. module: account_sequence
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
msgstr "Journalnamnet måste vara unikt per företag!"
#. module: account_sequence
#: constraint:account.move.line:0
msgid ""
"The selected account of your Journal Entry forces to provide a secondary "
"currency. You should remove the secondary currency on the account or select "
"a multi-currency view on the journal."
msgstr ""
"Valt konto på verifikatet tvingar fram en sekundär valuta. Du kan ta bort "
"den sekundära valutan på kontot eller välja en flervalutavy för journalen."
#. module: account_sequence
#: constraint:account.move.line:0
msgid ""
"The date of your Journal Entry is not in the defined period! You should "
"change the date or remove this constraint from the journal."
msgstr ""
"Verifikatsdatumet är inte inom den definierade perioden! Du bör ändra datum "
"eller ta bort denna begränsning från journalen."
#. module: account_sequence
#: field:account.sequence.installer,prefix:0
msgid "Prefix"
msgstr "Prefix"
#. module: account_sequence
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
msgstr "Journalkoden måste vara unik per företag!"
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_sequence_installer
msgid "account.sequence.installer"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_journal
msgid "Journal"
msgstr "Journal"
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "You can enhance the Account Sequence Application by installing ."
msgstr ""

View File

@ -17,7 +17,6 @@
<field name="amount" sum="Total Amount"/>
<field name="audit"/>
<field name="state"/>
<button name="proforma_voucher" string="Post" states="draft" icon="terp-document-new"/>
</tree>
</field>
</record>
@ -41,16 +40,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="proforma_voucher" string="Post" states="draft"/>
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to unreconcile this record?"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Accounting Voucher" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="partner_id" required="1" on_change="onchange_journal_voucher(line_ids, tax_id, amount, partner_id, journal_id, type)"/>

View File

@ -144,16 +144,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/>
<button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Bill Payment" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id, 'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" string="Supplier"/>
@ -165,8 +162,8 @@
on_change="onchange_journal(journal_id, line_dr_ids, False, partner_id, date, amount, type, company_id, context)"
string="Payment Method"/>
<field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
<field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref"/>
<field name="name" colspan="2" invisible="context.get('line_type', False)"/>
<field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="003/10"/>
<field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="Invoice SAJ/0042"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="account_id"
widget="selection"
@ -298,16 +295,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/>
<button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Customer Payment" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="partner_id" domain="[('customer','=',True)]" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
@ -323,8 +317,8 @@
on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
string="Payment Method"/>
<field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
<field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref"/>
<field name="name" colspan="2" invisible="context.get('line_type', False)"/>
<field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="003/10"/>
<field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="Invoice SAJ/0042"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="account_id"
widget="selection"

View File

@ -81,17 +81,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="proforma_voucher" string="Validate" states="draft"/>
<button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Sales Receipt" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="partner_id" domain="[('customer','=',True)]" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
@ -210,17 +207,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="proforma_voucher" string="Validate" states="draft"/>
<button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Supplier Voucher" layout="auto">
<field name="pay_now" invisible="1"/>
<group col="6" colspan="4" class="oe_form_header">

View File

@ -0,0 +1,114 @@
# Swedish 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-06-04 10:13+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@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-06-05 04:54+0000\n"
"X-Generator: Launchpad (build 15353)\n"
#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
#. module: auth_openid
#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
#. openerp-web
#: view:res.users:0
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12
msgid "OpenID"
msgstr "OpenID"
#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
#. module: auth_openid
#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
#. openerp-web
#: field:res.users,openid_url:0
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47
msgid "OpenID URL"
msgstr "OpenID URL"
#. module: auth_openid
#: help:res.users,openid_email:0
msgid "Used for disambiguation in case of a shared OpenID URL"
msgstr ""
"Används för att skilja mellan olika användare i fallet med en delad OpenID-"
"URL"
#. module: auth_openid
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr "Du kan inte ha två användare med samma användarid !"
#. module: auth_openid
#: field:res.users,openid_email:0
msgid "OpenID Email"
msgstr "OpenID-epost"
#. module: auth_openid
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr "Detta bolag är inte tillåtet för den här användaren"
#. module: auth_openid
#: field:res.users,openid_key:0
msgid "OpenID Key"
msgstr "OpenID Nyckel"
#. module: auth_openid
#: model:ir.model,name:auth_openid.model_res_users
msgid "res.users"
msgstr "res.users"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8
msgid "Password"
msgstr "Lösenord"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
msgid "Google"
msgstr "Google"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
msgid "Google Apps"
msgstr "Google Apps"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11
msgid "Launchpad"
msgstr "Launchpad"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20
msgid "Google Apps Domain:"
msgstr "Google Apps Domän:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24
msgid "Username:"
msgstr "Användarnamn:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28
msgid "OpenID URL:"
msgstr "OpenID URL:"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35
msgid "Google Apps Domain"
msgstr "Google Apps Domän"
#. openerp-web
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41
msgid "Username"
msgstr "Användarnamn"

View File

@ -814,7 +814,6 @@ class calendar_alarm(osv.osv):
context = {}
mail_message = self.pool.get('mail.message')
current_datetime = datetime.now()
request_obj = self.pool.get('res.request')
alarm_ids = self.search(cr, uid, [('state', '!=', 'done')], context=context)
mail_to = []
@ -854,26 +853,28 @@ class calendar_alarm(osv.osv):
ref = alarm.model_id.model + ',' + str(alarm.res_id)
# search for alreay sent requests
if request_obj.search(cr, uid, [('trigger_date', '=', r_date), ('ref_doc1', '=', ref)], context=context):
continue
#if request_obj.search(cr, uid, [('trigger_date', '=', r_date), ('ref_doc1', '=', ref)], context=context):
#continue
if alarm.action == 'display':
value = {
'name': alarm.name,
'act_from': alarm.user_id.id,
'act_to': alarm.user_id.id,
'body': alarm.description,
'trigger_date': r_date,
'ref_doc1': ref
}
request_id = request_obj.create(cr, uid, value)
request_ids = [request_id]
for attendee in res_obj.attendee_ids:
if attendee.user_id:
value['act_to'] = attendee.user_id.id
request_id = request_obj.create(cr, uid, value)
request_ids.append(request_id)
request_obj.request_send(cr, uid, request_ids)
# Deactivated because of the removing of res.request
# TODO: when cleaning calendar module, re-add this in a new mechanism
#if alarm.action == 'display':
#value = {
#'name': alarm.name,
#'act_from': alarm.user_id.id,
#'act_to': alarm.user_id.id,
#'body': alarm.description,
#'trigger_date': r_date,
#'ref_doc1': ref
#}
#request_id = request_obj.create(cr, uid, value)
#request_ids = [request_id]
#for attendee in res_obj.attendee_ids:
#if attendee.user_id:
#value['act_to'] = attendee.user_id.id
#request_id = request_obj.create(cr, uid, value)
#request_ids.append(request_id)
#request_obj.request_send(cr, uid, request_ids)
if alarm.action == 'email':
sub = '[Openobject Reminder] %s' % (alarm.name)

View File

@ -9,7 +9,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="do_tentative"
states="needs-action,declined,accepted"
string="Uncertain" type="object"
@ -26,11 +26,8 @@
<button name="do_decline" string="Decline"
states="needs-action,tentative,accepted"
type="object" />
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,needs-action,accepted" statusbar_colors='{"proforma":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,needs-action,accepted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Invitation details" layout="auto">
<group col="6" colspan="4">
<field name="email" string="Invitation To"/>
@ -85,21 +82,6 @@
<field name="cutype" string="Invitation Type"/>
<field name="state" />
<field name="rsvp" string="Required to Join"/>
<button name="do_tentative" states="needs-action,declined,accepted"
string="Uncertain" type="object"
icon="terp-crm" />
<button name="do_accept" string="Accept"
states="needs-action,tentative,declined"
type="object" icon="gtk-apply" />
<button name="do_decline" string="Decline"
states="needs-action,tentative,accepted"
type="object" icon="gtk-cancel" />
<button
name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
string="Delegate" type="action"
icon="gtk-sort-descending"
states="needs-action,tentative,declined,accepted"
context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
</tree>
</field>
</record>
@ -229,7 +211,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="do_confirm"
string="Confirm"
states="tentative,cancelled"
@ -245,11 +227,8 @@
states="tentative,confirmed"
type="object"
/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,confirmed" statusbar_colors='{"proforma":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,confirmed" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Events" layout="auto">
<group col="6" colspan="4">
<field name="name" select="1" string="Summary"

View File

@ -46,10 +46,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Configure Sales" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<group>
<group name="config_sale" colspan="4"/>

View File

@ -7,10 +7,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="General Settings" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<separator string="Company Settings" colspan="4"/>
<field name="module_multi_company"/>

View File

@ -30,7 +30,7 @@ Synchronization with all objects.
Configure servers and trigger synchronization with its database objects.
""",
"depends": ["base"],
"depends": ["base", "mail"],
"demo_xml": [],
"update_xml": [
"wizard/base_synchro_view.xml",

View File

@ -234,7 +234,6 @@ class base_synchro(osv.osv_memory):
self.pool.get('base.synchro.obj').write(cr, uid, [object.id], {'synchronize_date': dt})
end_date = time.strftime('%Y-%m-%d, %Hh %Mm %Ss')
if syn_obj.user_id:
request = pooler.get_pool(cr.dbname).get('res.request')
if not self.report:
self.report.append('No exception.')
summary = '''Here is the synchronization report:
@ -249,12 +248,8 @@ Records created: %d
Exceptions:
'''% (start_date,end_date,self.report_total, self.report_write,self.report_create)
summary += '\n'.join(self.report)
request.create(cr, uid, {
'name' : "Synchronization report",
'act_from' : uid,
'act_to' : syn_obj.user_id.id,
'body': summary,
})
# Chatter: old res.request transformed into a message added to the destination user
self.pool.get('res.users').message_append_note(cr, uid, [syn_obj.user_id.id], body=summary, subject=_('Synchronization Report'), context=context)
return True
def upload_download_multi_thread(self, cr, uid, data, context=None):

View File

@ -9,7 +9,7 @@
<field name="arch" type="xml">
<field name="property_account_payable" position="after">
<group colspan="2" col="6">
<field name="vat" on_change="vat_change(vat)"/>
<field name="vat" on_change="vat_change(vat)" placeholder="BE0477472702"/>
<button colspan="2" name="button_check_vat" string="Check VAT" type="object" icon="gtk-execute"/>
<field name="vat_subjected" colspan="1"/>
</group>

View File

@ -11,21 +11,10 @@
<field name="name" string="Opportunity"/>
<field name="partner_id" string="Customer"/>
<field name="stage_id"/>
<button name="stage_previous" string="Previous Stage"
states="open,pending" type="object" icon="gtk-go-back" />
<button name="stage_next" string="Next Stage"
states="open,pending" type="object"
icon="gtk-go-forward" />
<field name="planned_revenue" sum="Total of Planned Revenue"/>
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
<field name="date_deadline" invisible="1"/>
<field name="state" groups="base.group_no_one"/>
<button name="case_open" string="Open" type="object"
states="draft,pending" icon="gtk-go-forward"/>
<button name="case_mark_won" string="Won" type="object"
states="open,pending" icon="gtk-apply"/>
<button name="case_mark_lost" string="Lost" type="object"
states="open,pending" icon="gtk-cancel"/>
</tree>
</field>
</record>

View File

@ -189,7 +189,7 @@ class crm_lead(base_stage, osv.osv):
select=True, help="Optional linked partner, usually after conversion of the lead"),
'id': fields.integer('ID', readonly=True),
'name': fields.char('Name', size=64, select=1),
'name': fields.char('Subject', size=64, required=True, select=1),
'active': fields.boolean('Active', required=False),
'date_action_last': fields.datetime('Last Action', readonly=1),
'date_action_next': fields.datetime('Next Action', readonly=1),
@ -228,7 +228,6 @@ class crm_lead(base_stage, osv.osv):
When the case is over, the state is set to \'Done\'.\
If the case needs to be reviewed then the state is \
set to \'Pending\'.'),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
'subjects': fields.function(_get_email_subject, fnct_search=_history_search, string='Subject of Email', type='char', size=64),
# Only used for type opportunity

View File

@ -61,7 +61,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Leads Form" layout="manual">
<div class="oe_form_topbar">
<header>
<button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
states="draft,open,pending" help="Convert to Opportunity"/>
<button name="case_escalate" string="Escalate" type="object"
@ -70,15 +70,12 @@
states="cancel"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending"/>
<div class="oe_right">
<field name="stage_id" nolabel="1" widget="statusbar"
<field name="stage_id" widget="statusbar"
on_change="onchange_stage_id(stage_id)"/>
</div>
<div class="oe_clear"/>
</div>
</header>
<sheet layout="auto">
<group colspan="4" col="7">
<field name="name" required="1" string="Subject"/>
<field name="name"/>
<field name="priority"/>
<field name="categ_id"
widget="selection"
@ -155,7 +152,7 @@
</notebook>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
@ -171,7 +168,7 @@
<field name="needaction_pending" invisible="1"/>
<field name="date_deadline" invisible="1"/>
<field name="create_date" groups="base.group_no_one"/>
<field name="name" string="Subject"/>
<field name="name"/>
<field name="contact_name"/>
<field name="country_id" invisible="context.get('invisible_country', True)" />
<field name="email_from"/>
@ -184,12 +181,6 @@
<field name="referred" invisible="1"/>
<field name="channel_id" invisible="1"/>
<field name="subjects" invisible="1"/>
<button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
states="draft,open,pending" icon="gtk-go-forward"/>
<button name="case_escalate" string="Escalate" type="object"
states="draft,open,pending" icon="gtk-go-up"/>
<button name="case_cancel" string="Dead" type="object"
states="open,draft,pending" icon="gtk-cancel"/>
</tree>
</field>
</record>
@ -245,18 +236,15 @@
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
</ul>
<div class="oe_kanban_content">
<h3>
<field name="partner_id"/>
<t t-if="record.planned_revenue.raw_value">
- <t t-esc="Math.round(record.planned_revenue.value)"/>
<field name="company_currency"/>
</t>
</h3>
<div>
<b> <field name="partner_address_name"/> </b>
<b><field name="name"/></b>
<t t-if="record.planned_revenue.raw_value">
- <b><t t-esc="Math.round(record.planned_revenue.value)"/>
<field name="company_currency"/></b>
</t>
</div>
<div>
<field name="name"/>
<field name="partner_id"/>
</div>
<div style="padding-left: 0.5em">
<i>
@ -382,134 +370,128 @@
<field name="type">form</field>
<field name="priority">20</field>
<field name="arch" type="xml">
<form string="Opportunities" layout="manual">
<div class="oe_form_topbar oe_form_topbar_hifirst">
<button name="case_open" string="Open" type="object"
states="draft"/>
<button name="case_mark_won" string="Mark Won" type="object"
states="draft,open"/>
<button name="case_mark_lost" string="Mark Lost" type="object"
states="draft,open"/>
<button name="case_reset" string="Reset to Draft" type="object"
states="cancel"/>
<button name="case_escalate" string="Escalate" type="object"
states="open"/>
<button name="stage_previous" string="Previous" type="object"
states="open" icon="gtk-go-back" context="{'stage_type': 'opportunity'}"/>
<button name="stage_next" string="Next" type="object"
states="open" icon="gtk-go-forward" context="{'stage_type': 'opportunity'}"/>
<div class="oe_right">
<field name="stage_id" nolabel="1" widget="statusbar"
on_change="onchange_stage_id(stage_id)"/>
</div>
<div class="oe_clear"/>
</div>
<sheet layout="auto">
<group colspan="4" col="2" width="auto">
<field name="name" required="1" nolabel="1" class="oe_form_title"/>
<div class="oe_text_right">
<form string="Opportunities" validate="0">
<header>
<button name="case_mark_won" string="Mark Won" states="open,pending" type="object" />
<button name="case_open" string="Open" states="draft,pending" type="object" />
<button name="case_pending" string="Pending" states="draft,open" type="object" />
<button name="case_escalate" string="Escalate" states="open,pending" type="object" />
<button name="case_mark_lost" string="Mark Lost" states="open,pending" type="object" />
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" />
<button name="case_cancel" string="Cancel" states="draft" type="object" />
<field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
</header>
<sheet>
<div class="oe_right oe_form_button_box">
<button string="Schedule/Log Call"
name="%(opportunity2phonecall_act)d" icon="terp-call-start"
name="%(opportunity2phonecall_act)d"
type="action"/>
<button string="Schedule Meeting" icon="gtk-redo"
<button string="Schedule Meeting"
name="action_makeMeeting"
type="object"/>
</div>
</group>
<group colspan="4" col="4" class="oe_form_group_label_border" style="margin-top: 20px;">
<field name="user_id"/>
<field name="planned_revenue"/>
<div class="oe_form_title">
<label for="name" class="oe_form_readonly_hidden"/>
<h1><field name="name"/></h1>
<field name="date_action"/>
<field name="date_deadline"/>
<label for="planned_revenue" class="oe_form_readonly_hidden"/>
<h2>
<field name="planned_revenue" class="oe_form_inline"/>
<field name="company_currency" class="oe_form_readonly_hidden oe_form_inline"/> at
<field name="probability" class="oe_form_inline"/> %% success rate
</h2>
</div>
<group>
<group>
<field name="partner_id"
on_change="onchange_partner_id(partner_id, email_from)"
string="Customer"
context="{'default_name': partner_name, 'default_email': email_from, 'default_phone': phone}"/>
<field name="email_from" string="Email"/>
<field name="phone"/>
</group>
<field name="title_action"/>
<field name="probability"/>
<group>
<label for="title_action"/>
<div>
<field name="date_action" nolabel="1"/> -
<field name="title_action" class="oe_form_inline" nolabel="1" placeholder="Call for proposal"/>
</div>
<field name="date_deadline"/>
<field name="priority"/>
</group>
<group>
<field name="user_id"/>
<field name="section_id" colspan="1" widget="selection"/>
</group>
<group>
<field name="categ_id" select="1"
string="Category" widget="selection"
domain="[('object_id.model', '=', 'crm.lead')]" />
<field name="type" invisible="1"/>
</group>
<notebook colspan="4">
<page string="Opportunity">
<group col="4" colspan="2">
<separator colspan="4" string="Contacts"/>
<group colspan="2" col="3" class="oe_form_group_label_border">
<field width="80%%" name="partner_id" select="1"
on_change="onchange_partner_id(partner_id, email_from)" string="Customer"/>
<button name="%(action_crm_lead2partner)d"
icon="terp-partner" type="action"
string="Create"
attrs="{'invisible':[('partner_id','!=',False)]}"/>
<field name="phone" colspan="3"/>
<field width="80%%" name="email_from" string="Email"/>
<button string="Mail"
name="%(mail.action_email_compose_message_wizard)d"
context="{'mail':'new', 'model': 'crm.lead'}"
icon="terp-mail-message-new" type="action" />
</group>
</group>
<group col="2" colspan="2" class="oe_form_group_label_border">
<separator colspan="2" string="Category"/>
<field name="section_id" colspan="1" widget="selection"/>
<field name="categ_id" select="1"
string="Category" widget="selection"
domain="[('object_id.model', '=', 'crm.lead')]" />
<field name="state"/>
<field name="priority"/>
</group>
<separator colspan="4" string="Details"/>
<field name="description" nolabel="1" colspan="4"/>
</page>
<page string="Lead">
<separator string="Contact" colspan="4"/>
<group colspan="4" col="4" class="oe_form_group_label_border">
<field name="partner_name" string="Customer Name" colspan="4"/>
</group>
<group colspan="2" col="2" class="oe_form_group_label_border">
<field domain="[('domain', '=', 'contact')]" name="title" widget="selection"/>
<field name="fax"/>
<field name="street"/>
<field name="zip"/>
<field name="country_id"/>
</group>
<group colspan="2" col="2" class="oe_form_group_label_border">
<field name="function" />
<field name="mobile"/>
<field name="street2"/>
<field name="city"/>
<field name="state_id"/>
</group>
<!--<button string="Mail"
name="%(mail.action_email_compose_message_wizard)d"
context="{'mail':'new', 'model': 'crm.lead'}"
icon="terp-mail-message-new" type="action" />-->
<group colspan="2" col="2" class="oe_form_group_label_border">
<separator string="Categorization" colspan="2"/>
<field name="type_id" widget="selection"/>
<field name="channel_id" widget="selection"/>
</group>
<group colspan="2" col="2" class="oe_form_group_label_border">
<separator string="Mailings" colspan="2"/>
<field name="opt_in" on_change="on_change_opt_in(opt_in)"/>
<field name="opt_out" on_change="on_change_opt_out(opt_out)"/>
</group>
</page>
<page string="Extra Info">
<group col="2" colspan="2" class="oe_form_group_label_border">
<separator string="Misc" colspan="2"/>
<field name="active"/>
<field name="day_open" groups="base.group_no_one"/>
<field name="day_close" groups="base.group_no_one"/>
<field name="referred"/>
</group>
<group col="2" colspan="2" class="oe_form_group_label_border">
<separator colspan="4" string="References"/>
<field name="ref"/>
<field name="ref2"/>
</group>
</page>
</notebook>
<notebook colspan="4">
<page string="Internal Notes">
<field name="description"/>
</page>
<page string="Lead">
<group>
<group>
<field name="partner_name"/>
<label for="street" string="Address"/>
<div>
<field name="street" placeholder="Street..."/>
<field name="street2"/>
<div>
<field name="zip" class="oe_form_inline" placeholder="ZIP"/>
<field name="city" class="oe_form_inline" placeholder="City"/>
</div>
<field name="state_id" placeholder="State"/>
<field name="country_id" placeholder="Country"/>
</div>
</group>
<group>
<field name="contact_name" />
<field name="function" />
<field domain="[('domain', '=', 'contact')]" name="title"/>
<field name="mobile"/>
<field name="fax"/>
</group>
<group string="Categorization">
<field name="type_id" widget="selection"/>
<field name="channel_id" widget="selection"/>
</group>
<group string="Mailings">
<field name="opt_in" on_change="on_change_opt_in(opt_in)"/>
<field name="opt_out" on_change="on_change_opt_out(opt_out)"/>
</group>
<group string="Misc">
<field name="active"/>
<field name="day_open" groups="base.group_no_one"/>
<field name="day_close" groups="base.group_no_one"/>
<field name="referred"/>
</group>
<group string="References">
<field name="ref"/>
<field name="ref2"/>
</group>
</group>
</page>
</notebook>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>
@ -540,12 +522,6 @@
<field name="priority" invisible="1"/>
<field name="categ_id" invisible="1"/>
<field name="state" groups="base.group_no_one"/>
<button name="case_open" string="Open" type="object"
states="draft,pending" icon="gtk-go-forward"/>
<button name="case_mark_won" string="Won" type="object"
states="open,pending" icon="gtk-apply"/>
<button name="case_mark_lost" string="Lost" type="object"
states="open,pending" icon="gtk-cancel"/>
</tree>
</field>
</record>

View File

@ -58,7 +58,6 @@ class crm_meeting(base_state, osv.Model):
'event_id', 'attendee_id', 'Attendees', states={'done': [('readonly', True)]}),
'date_closed': fields.datetime('Closed', readonly=True),
'date_deadline': fields.datetime('Deadline', states={'done': [('readonly', True)]}),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
'state': fields.selection([ ('draft', 'Unconfirmed'),
('open', 'Confirmed'),
('cancel', 'Cancelled'),

View File

@ -26,7 +26,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Meetings" layout="manual">
<div class="oe_form_topbar oe_form_topbar_hifirst">
<header>
<button name="case_open" string="Confirm" type="object"
states="draft"/>
<button name="case_close" string="Done" type="object"
@ -35,11 +35,8 @@
states="cancel,done"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open"/>
<div class="oe_right">
<field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,open,done"/>
</header>
<sheet layout="auto">
<group col="6" colspan="4">
<field name="name" select="1" string="Title"
@ -213,7 +210,7 @@
</notebook>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>

View File

@ -69,7 +69,6 @@ class crm_phonecall(base_state, osv.osv):
'date_closed': fields.datetime('Closed', readonly=True),
'date': fields.datetime('Date'),
'opportunity_id': fields.many2one ('crm.lead', 'Lead/Opportunity'),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
}
def _get_default_state(self, cr, uid, context=None):

View File

@ -63,7 +63,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="case_open" string="Confirm" type="object"
states="draft,pending" icon="gtk-go-forward"/>
<button name="case_close" string="Held" type="object"
@ -72,11 +72,8 @@
states="cancel" icon="gtk-convert"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending" icon="gtk-cancel"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done" select="1"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done"/>
</header>
<sheet string="Phone Call" layout="auto">
<group colspan="6" col="7">
<field name="name" required="1"/>
@ -124,7 +121,7 @@
<field name="description" nolabel="1" colspan="4" />
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>

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-02-16 14:00+0000\n"
"PO-Revision-Date: 2012-06-01 08:42+0000\n"
"Last-Translator: Erwin <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-11 04:44+0000\n"
"X-Generator: Launchpad (build 15225)\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: crm
#: view:crm.lead.report:0
@ -172,7 +172,7 @@ msgstr "Verwachte besluit maand"
#. module: crm
#: view:crm.lead2opportunity.partner.mass:0
msgid "Assigned Opportunities to"
msgstr ""
msgstr "Toegewezen porspects aan"
#. module: crm
#: view:crm.lead:0 field:crm.lead,partner_id:0 view:crm.lead.report:0
@ -599,7 +599,7 @@ msgstr "Einddatum"
#. module: crm
#: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0
msgid "Schedule/Log a Call"
msgstr ""
msgstr "Plan/Log een gesprek"
#. module: crm
#: constraint:base.action.rule:0
@ -792,7 +792,7 @@ msgstr "Doorgaan"
#. module: crm
#: field:crm.segmentation,som_interval:0
msgid "Days per Period"
msgstr ""
msgstr "Dagen per periode"
#. module: crm
#: field:crm.meeting,byday:0
@ -960,7 +960,7 @@ msgstr "Dagen voor openen"
#. module: crm
#: view:crm.meeting:0
msgid "Show Time as"
msgstr ""
msgstr "Tijd weergeven als"
#. module: crm
#: view:crm.phonecall2partner:0
@ -1344,7 +1344,7 @@ msgstr "Schrijfdatum"
#. module: crm
#: view:crm.meeting:0
msgid "End of Recurrency"
msgstr ""
msgstr "Einde herhaling"
#. module: crm
#: view:crm.meeting:0
@ -1907,7 +1907,7 @@ msgstr "Antwoord aan"
#. module: crm
#: view:crm.case.section:0
msgid "Select Stages for this Sales Team"
msgstr ""
msgstr "Selecteer de fases voor dit verkoopteam"
#. module: crm
#: view:board.board:0
@ -2779,7 +2779,7 @@ msgstr "E-mail adres van de contactpersoon"
#. module: crm
#: field:crm.lead,referred:0
msgid "Referred by"
msgstr ""
msgstr "Gerefereerd door"
#. module: crm
#: view:crm.lead:0 model:ir.model,name:crm.model_crm_add_note

View File

@ -2,40 +2,44 @@
<openerp>
<data>
<!-- Opportunity to Phonecall view -->
<!-- Opportunity to Phonecall view -->
<record model="ir.ui.view" id="opportunity2phonecall_view">
<field name="name">crm.opportunity2phonecall.form</field>
<field name="model">crm.opportunity2phonecall</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Schedule/Log a Call">
<separator string="Schedule/Log a Call" colspan="4"/>
<field name="action"/>
<separator string="Call Details" colspan="4"/>
<field name="name"/>
<field name="date" string="Planned Date" attrs="{'invisible': [('action','=','log')]}"/>
<newline/>
<field name="partner_id" readonly="True"/>
<field name="categ_id" string="Type" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
<field name="phone"/>
<field name="user_id" attrs="{'invisible': [('action','=','log')]}"/>
<field name="section_id" widget="selection" attrs="{'invisible': [('action','=','log')]}"/>
<separator string="Notes" colspan="4"/>
<field name="note" colspan="4" nolabel="1"/>
<separator string="" colspan="4"/>
<group colspan="4" col="3">
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
<button name="action_schedule" type="object" string="Log call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'log')]}" />
<button name="action_schedule" type="object" string="Schedule Call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'schedule')]}" />
</group>
<form string="Schedule/Log a Call" layout="manual">
<header>
<button name="action_schedule" type="object" string="Log call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'log')]}" />
<button name="action_schedule" type="object" string="Schedule Call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'schedule')]}" />
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
</header>
<group>
<group>
<field name="action"/>
<field name="name"/>
<field name="date" string="Planned Date" attrs="{'invisible': [('action','=','log')]}"/>
</group>
<group>
<field name="partner_id" readonly="True"/>
<field name="categ_id" string="Type"
widget="selection"
domain="[('object_id.model', '=', 'crm.phonecall')]"
groups="base.group_no_one"/>
<field name="phone"/>
<field name="user_id" attrs="{'invisible': [('action','=','log')]}"/>
<field name="section_id" widget="selection" attrs="{'invisible': [('action','=','log')]}"/>
</group>
</group>
<field name="note"/>
</form>
</field>
</record>
<!-- Opportunity to Phonecall action -->
<!-- Opportunity to Phonecall action -->
<record model="ir.actions.act_window" id="opportunity2phonecall_act">
<record model="ir.actions.act_window" id="opportunity2phonecall_act">
<field name="name">Schedule/Log Call</field>
<field name="res_model">crm.opportunity2phonecall</field>
<field name="view_type">form</field>

View File

@ -115,7 +115,6 @@ class crm_claim(base_stage, osv.osv):
When the case is over, the state is set to \'Done\'.\
If the case needs to be reviewed then the state is \
set to \'Pending\'.'),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
}
_defaults = {
@ -159,6 +158,11 @@ class crm_claim(base_stage, osv.osv):
return stage_ids[0]
return False
def create(self, cr, uid, vals, context=None):
obj_id = super(crm_claim, self).create(cr, uid, vals, context)
self.create_send_note(cr, uid, [obj_id], context=context)
return obj_id
def case_refuse(self, cr, uid, ids, context=None):
""" Mark the case as refused: state=done and case_refused=True """
for lead in self.browse(cr, uid, ids):
@ -166,7 +170,7 @@ class crm_claim(base_stage, osv.osv):
if stage_id:
self.case_set(cr, uid, [lead.id], values_to_update={}, new_stage_id=stage_id, context=context)
return self.case_refuse_send_note(cr, uid, ids, context=context)
def onchange_partner_id(self, cr, uid, ids, part, email=False):
"""This function returns value of partner address based on partner
:param part: Partner's id
@ -241,11 +245,13 @@ class crm_claim(base_stage, osv.osv):
""" Override of default prefix for notifications. """
return 'Claim'
def create_send_note(self, cr, uid, ids, context=None):
msg = _('Claim has been <b>created</b>.')
return self.message_append_note(cr, uid, ids, body=msg, context=context)
def case_refuse_send_note(self, cr, uid, ids, context=None):
for id in ids:
msg = _('%s has been <b>refused</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
self.message_append_note(cr, uid, [id], body=msg, context=context)
return True
msg = _('Claim has been <b>refused</b>.')
return self.message_append_note(cr, uid, ids, body=msg, context=context)
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
""" Override of the (void) default notification method. """

View File

@ -79,12 +79,6 @@
<field name="date_deadline" invisible="1"/>
<field name="date_closed" invisible="1"/>
<field name="state" groups="base.group_no_one"/>
<button name="case_open" string="Open" type="object"
states="draft,pending" icon="gtk-go-forward" groups="base.group_user"/>
<button name="case_close" string="Done" type="object"
states="draft,open,pending" icon="gtk-close" groups="base.group_user"/>
<button name="case_refuse" string="Refuse" type="object"
states="draft,open,pending" icon="gtk-cancel" groups="base.group_user"/>
</tree>
</field>
</record>
@ -95,7 +89,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<span groups="base.group_user">
<button name="case_open" string="Open" type="object"
states="draft,pending"/>
@ -112,12 +106,9 @@
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending"/>
</span>
<div class="oe_right">
<field name="stage_id" nolabel="1" widget="statusbar"
<field name="stage_id" widget="statusbar"
on_change="onchange_stage_id(stage_id)"/>
</div>
<div class="oe_clear"/>
</div>
</header>
<sheet string="Claims" layout="auto">
<group>
<field name="name"/>
@ -174,32 +165,12 @@
<field name="resolution" colspan="2" nolabel="1"/>
</group>
</page>
<page string="Communication &amp; History">
<group colspan="4">
<field colspan="4" name="email_cc" string="Global CC" widget="char"/>
</group>
<field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1">
<tree string="History">
<field name="display_text" string="History Information"/>
<field name="email_from" invisible="1"/>
<button
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
name="%(mail.action_email_compose_message_wizard)d"
context="{'mail.compose.message.mode':'reply'}"
icon="terp-mail-replied" type="action"/>
</tree>
</field>
<button string="Add Internal Note"
name="%(crm.action_crm_add_note)d"
context="{'model': 'crm.lead' }"
icon="terp-document-new" type="action"/>
<button string="Send New Email"
name="%(mail.action_email_compose_message_wizard)d"
icon="terp-mail-message-new" type="action"/>
</page>
</notebook>
</group>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>

View File

@ -23,6 +23,7 @@ from base_status.base_stage import base_stage
from crm import crm
from crm import wizard
from osv import fields, osv
from tools.translate import _
wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.fundraising')
@ -76,7 +77,6 @@ class crm_fundraising(base_stage, osv.osv):
When the case is over, the state is set to \'Done\'.\
If the case needs to be reviewed then the state is \
set to \'Pending\'.'),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
}
_defaults = {
@ -122,6 +122,11 @@ class crm_fundraising(base_stage, osv.osv):
return stage_ids[0]
return False
def create(self, cr, uid, vals, context=None):
obj_id = super(crm_fundraising, self).create(cr, uid, vals, context)
self.create_send_note(cr, uid, [obj_id], context=context)
return obj_id
def message_new(self, cr, uid, msg, custom_values=None, context=None):
"""Automatically called when new email message arrives"""
res_id = super(crm_fundraising,self).message_new(cr, uid, msg, custom_values=custom_values, context=context)
@ -146,6 +151,11 @@ class crm_fundraising(base_stage, osv.osv):
""" Override of default prefix for notifications. """
return 'Fundraising'
def create_send_note(self, cr, uid, ids, context=None):
msg = _('Fundraising has been <b>created</b>.')
self.message_append_note(cr, uid, ids, body=msg, context=context)
return True
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
""" Override of the (void) default notification method. """
stage_name = self.pool.get('crm.case.stage').name_get(cr, uid, [stage_id], context=context)[0][1]

View File

@ -50,22 +50,6 @@
<field name="user_id" />
<field name="state" />
<field name="partner_id" invisible="1"/>
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
<button name="case_open" string="Open"
states="draft,pending" type="object"
icon="gtk-go-forward" />
<button name="case_pending" string="Pending"
states="draft,open" type="object" icon="gtk-media-pause" />
<button name="case_escalate" string="Escalate"
states="open,draft,pending" type="object"
icon="gtk-go-up" />
<button name="case_close" string="Done"
states="open,draft,pending" type="object"
icon="gtk-close" />
<button name="case_reset" string="Reset to Draft"
states="done,cancel" type="object" icon="gtk-convert" />
</tree>
</field>
</record>
@ -78,18 +62,15 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="case_close" string="Done" states="open,pending" type="object" />
<button name="case_open" string="Open" states="draft,pending" type="object" />
<button name="case_pending" string="Pending" states="draft,open" type="object" />
<button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" groups="base.group_extended" />
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" />
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" />
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
</header>
<sheet string="Funds Form" layout="auto">
<group colspan="4" col="6" class="oe_form_header">
<field name="name" select="1" string="Name"/>
@ -117,29 +98,6 @@
<separator colspan="4" string="Notes"/>
<field name="description" nolabel="1" colspan="4"/>
</page>
<page string="Communication &amp; History">
<group colspan="4">
<field colspan="4" name="email_cc" string="Global CC" widget="char"/>
</group>
<field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1">
<tree string="History">
<field name="display_text" string="History Information"/>
<field name="email_from" invisible="1"/>
<button
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
name="%(mail.action_email_compose_message_wizard)d"
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
icon="terp-mail-replied" type="action" />
</tree>
</field>
<button string="Add Internal Note"
name="%(crm.action_crm_add_note)d"
context="{'model': 'crm.lead' }"
icon="terp-document-new" type="action" />
<button string="Send New Email"
name="%(mail.action_email_compose_message_wizard)d"
icon="terp-mail-message-new" type="action"/>
</page>
<page string="Extra Info">
<group col="2" colspan="2">
<separator colspan="4" string="Misc"/>
@ -162,6 +120,9 @@
</page>
</notebook>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>

View File

@ -77,7 +77,6 @@ class crm_helpdesk(base_state, osv.osv):
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
}
_defaults = {
@ -91,6 +90,11 @@ class crm_helpdesk(base_state, osv.osv):
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
def create(self, cr, uid, vals, context=None):
obj_id = super(crm_helpdesk, self).create(cr, uid, vals, context)
self.create_send_note(cr, uid, [obj_id], context=context)
return obj_id
def message_new(self, cr, uid, msg_dict, custom_values=None, context=None):
"""Automatically called when new email message arrives"""
res_id = super(crm_helpdesk,self).message_new(cr, uid, msg_dict, custom_values=custom_values, context=context)
@ -144,9 +148,15 @@ class crm_helpdesk(base_state, osv.osv):
# ******************************
# OpenChatter
# ******************************
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
return 'Helpdesk'
""" override of default base_state method. """
return 'Case'
def create_send_note(self, cr, uid, ids, context=None):
msg = _('Case has been <b>created</b>.')
self.message_append_note(cr, uid, ids, body=msg, context=context)
return True
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -29,7 +29,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="case_open" string="Open" type="object"
states="draft,pending"/>
<button name="case_close" string="Close" type="object"
@ -42,11 +42,8 @@
states="open,draft,pending"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending"/>
<div class="oe_right">
<field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
</header>
<sheet string="Helpdesk Support" layout="auto">
<group colspan="4" col="7" class="oe_form_header">
<field name="name" select="1" string="Query"/>
@ -84,29 +81,6 @@
<separator colspan="4" string="Notes"/>
<field name="description" colspan="4" nolabel="1" />
</page>
<page string="Communication &amp; History">
<group colspan="4">
<field colspan="4" name="email_cc" string="Global CC" widget="char"/>
</group>
<field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1">
<tree string="History">
<field name="display_text" string="History Information"/>
<field name="email_from" invisible="1"/>
<button
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
name="%(mail.action_email_compose_message_wizard)d"
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
icon="terp-mail-replied" type="action" />
</tree>
</field>
<button string="Add Internal Note"
name="%(crm.action_crm_add_note)d"
context="{'model': 'crm.lead' }"
icon="terp-document-new" type="action" />
<button string="Send New Email"
name="%(mail.action_email_compose_message_wizard)d"
icon="terp-mail-message-new" type="action"/>
</page>
<page string="Extra Info">
<group colspan="2" col="2" groups="base.group_no_one">
<separator colspan="4" string="Dates"/>
@ -133,7 +107,7 @@
</notebook>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
@ -156,18 +130,6 @@
<field name="section_id"/>
<field name="priority"/>
<field name="state"/>
<button name="case_open" string="Open" type="object"
states="draft,pending" icon="gtk-go-forward"/>
<button name="case_close" string="Done" type="object"
states="open,draft,pending" icon="gtk-close"/>
<button name="case_pending" string="Pending" type="object"
states="draft,open" icon="gtk-media-pause"/>
<button name="case_escalate" string="Escalate" type="object"
states="open,draft,pending" icon="gtk-go-up"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending" icon="gtk-cancel"/>
<button name="case_reset" string="Reset to Draft" type="object"
states="cancel,done" icon="gtk-convert" />
</tree>
</field>
</record>

View File

@ -10,25 +10,28 @@
<data>
<xpath expr="//notebook/page[@string='Lead']" position="after">
<page string="Assignation">
<group name="partner_assign_group" col="5" colspan="4" class="oe_form_group_label_border">
<separator string="Partner Assignation" colspan="5"/>
<field width="50%%" name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)" domain="[('grade_id','&lt;&gt;',False)]"/>
<field width="40%%" name="date_assign"/>
<group width="10%%" colspan="1" col="1">
<button string="Forward"
attrs="{'invisible':[('partner_assigned_id','=',False)]}"
name="%(crm_lead_forward_to_partner_act)d"
icon="terp-mail-forward" type="action"
context="{'default_name': 'partner', 'default_partner_id': partner_assigned_id}"
/>
<group name="partner_assign_group">
<group string="Partner Assignation">
<field name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)" domain="[('grade_id','&lt;&gt;',False)]"/>
<label for="date_assign"/>
<div>
<field name="date_assign"/>
<button string="Forward"
attrs="{'invisible':[('partner_assigned_id','=',False)]}"
name="%(crm_lead_forward_to_partner_act)d"
icon="terp-mail-forward" type="action"
context="{'default_name': 'partner', 'default_partner_id': partner_assigned_id}"
/>
</div>
</group>
<group string="Geo Assignation">
<field name="partner_latitude"/>
<field name="partner_longitude"/>
<span/>
<button string="Geo Assign" name="action_assign_partner" type="object" colspan="1"
icon="gtk-apply"/>
</group>
</group>
<separator string="Geo Assignation" colspan="5"/>
<field width="50%%" name="partner_latitude"/>
<field width="40%%" name="partner_longitude"/>
<button width="10%%" string="Geo Assign" name="action_assign_partner" type="object" colspan="1"
icon="gtk-apply"/>
</group>
</page>
</xpath>
</data>

View File

@ -9,7 +9,7 @@
<field name="inherit_id" ref="crm.crm_case_form_view_oppor" />
<field name="arch" type="xml">
<data>
<page string="Extra Info" position="before">
<page string="Lead" position="before">
<page string="Tasks">
<field name="task_ids" colspan="4" nolabel="1">
<tree editable="bottom" string="Tasks">

View File

@ -266,7 +266,7 @@
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_out_form"/>
<field name="arch" type="xml">
<xpath expr="/form/div[@class='oe_form_topbar']/button[@string='Create Invoice']" position="after">
<xpath expr="/form/header/button[@string='Create Invoice']" position="after">
<button name="%(report_shipping)d" string="Delivery Order" states="done" type="action" icon="gtk-print"/>
</xpath>
</field>

View File

@ -116,8 +116,6 @@
<field name="email_from"/>
<field name="email_to"/>
<field name="report_name"/>
<button name="%(wizard_email_template_preview)d" string="Preview Template"
type="action" target="new" icon="gtk-zoom-fit"/>
</tree>
</field>
</record>

View File

@ -48,6 +48,7 @@ class event_event(osv.osv):
_name = 'event.event'
_description = __doc__
_order = 'date_begin'
_inherit = ['ir.needaction_mixin','mail.thread']
def name_get(self, cr, uid, ids, context=None):
if not ids:
@ -70,6 +71,11 @@ class event_event(osv.osv):
res = self.name_get(cr, uid, ids, context=context)
return dict(res)
def create(self, cr, uid, vals, context=None):
obj_id = super(event_event, self).create(cr, uid, vals, context)
self.create_send_note(cr, uid, [obj_id], context=context)
return obj_id
def copy(self, cr, uid, id, default=None, context=None):
""" Reset the state and the registrations while copying an event
"""
@ -82,6 +88,7 @@ class event_event(osv.osv):
return super(event_event, self).copy(cr, uid, id, default=default, context=context)
def button_draft(self, cr, uid, ids, context=None):
self.button_draft_send_note(cr, uid, ids, context=context)
return self.write(cr, uid, ids, {'state': 'draft'}, context=context)
def button_cancel(self, cr, uid, ids, context=None):
@ -91,9 +98,11 @@ class event_event(osv.osv):
if event_reg.state == 'done':
raise osv.except_osv(_('Error!'),_("You have already set a registration for this event as 'Attended'. Please reset it to draft if you want to cancel this event.") )
registration.write(cr, uid, reg_ids, {'state': 'cancel'}, context=context)
self.button_cancel_send_note(cr, uid, ids, context=context)
return self.write(cr, uid, ids, {'state': 'cancel'}, context=context)
def button_done(self, cr, uid, ids, context=None):
self.button_done_send_note(cr, uid, ids, context=context)
return self.write(cr, uid, ids, {'state': 'done'}, context=context)
def check_registration_limits(self, cr, uid, ids, context=None):
@ -127,6 +136,7 @@ class event_event(osv.osv):
if isinstance(ids, (int, long)):
ids = [ids]
self.check_registration_limits(cr, uid, ids, context=context)
self.button_confirm_send_note(cr, uid, ids, context=context)
return self.confirm_event(cr, uid, ids, context=context)
def _get_register(self, cr, uid, ids, fields, args, context=None):
@ -256,13 +266,50 @@ class event_event(osv.osv):
'register_max': type_info.default_registration_max,
}
return {'value': dic}
# ----------------------------------------
# OpenChatter methods and notifications
# ----------------------------------------
def get_needaction_user_ids(self, cr, uid, ids, context=None):
result = dict.fromkeys(ids, [])
for obj in self.browse(cr, uid, ids, context=context):
if obj.state == 'draft' and obj.user_id:
result[obj.id] = [obj.user_id.id]
return result
def create_send_note(self, cr, uid, ids, context=None):
message = _("Event has been <b>created</b>.")
self.message_append_note(cr, uid, ids, body=message, context=context)
return True
def button_cancel_send_note(self, cr, uid, ids, context=None):
message = _("Event has been <b>cancelled</b>.")
self.message_append_note(cr, uid, ids, body=message, context=context)
return True
def button_draft_send_note(self, cr, uid, ids, context=None):
message = _("Event has been set to <b>draft</b>.")
self.message_append_note(cr, uid, ids, body=message, context=context)
return True
def button_done_send_note(self, cr, uid, ids, context=None):
message = _("Event has been <b>done</b>.")
self.message_append_note(cr, uid, ids, body=message, context=context)
return True
def button_confirm_send_note(self, cr, uid, ids, context=None):
message = _("Event has been <b>confirmed</b>.")
self.message_append_note(cr, uid, ids, body=message, context=context)
return True
event_event()
class event_registration(osv.osv):
"""Event Registration"""
_name= 'event.registration'
_description = __doc__
_inherit = ['mail.thread','res.partner']
_inherit = ['ir.needaction_mixin','mail.thread','res.partner']
_columns = {
'id': fields.integer('ID'),
'origin': fields.char('Source', size=124,readonly=True,help="Name of the sale order which create the registration"),
@ -293,12 +340,17 @@ class event_registration(osv.osv):
def do_draft(self, cr, uid, ids, context=None):
self.do_draft_send_note(cr, uid, ids, context=context)
return self.write(cr, uid, ids, {'state': 'draft'}, context=context)
def confirm_registration(self, cr, uid, ids, context=None):
self.message_append(cr, uid, ids,_('State set to open'),body_text= _('Open'))
return self.write(cr, uid, ids, {'state': 'open'}, context=context)
def create(self, cr, uid, vals, context=None):
obj_id = super(event_registration, self).create(cr, uid, vals, context)
self.create_send_note(cr, uid, [obj_id], context=context)
return obj_id
def registration_open(self, cr, uid, ids, context=None):
""" Open Registration
@ -395,6 +447,27 @@ class event_registration(osv.osv):
data.update(d['value'])
return {'value': data}
# ----------------------------------------
# OpenChatter methods and notifications
# ----------------------------------------
def get_needaction_user_ids(self, cr, uid, ids, context=None):
result = dict.fromkeys(ids, [])
for obj in self.browse(cr, uid, ids, context=context):
if obj.state == 'draft' and obj.user_id:
result[obj.id] = [obj.user_id.id]
return result
def create_send_note(self, cr, uid, ids, context=None):
message = _("Registration has been <b>created</b>.")
self.message_append_note(cr, uid, ids, body=message, context=context)
return True
def do_draft_send_note(self, cr, uid, ids, context=None):
message = _("Registration has been set as <b>draft</b>.")
self.message_append_note(cr, uid, ids, body=message, context=context)
return True
event_registration()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -51,16 +51,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Events" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Confirm Event" name="button_confirm" states="draft" type="object"/>
<button string="Event Ended" name="button_done" states="confirm" type="object"/>
<button string="Set To Draft" name="button_draft" states="cancel,done" type="object"/>
<button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/>
<div class="oe_right">
<field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,confirm,done"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
</header>
<sheet layout="manual">
@ -130,7 +127,10 @@
</field>
</page>
</notebook>
</sheet>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>
@ -153,10 +153,6 @@
<field name="main_speaker_id" groups="base.extended"/>
<field name="user_id"/>
<field name="state"/>
<button string="Confirm Event" help="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
<button string="Event Done" help="Event Done" name="button_done" states="confirm" type="object" icon="gtk-jump-to"/>
<button string="Cancel Event" help="Cancel Event" name="button_cancel" states="draft,confirm" type="object" icon="gtk-cancel"/>
<button string="Set To Draft" help="Set To Draft" name="button_draft" states="cancel,done" type="object" icon="gtk-convert"/>
</tree>
</field>
</record>
@ -346,10 +342,6 @@
<field name="user_id"/>
<field name="origin"/>
<field name="state"/>
<button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
<button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
<button name="button_reg_close" string="Attended" states="open" type="object" icon="gtk-apply"/>
<button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object" icon="gtk-convert"/>
</tree>
</field>
</record>
@ -360,16 +352,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="registration_open" string="Confirm" states="draft" type="object"/>
<button name="button_reg_close" string="Attended" states="open" type="object"/>
<button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object"/>
<button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object"/>
<div class="oe_right">
<field name="state" select="1" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" select="1" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/>
</header>
<sheet string="Registration" layout="auto">
<group col="6" colspan="4">
<field name="event_id" on_change="onchange_event(event_id, context)" domain="[('state','in',('draft','confirm'))]"/>
@ -414,7 +403,10 @@
</page>
</notebook>
</sheet>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>

View File

@ -0,0 +1,121 @@
# Swedish 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-06-04 09:58+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@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-06-05 04:54+0000\n"
"X-Generator: Launchpad (build 15353)\n"
#. module: google_base_account
#: field:res.users,gmail_user:0
msgid "Username"
msgstr "Användarnamn"
#. module: google_base_account
#: model:ir.actions.act_window,name:google_base_account.act_google_login_form
msgid "Google Login"
msgstr "Googleinloggning"
#. module: google_base_account
#: code:addons/google_base_account/wizard/google_login.py:29
#, python-format
msgid "Google Contacts Import Error!"
msgstr "Google kontaktimportfel!"
#. module: google_base_account
#: view:res.users:0
msgid " Synchronization "
msgstr " Synkronisering "
#. module: google_base_account
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr "Du kan inte ha två användare med samma användarid !"
#. module: google_base_account
#: code:addons/google_base_account/wizard/google_login.py:75
#, python-format
msgid "Error"
msgstr "Fel"
#. module: google_base_account
#: view:google.login:0
msgid "Google login"
msgstr "Googleinloggning"
#. module: google_base_account
#: model:ir.model,name:google_base_account.model_res_users
msgid "res.users"
msgstr "res.users"
#. module: google_base_account
#: field:google.login,password:0
msgid "Google Password"
msgstr "Google-lösenord"
#. module: google_base_account
#: view:google.login:0
msgid "_Cancel"
msgstr "_Avbryt"
#. module: google_base_account
#: view:res.users:0
msgid "Google Account"
msgstr "Google-konto"
#. module: google_base_account
#: field:google.login,user:0
msgid "Google Username"
msgstr "Google-användarnamn"
#. module: google_base_account
#: code:addons/google_base_account/wizard/google_login.py:29
#, python-format
msgid ""
"Please install gdata-python-client from http://code.google.com/p/gdata-"
"python-client/downloads/list"
msgstr ""
"Vänligen installera gdata-python-client från http://code.google.com/p/gdata-"
"python-client/downloads/list"
#. module: google_base_account
#: model:ir.model,name:google_base_account.model_google_login
msgid "Google Contact"
msgstr "Google-kontakt"
#. module: google_base_account
#: view:google.login:0
msgid "_Login"
msgstr "Logga _in"
#. module: google_base_account
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr "Detta bolag är inte tillåtet för den här användaren"
#. module: google_base_account
#: field:res.users,gmail_password:0
msgid "Password"
msgstr "Lösenord"
#. module: google_base_account
#: code:addons/google_base_account/wizard/google_login.py:75
#, python-format
msgid "Authentication fail check the user and password !"
msgstr "Autenticering misslyckades, kontrollera användarid och lösenord !"
#. module: google_base_account
#: view:google.login:0
msgid "ex: user@gmail.com"
msgstr "ex: user@gmail.com"

View File

@ -346,17 +346,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<span groups="base.group_user">
<button name="job_recruitement" string="In Recruitement" states="open" type="object"/>
<button name="job_open" string="In Position" states="old,recruit" type="object"/>
<button name="job_old" string="Mark as Old" states="open,recruit" type="object"/>
</span>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="recruit,open"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="recruit,open"/>
</header>
<sheet string="Job" layout="auto">
<group col="6" colspan="4">
<field name="name"/>

View File

@ -15,10 +15,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string ="Configure Human Resources" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<separator string="Additional Features" colspan="4"/>
<field name="module_hr_expense"/>

View File

@ -155,17 +155,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_plan_in_progress" string="Start Appraisal" states="draft" type="object"/>
<button name="button_final_validation" string="Validate Appraisal" states="wait" type="object"/>
<button name="button_done" string="Done" states="progress" type="object"/>
<button name="button_draft" string="Reset to Draft" states="cancel" type="object"/>
<button name="button_cancel" string="Cancel" states="draft,wait,progress" type="object"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,progress,wait,done" statusbar_colors='{"progress":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,progress,wait,done" statusbar_colors='{"progress":"blue"}'/>
</header>
<sheet string="Appraisal" layout="auto">
<group col="4" colspan="3">
<separator string="Appraisal Data" colspan="4"/>

View File

@ -35,8 +35,6 @@
<field name="currency_id"/>
<field name="amount"/>
<field name="state"/>
<button name="confirm" states="draft" string="Confirm" type="workflow" icon="gtk-apply"/>
<button name="refuse" states="confirm,draft,accepted" string="Refuse" type="workflow" icon="gtk-no" groups="base.group_hr_user"/>
</tree>
</field>
</record>
@ -66,17 +64,14 @@
<field name="model">hr.expense.expense</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="confirm" states="draft" string="Submit to Manager" type="workflow"/>
<button name="validate" states="confirm" string="Approve" type="workflow" groups="base.group_hr_user"/>
<button name="draft" states="confirm,cancelled" string="Set to Draft" type="workflow" groups="base.group_hr_user"/>
<button name="invoice" states="accepted" string="Invoice" type="object" groups="base.group_hr_user"/>
<button name="refuse" states="confirm,accepted" string="Refuse" type="workflow" groups="base.group_hr_user" />
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm,accepted" statusbar_colors='{"confirm":"blue","cancelled":"red"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,accepted" statusbar_colors='{"confirm":"blue","cancelled":"red"}'/>
</header>
<sheet string="Expenses Sheet" layout="auto">
<group colspan="4" col="6">
<field name="employee_id" on_change="onchange_employee_id(employee_id)"/>

View File

@ -64,17 +64,14 @@
<field name="priority">1</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Submit to Manager" name="confirm" states="draft" type="workflow"/>
<button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user"/>
<button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user"/>
<button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" groups="base.group_hr_user,base.group_hr_manager"/>
<button string="Reset to New" name="set_to_draft" states="refuse,validate" type="object" groups="base.group_hr_user"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
</header>
<sheet string="Leave Request" layout="auto">
<group col="8" colspan="4">
<field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/>
@ -103,7 +100,7 @@
</notebook>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
@ -116,17 +113,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Submit to Manager" name="confirm" states="draft" type="workflow"/>
<button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user"/>
<button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user"/>
<button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" groups="base.group_hr_user"/>
<button string="Reset to New" name="set_to_draft" states="cancel,validate,refuse" type="object" groups="base.group_hr_user"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
</header>
<sheet string="Allocation Request" layout="auto">
<group col="8" colspan="4" class="oe_form_header">
<field name="name"/>
@ -153,7 +147,7 @@
</notebook>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
@ -177,8 +171,6 @@
<field name="user_id" invisible="1"/>
<!--field name="type"/-->
<field name="state"/>
<button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user,base.group_hr_manager"/>
<button string="Validate" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user,base.group_hr_manager"/>
</tree>
</field>
</record>
@ -234,9 +226,6 @@
<field name="manager_id" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="state"/>
<button string="Submit to Manager" name="confirm" states="draft" type="workflow" icon="gtk-yes"/>
<button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
<button string="Refuse" name="refuse" states="confirm" type="workflow" icon="gtk-no" groups="base.group_hr_user"/>
</tree>
</field>
</record>
@ -262,8 +251,6 @@
<field name="manager_id" invisible="1"/>
<field name="user_id" invisible="1"/>
<!--field name="type"/-->
<button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
<button string="Validate" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
</tree>
</field>
</record>

View File

@ -261,17 +261,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Confirm" name="hr_verify_sheet" states="draft"/>
<button string="Refund" name="refund_sheet" states="confirm,done" type='object'/>
<button string="Set to Draft" name="draft" states="cancel"/>
<button string="Compute Sheet" name="compute_sheet" type="object" states="draft"/>
<button string="Cancel" name="cancel_sheet" states="draft,hr_check,confirm,verify"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm"/>
</header>
<sheet string="Payslip" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="employee_id" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/>
@ -725,15 +722,12 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="close_payslip_run" type="object" string="Close" states="draft"/>
<button name="%(action_hr_payslip_by_employees)d" type="action" states="draft" string="Generate Payslips" />
<button string="Set to Draft" name="draft_payslip_run" type="object" states="close"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar"/>
</header>
<sheet string="Payslips Batches" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="name" colspan="4"/>

View File

@ -0,0 +1,140 @@
# Latvian 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-06-01 07:35+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Latvian <lv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: hr_payroll_account
#: field:hr.payslip,move_id:0
msgid "Accounting Entry"
msgstr ""
#. module: hr_payroll_account
#: field:hr.salary.rule,account_tax_id:0
msgid "Tax Code"
msgstr ""
#. module: hr_payroll_account
#: field:hr.payslip,journal_id:0
#: field:hr.payslip.run,journal_id:0
msgid "Expense Journal"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:157
#: code:addons/hr_payroll_account/hr_payroll_account.py:173
#, python-format
msgid "Adjustment Entry"
msgstr ""
#. module: hr_payroll_account
#: field:hr.contract,analytic_account_id:0
#: field:hr.salary.rule,analytic_account_id:0
msgid "Analytic Account"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_salary_rule
msgid "hr.salary.rule"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run
msgid "Payslip Batches"
msgstr ""
#. module: hr_payroll_account
#: field:hr.contract,journal_id:0
msgid "Salary Journal"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_payslip
msgid "Pay Slip"
msgstr "Algas Lapa"
#. module: hr_payroll_account
#: constraint:hr.payslip:0
msgid "Payslip 'Date From' must be before 'Date To'."
msgstr ""
#. module: hr_payroll_account
#: help:hr.payslip,period_id:0
msgid "Keep empty to use the period of the validation(Payslip) date."
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
#, python-format
msgid ""
"The Expense Journal \"%s\" has not properly configured the Debit Account!"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
#, python-format
msgid ""
"The Expense Journal \"%s\" has not properly configured the Credit Account!"
msgstr ""
#. module: hr_payroll_account
#: field:hr.salary.rule,account_debit:0
msgid "Debit Account"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:102
#, python-format
msgid "Payslip of %s"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_contract
msgid "Contract"
msgstr ""
#. module: hr_payroll_account
#: constraint:hr.contract:0
msgid "Error! contract start-date must be lower then contract end-date."
msgstr ""
#. module: hr_payroll_account
#: field:hr.payslip,period_id:0
msgid "Force Period"
msgstr ""
#. module: hr_payroll_account
#: field:hr.salary.rule,account_credit:0
msgid "Credit Account"
msgstr ""
#. module: hr_payroll_account
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees
msgid "Generate payslips for all selected employees"
msgstr ""
#. module: hr_payroll_account
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
#, python-format
msgid "Configuration Error!"
msgstr ""
#. module: hr_payroll_account
#: view:hr.contract:0
#: view:hr.salary.rule:0
msgid "Accounting"
msgstr ""

View File

@ -182,7 +182,6 @@ class hr_applicant(base_stage, osv.Model):
_columns = {
'name': fields.char('Name', size=128, required=True),
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
'description': fields.text('Description'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),

View File

@ -50,8 +50,6 @@
<field name="partner_phone"/>
<field name="job_id"/>
<field name="stage_id"/>
<button name="stage_previous" string="Previous" states="open,pending" type="object" icon="gtk-go-back"/>
<button name="stage_next" string="Next" states="open,pending" type="object" icon="gtk-go-forward"/>
<field name="title_action" invisible="context.get('invisible_next_action', True)"/>
<field name="date_action" invisible="context.get('invisible_next_date', True)"/>
<field name="source_id" invisible="1"/>
@ -63,8 +61,6 @@
<field name="department_id" invisible="context.get('invisible_department', True)"/>
<field name="user_id"/>
<field name="state" groups="base.group_no_one"/>
<button name="case_open" string="In Progress" states="draft,pending" type="object" icon="gtk-go-forward" groups="base.group_no_one"/>
<button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause" groups="base.group_no_one"/>
</tree>
</field>
</record>
@ -75,7 +71,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="%(action_hr_recruitment_hired_employee)d" string="Hire" type="action"
states="open,pending"/>
<button name="case_open" string="Open" type="object"
@ -90,11 +86,8 @@
states="open" icon="gtk-go-back"/>
<button name="stage_next" string="Next" type="object"
states="open" icon="gtk-go-forward"/>
<div class="oe_right">
<field name="stage_id" nolabel="1" widget="statusbar"/>
</div>
<div class="oe_clear"/>
</div>
<field name="stage_id" widget="statusbar"/>
</header>
<sheet string="Jobs - Recruitment Form" layout="auto">
<group colspan="4" col="4">
<field name="name" string="Subject"/>
@ -159,7 +152,7 @@
</notebook>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>

View File

@ -23,17 +23,14 @@
</group>
</group>
<xpath expr="/form/sheet" position='before'>
<div class="oe_form_topbar">
<header>
<button name="set_pending" string="Pending" type="object" states="open"/>
<button name="set_close" string="Close" type="object" states="open,pending"/>
<button name="set_open" string="Re-open project" type="object" states="pending,cancelled,close,draft"/>
<button name="set_cancel" string="Cancel" type="object" states="open,pending"/>
<div class="oe_right">
<field name="state" readonly="1" widget="statusbar" nolabel="1"
<field name="state" readonly="1" widget="statusbar"
statusbar_visible="open,pending,close" statusbar_colors='{"pending":"red", "template":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
</header>
</xpath>
</field>
</record>

View File

@ -61,16 +61,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_confirm" states="draft" string="Submited to Manager" type="object"/>
<button name="done" states="confirm" string="Approve" type="workflow" groups="base.group_hr_user"/>
<button name="action_set_to_draft" states="done" string="Set to Draft" type="object"/>
<button name="cancel" states="confirm" string="Refuse" type="workflow" groups="base.group_hr_user"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="new,confirm,done"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="new,confirm,done"/>
</header>
<sheet string="Timesheet" layout="auto">
<group colspan="4" col="6" class="oe_form_header">
<field name="employee_id" on_change="onchange_employee_id(employee_id)"/>

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: idea

View File

@ -183,15 +183,12 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="idea_open" string="Open" states="draft"/>
<button name="idea_close" string="Accept" states="open"/>
<button name="idea_cancel" string="Refuse" states="open" />
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,close"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,open,close"/>
</header>
<sheet string="New Idea" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="name" select="1" />
@ -267,10 +264,6 @@
<field name="count_comments"/>
<field name="count_votes"/>
<field name="state"/>
<button name="idea_open" string="Open" states="draft" icon="terp-gtk-go-back-rtl"/>
<button name="%(idea.action_idea_post_vote)d" icon="gtk-execute" type="action" states="open" string="Submit Vote"/>
<button name="idea_close" string="Accept" states="open" icon="gtk-jump-to"/>
<button name="idea_cancel" string="Refuse" states="open" icon="gtk-cancel"/>
</tree>
</field>
</record>

View File

@ -0,0 +1,103 @@
# Swedish 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-06-04 10:28+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@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-06-05 04:54+0000\n"
"X-Generator: Launchpad (build 15353)\n"
#. module: import_base
#: code:addons/import_base/import_framework.py:434
#, python-format
msgid "Import failed due to an unexpected error"
msgstr "Import misslyckades på grund av oväntat fel"
#. module: import_base
#: code:addons/import_base/import_framework.py:461
#, python-format
msgid "started at %s and finished at %s \n"
msgstr "Startade på %s och avslutade på %s \n"
#. module: import_base
#: code:addons/import_base/import_framework.py:448
#, python-format
msgid "Import of your data finished at %s"
msgstr "Importen av dina data avslutades på %s"
#. module: import_base
#: code:addons/import_base/import_framework.py:463
#, python-format
msgid ""
"but failed, in consequence no data were imported to keep database "
"consistency \n"
" error : \n"
msgstr ""
"men misslyckades, till följd att inga data importerades för att hålla "
"databasen konsistent\n"
"  fel: \n"
#. module: import_base
#: code:addons/import_base/import_framework.py:477
#, python-format
msgid ""
"The import of data \n"
" instance name : %s \n"
msgstr ""
#. module: import_base
#: code:addons/import_base/import_framework.py:470
#, python-format
msgid "%s has been successfully imported from %s %s, %s \n"
msgstr ""
#. module: import_base
#: code:addons/import_base/import_framework.py:447
#, python-format
msgid "Data Import failed at %s due to an unexpected error"
msgstr ""
#. module: import_base
#: code:addons/import_base/import_framework.py:436
#, python-format
msgid "Import finished, notification email sended"
msgstr ""
#. module: import_base
#: code:addons/import_base/import_framework.py:190
#, python-format
msgid "%s is not a valid model name"
msgstr ""
#. module: import_base
#: model:ir.ui.menu,name:import_base.menu_import_crm
msgid "Import"
msgstr "Import"
#. module: import_base
#: code:addons/import_base/import_framework.py:467
#, python-format
msgid "with no warning"
msgstr "utan varning"
#. module: import_base
#: code:addons/import_base/import_framework.py:469
#, python-format
msgid "with warning : %s"
msgstr "med varning: %s"
#. module: import_base
#: code:addons/import_base/import_framework.py:191
#, python-format
msgid " fields imported : "
msgstr " importerade fält: "

View File

@ -7,10 +7,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Configure Knowledge" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<separator string="Wiki" colspan="4"/>
<field name="module_wiki_faq"/>

View File

@ -24,14 +24,11 @@
<field name="model">lunch.order</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="%(action_lunch_order_confirm)d" string="Confirm Order" type="action" attrs="{'invisible':[('state','=','confirmed')]}"/>
<button name="%(action_lunch_order_cancel)d" string="Cancel Order" type="action"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirmed"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed"/>
</header>
<sheet string="Order" layout="auto">
<field name="user_id" select="1"/>
<field name="date" select="1"/>
@ -60,16 +57,6 @@
<field name="category"/>
<field name="price" sum="Total price"/>
<field name="state"/>
<button colspan="1"
name="%(action_lunch_order_cancel)d"
string="Cancel Order"
type="action" states="confirmed"
icon="gtk-cancel" />
<button colspan="1"
name="%(action_lunch_order_confirm)d"
string="Confirm Order"
type="action" states="draft"
icon="terp-gtk-go-back-rtl" />
</tree>
</field>
</record>
@ -340,7 +327,7 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Box Amount by User">
<field name="date" invisible="1"/>
<field name="date" invisible="1"/>
<field name="year" invisible="1"/>
<field name="day" invisible="1"/>
<field name="month" invisible="1"/>

View File

@ -9,3 +9,4 @@ Mail Module documentation topics
mail_thread
mail_openchatter_howto
mail_needaction_howto
mail_partner

View File

@ -38,7 +38,7 @@ Make your module inheriting from the ``mail.thread`` class.
# inherit from mail.thread allows the use of OpenChatter
_inherit = ['mail.thread']
Use the thread viewer widget inside your form view by using the ThreadView widget on the message_ids_social field inherited from mail.thread.
Use the thread viewer widget inside your form view by using the ThreadView widget on the message_ids field inherited from mail.thread.
::
@ -50,7 +50,7 @@ Use the thread viewer widget inside your form view by using the ThreadView widge
<field name="arch" type="xml">
<form>
[...]
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</form>
</field>
</record>

View File

@ -0,0 +1,10 @@
What is shown
==============
- for every module which are related to partner show apporopriate message in the partner view like opportunities, sale orders and invoices.
How it is done
===============
- _inherit = 'mail.thread'
- Override def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[], context=None) search by the partner

View File

@ -69,7 +69,8 @@
<label string="This group is visible by non members" colspan="2"/>
</group>
</group>
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"
options='{"thread_level": 1}'/>
</form>
</field>
</record>

View File

@ -61,29 +61,29 @@ class mail_thread(osv.osv):
'''
_name = 'mail.thread'
_description = 'Email Thread'
def _get_message_ids(self, cr, uid, ids, name, arg, context=None):
res = {}
for id in ids:
res[id] = self.message_load_ids(cr, uid, [id], context=context)
return res
# OpenChatter: message_ids_social is a dummy field that should not be used
# OpenChatter: message_ids is a dummy field that should not be used
_columns = {
'message_ids_social': fields.function(_get_message_ids, method=True,
'message_ids': fields.function(_get_message_ids, method=True,
type='one2many', obj='mail.message', string='Temp messages', _fields_id = 'res_id'),
}
#------------------------------------------------------
# Automatic subscription when creating/reading
#------------------------------------------------------
def create(self, cr, uid, vals, context=None):
"""Automatically subscribe the creator"""
thread_id = super(mail_thread, self).create(cr, uid, vals, context=context);
self.message_subscribe(cr, uid, [thread_id], [uid], context=context)
return thread_id;
def write(self, cr, uid, ids, vals, context=None):
"""Automatically subscribe the writer"""
if isinstance(ids, (int, long)):
@ -92,7 +92,7 @@ class mail_thread(osv.osv):
if write_res:
self.message_subscribe(cr, uid, ids, [uid], context=context)
return write_res;
def unlink(self, cr, uid, ids, context=None):
"""Override unlink, to automatically delete
- subscriptions
@ -111,13 +111,13 @@ class mail_thread(osv.osv):
# delete notifications
msg_to_del_ids = msg_obj.search(cr, uid, [('model', '=', self._name), ('res_id', 'in', ids)], context=context)
msg_obj.unlink(cr, uid, msg_to_del_ids, context=context)
return super(mail_thread, self).unlink(cr, uid, ids, context=context)
#------------------------------------------------------
# Generic message api
#------------------------------------------------------
def message_create(self, cr, uid, thread_id, vals, context=None):
"""OpenSocial: wrapper of mail.message create method
- creates the mail.message
@ -131,15 +131,15 @@ class mail_thread(osv.osv):
notification_obj = self.pool.get('mail.notification')
res_users_obj = self.pool.get('res.users')
body = vals.get('body_html', '') if vals.get('subtype', 'plain') == 'html' else vals.get('body_text', '')
# automatically subscribe the writer of the message
if vals['user_id']:
self.message_subscribe(cr, uid, [thread_id], [vals['user_id']], context=context)
# get users that will get a notification pushed
user_to_push_ids = self.message_create_get_notification_user_ids(cr, uid, [thread_id], vals, context=context)
user_to_push_from_parse_ids = self.message_parse_users(cr, uid, [thread_id], body, context=context)
# set email_from and email_to for comments and notifications
if vals.get('type', False) and vals['type'] == 'comment' or vals['type'] == 'notification':
current_user = res_users_obj.browse(cr, uid, [uid], context=context)[0]
@ -159,24 +159,24 @@ class mail_thread(osv.osv):
if email_to:
vals['email_to'] = email_to
vals['state'] = 'outgoing'
# create message
msg_id = message_obj.create(cr, uid, vals, context=context)
# special: if install mode, do not push demo data
if context.get('install_mode', False):
return True
# push to users
for id in user_to_push_ids:
notification_obj.create(cr, uid, {'user_id': id, 'message_id': msg_id}, context=context)
return msg_id
def message_create_get_notification_user_ids(self, cr, uid, thread_ids, new_msg_vals, context=None):
if context is None:
context = {}
notif_user_ids = []
body = new_msg_vals.get('body_html', '') if new_msg_vals.get('subtype', 'plain') == 'html' else new_msg_vals.get('body_text', '')
for thread_id in thread_ids:
@ -193,7 +193,7 @@ class mail_thread(osv.osv):
parent_notif_ids = notif_obj.search(cr, uid, [('message_id', '=', new_msg_vals.get('parent_id'))], context=context)
parent_notifs = notif_obj.read(cr, uid, parent_notif_ids, context=context)
notif_user_ids += [parent_notif['user_id'][0] for parent_notif in parent_notifs]
# remove duplicate entries
notif_user_ids = list(set(notif_user_ids))
return notif_user_ids
@ -214,7 +214,7 @@ class mail_thread(osv.osv):
for model_name in self.pool.obj_list():
model = self.pool.get(model_name)
if 'mail.thread' in getattr(model, '_inherit', []):
ret_dict[model_name] = model._description
ret_dict[model_name] = model._description
return ret_dict
def message_append(self, cr, uid, threads, subject, body_text=None, body_html=None,
@ -259,7 +259,7 @@ class mail_thread(osv.osv):
to determine the model of the thread to
update (instead of the current model).
"""
if context is None:
if context is None:
context = {}
if attachments is None:
attachments = {}
@ -329,7 +329,7 @@ class mail_thread(osv.osv):
'headers': headers,
'reply_to': reply_to,
'original': original, })
new_msg_ids.append(self.message_create(cr, uid, thread.id, data, context=context))
return new_msg_ids
@ -390,7 +390,7 @@ class mail_thread(osv.osv):
if (cur_iter > max_iter):
_logger.warning("Possible infinite loop in _message_add_ancestor_ids. Note that this algorithm is intended to check for cycle in message graph.")
return child_ids
def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[], context=None):
""" OpenChatter feature: return thread messages ids. It searches in
mail.messages where res_id = ids, (res_)model = current model.
@ -408,13 +408,15 @@ class mail_thread(osv.osv):
limit=limit, offset=offset, context=context)
if (ascent): msg_ids = self._message_add_ancestor_ids(cr, uid, ids, msg_ids, root_ids, context=context)
return msg_ids
def message_load(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[], context=None):
""" OpenChatter feature: return thread messages
"""
msg_ids = self.message_load_ids(cr, uid, ids, limit, offset, domain, ascent, root_ids, context=context)
return self.pool.get('mail.message').read(cr, uid, msg_ids, context=context)
msgs = self.pool.get('mail.message').read(cr, uid, msg_ids, context=context)
msgs = sorted(msgs, key=lambda d: (-d['id']))
return msgs
def get_pushed_messages(self, cr, uid, ids, limit=100, offset=0, msg_search_domain=[], ascent=False, root_ids=[], context=None):
""" OpenChatter: wall: get messages to display (=pushed notifications)
:param domain: domain to add to the search; especially child_of
@ -442,7 +444,7 @@ class mail_thread(osv.osv):
if (ascent): msg_ids = self._message_add_ancestor_ids(cr, uid, ids, msg_ids, root_ids, context=context)
msgs = msg_obj.read(cr, uid, msg_ids, context=context)
return msgs
#------------------------------------------------------
# Email specific
#------------------------------------------------------
@ -534,7 +536,7 @@ class mail_thread(osv.osv):
def message_new(self, cr, uid, msg_dict, custom_values=None, context=None):
"""Called by ``message_process`` when a new message is received
for a given thread model, if the message did not belong to
for a given thread model, if the message did not belong to
an existing thread.
The default behavior is to create a new record of the corresponding
model (based on some very basic info extracted from the message),
@ -660,7 +662,7 @@ class mail_thread(osv.osv):
The keys used in the returned dict are meant to map
to usual names for relationships towards a partner
and one of its addresses.
:param email: email address for which a partner
should be searched for.
:rtype: dict
@ -685,7 +687,7 @@ class mail_thread(osv.osv):
#------------------------------------------------------
# Note specific
#------------------------------------------------------
def message_broadcast(self, cr, uid, ids, subject=None, body=None, parent_id=False, type='notification', subtype='html', context=None):
if context is None:
context = {}
@ -710,11 +712,11 @@ class mail_thread(osv.osv):
for msg_id in msg_ids:
notification_obj.create(cr, uid, {'user_id': user.id, 'message_id': msg_id}, context=context)
return True
def log(self, cr, uid, id, message, secondary=False, context=None):
_logger.warning("log() is deprecated. Please use OpenChatter notification system instead of the res.log mechanism.")
self.message_append_note(cr, uid, [id], 'res.log', message, context=context)
def message_append_note(self, cr, uid, ids, subject=None, body=None, parent_id=False, type='notification', subtype='html', context=None):
if subject is None:
if type == 'notification':
@ -730,29 +732,29 @@ class mail_thread(osv.osv):
body_html = body
body_text = body
return self.message_append(cr, uid, ids, subject, body_html=body_html, body_text=body_text, parent_id=parent_id, type=type, subtype=subtype, context=context)
#------------------------------------------------------
# Subscription mechanism
#------------------------------------------------------
def message_get_subscribers_ids(self, cr, uid, ids, context=None):
subscr_obj = self.pool.get('mail.subscription')
subscr_ids = subscr_obj.search(cr, uid, ['&', ('res_model', '=', self._name), ('res_id', 'in', ids)], context=context)
subs = subscr_obj.read(cr, uid, subscr_ids, context=context)
return [sub['user_id'][0] for sub in subs]
def message_get_subscribers(self, cr, uid, ids, context=None):
user_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context)
users = self.pool.get('res.users').read(cr, uid, user_ids, fields=['id', 'name', 'avatar'], context=context)
return users
def message_is_subscriber(self, cr, uid, ids, user_id = None, context=None):
users = self.message_get_subscribers(cr, uid, ids, context=context)
sub_user_id = uid if user_id is None else user_id
if sub_user_id in [user['id'] for user in users]:
return True
return False
def message_subscribe(self, cr, uid, ids, user_ids = None, context=None):
subscription_obj = self.pool.get('mail.subscription')
to_subscribe_uids = [uid] if user_ids is None else user_ids
@ -776,7 +778,7 @@ class mail_thread(osv.osv):
#------------------------------------------------------
# Notification API
#------------------------------------------------------
def message_remove_pushed_notifications(self, cr, uid, ids, msg_ids, remove_childs=True, context=None):
if context is None:
context = {}

View File

@ -24,11 +24,32 @@ from osv import fields
class res_partner(osv.osv):
""" Inherits partner and adds CRM information in the partner form """
_inherit = 'res.partner'
_name = "res.partner"
_inherit = ['res.partner', 'mail.thread']
_columns = {
'emails': fields.one2many('mail.message', 'partner_id', 'Emails', readonly=True, domain=[('email_from','!=',False)]),
}
def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[False], context=None):
""" Override of message_load_ids
partner discussion page :
- messages posted on res.partner, partner_id = partner.id
- messages directly sent to partner
"""
msg_obj = self.pool.get('mail.message')
msg_ids = []
partner_ids=[]
for partner in self.browse(cr, uid, ids, context=context):
msg_ids += msg_obj.search(cr, uid, [ ('res_id', '=', partner.id), ('model', '=' ,self._name)] + domain,
limit=limit, offset=offset, context=context)
if self._name=='res.partner':
partner_ids=msg_obj.search(cr, uid, [ ('partner_id', 'in', ids)] + domain,
limit=limit, offset=offset, context=context)
if partner_ids :
msg_ids+= partner_ids
if (ascent): msg_ids = self._message_add_ancestor_ids(cr, uid, ids, msg_ids, root_ids, context=context)
return msg_ids
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -23,6 +23,10 @@
<page string="History" position="inside">
<field name="emails" colspan="4" nolabel="1"/>
</page>
<xpath expr="/form/notebook" position="after">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"
options='{"thread_level": 1}'/>
</xpath>
</field>
</record>

View File

@ -28,7 +28,7 @@
</field>
<xpath expr="/form/sheet" position="after">
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</xpath>
</data>

View File

@ -476,10 +476,12 @@ openerp.mail = function(session) {
// QWeb template to use when rendering the object
template: 'RecordThread',
init: function() {
init: function() {
this._super.apply(this, arguments);
this.see_subscribers = true;
this.thread = null;
this.params = this.get_definition_options();
this.params.thread_level = this.params.thread_level || 0;
// datasets
this.ds = new session.web.DataSet(this, this.view.model);
this.ds_users = new session.web.DataSet(this, 'res.users');
@ -520,12 +522,8 @@ openerp.mail = function(session) {
// create and render Thread widget
this.$element.find('div.oe_mail_recthread_left').empty();
if (this.thread) this.thread.destroy();
// hack: for groups and users
if (this.view.model == 'mail.group') thread_level = 1;
if (this.view.model == 'res.users') thread_level = 1;
else thread_level = 0;
this.thread = new mail.Thread(this, {'res_model': this.view.model, 'res_id': this.view.datarecord.id, 'uid': this.session.uid,
'thread_level': thread_level, 'show_post_comment': true, 'limit': 15});
'thread_level': this.params.thread_level, 'show_post_comment': true, 'limit': 15});
var thread_done = this.thread.appendTo(this.$element.find('div.oe_mail_recthread_left'));
return fetch_sub_done && thread_done;
},

View File

@ -7,10 +7,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Configure Marketing" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<separator string="Campaigns" colspan="4"/>
<field name="module_marketing_campaign"/>

View File

@ -16,16 +16,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="state_running_set" string="Run" states="draft"/>
<button name="state_done_set" string="Done" states="running"/>
<button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
<button name="state_cancel_set" string="Cancel" states="running"/>
<div class="oe_right">
<field name="state" readonly="1" widget="statusbar" nolabel="1" statusbar_visible="draft,running,done"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
</header>
<sheet string="Campaign" layout="auto">
<group colspan="4" col="6">
<group colspan="2" col="2">
@ -140,16 +137,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="state_running_set" string="Run" states="draft"/>
<button name="state_done_set" string="Close" states="running"/>
<button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
<button name="state_cancel_set" string="Cancel" states="running"/>
<div class="oe_right">
<field name="state" readonly="1" nolabel="1" widget="statusbar" statusbar_visible="draft,running,done"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
</header>
<sheet string="Segments" layout="auto">
<group colspan="2" col="2">
<separator string="Segment" colspan="4"/>
@ -189,7 +183,6 @@
<field name="campaign_id"/>
<field name="date_run"/>
<field name="sync_last_date"/>
<button string="Synchronize Manually" states="running" name="synchroniz" icon="terp-project" type="object"/>
<field name="state" />
</tree>
</field>
@ -365,15 +358,12 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Process" states="todo" name="process" type="object"/>
<button string="Reset" states="exception,cancelled" name="button_draft" type="object"/>
<button string="Cancel" states="todo,exception" name="button_cancel" type="object"/>
<div class="oe_right">
<field name="state" readonly="True" nolabel="1" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" readonly="True" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/>
</header>
<sheet string="Marketing Campaign Activities" layout="auto">
<group colspan="4" col="6">
<group colspan="2" col="2">

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:49+0000\n"
"PO-Revision-Date: 2012-05-31 06:17+0000\n"
"PO-Revision-Date: 2012-06-02 04:49+0000\n"
"Last-Translator: Akira Hiyama <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n"
"X-Launchpad-Export-Date: 2012-06-03 04:47+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: mrp
@ -387,9 +387,9 @@ msgid ""
"sales person creates a sales order, he can relate it to several properties "
"and OpenERP will automatically select the BoM to use according the needs."
msgstr ""
"同じ製品で異なった構築方法を持つ場合、OpenERPのプロパティは製品製造のための正しい部品表を選択するのに使用されます。それぞれの部品表には幾つかのプロ"
"パティを割り当てることができます。販売員が販売オーダーを作成した時、彼はそれを幾つかのプロパティに関連付けることができ、そして、OpenERPは要求によっ"
"て使用する部品表を自動的に選択します。"
"同じ製品で異なった構築方法を持つ場合、OpenERPの属性は製品製造のための正しい部品表を選択するのに使用されます。それぞれの部品表には幾つかの属性を割り"
"当てることができます。販売員が販売オーダーを作成した時、彼はそれを幾つかの属性に関連付けることができ、そして、OpenERPは要求によって使用する部品表を"
"自動的に選択します。"
#. module: mrp
#: help:mrp.production,picking_id:0
@ -460,7 +460,7 @@ msgstr "会社名は固有でなければいけません。"
msgid ""
"Define specific property groups that can be assigned to the properties of "
"your bill of materials."
msgstr "部品表のプロパティに割り当てることができる特定のプロパティグループを定義して下さい。"
msgstr "部品表の属性に割り当てることができる特定の属性グループを定義して下さい。"
#. module: mrp
#: help:mrp.workcenter,costs_cycle:0
@ -932,7 +932,7 @@ msgstr "時間数"
#: view:mrp.property:0
#: view:mrp.property.group:0
msgid "Property Group"
msgstr "プロパティグループ"
msgstr "属性グループ"
#. module: mrp
#: view:mrp.production:0
@ -1601,7 +1601,7 @@ msgstr "承認"
#. module: mrp
#: view:mrp.property.group:0
msgid "Properties categories"
msgstr "プロパティの分類"
msgstr "属性の分類"
#. module: mrp
#: help:mrp.production.workcenter.line,sequence:0
@ -2072,7 +2072,7 @@ msgstr "部品表"
#: view:procurement.order:0
#: field:procurement.order,property_ids:0
msgid "Properties"
msgstr "プロパティ"
msgstr "属性"
#. module: mrp
#: view:mrp.routing.workcenter:0
@ -2120,12 +2120,12 @@ msgstr "作業オーダー"
#. module: mrp
#: view:board.board:0
msgid "Procurements in Exception"
msgstr "例外の調達"
msgstr "調達の例外"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_minimumstockprocure0
msgid "'Minimum stock rule' material"
msgstr "材料の最在庫ルール"
msgstr "材料の最在庫ルール"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_price
@ -2190,7 +2190,7 @@ msgstr "次の生産オーダー"
#: model:ir.actions.act_window,name:mrp.mrp_property_group_action
#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action
msgid "Property Groups"
msgstr "プロパティグループ"
msgstr "属性グループ"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_procurestockableproduct0

View File

@ -632,7 +632,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_confirm" states="draft" string="Confirm Production"/>
<button name="button_produce" states="ready" string="Start Production"/>
<button name="%(act_mrp_product_produce)d" states="in_production" string="Produce" type="action"/>
@ -640,11 +640,8 @@
<button name="button_recreate" states="picking_except" string="Recreate Picking"/>
<button name="button_cancel" states="draft,ready,in_production,picking_except" string="Cancel"/>
<button name="action_cancel" type="object" states="confirmed" string="Cancel"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,ready,in_production,done" statusbar_colors='{"picking_except":"red","confirmed":"blue"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,ready,in_production,done" statusbar_colors='{"picking_except":"red","confirmed":"blue"}'/>
</header>
<sheet string="Manufacturing Orders" layout="auto">
<group colspan="4" col="7">
<field name="name" string="Reference"/>
@ -658,6 +655,8 @@
icon="terp-accessories-archiver+"
name="%(mrp.action_change_production_qty)d"
string="Change Qty" states="ready,confirmed" />
</group>
<group colspan="4" col="4">
<label string="" colspan="2"/>
<field name="product_uos_qty" groups="product.group_uos"/>
<field name="product_uos" groups="product.group_uos"/>
@ -791,7 +790,7 @@
</notebook>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>

View File

@ -43,7 +43,7 @@ class procurement_order(osv.osv):
cr.execute('update procurement_order set message=%s where id=%s', (_('No BoM defined for this product !'), procurement.id))
for (id, name) in self.name_get(cr, uid, procurement.id):
message = _("Procurement '%s' has an exception: 'No BoM defined for this product !'") % name
self.log(cr, uid, id, message)
self.message_append_note(cr, uid, [procurement.id], body=message, context=context)
return False
return True
@ -97,6 +97,7 @@ class procurement_order(osv.osv):
})
res[procurement.id] = produce_id
self.write(cr, uid, [procurement.id], {'state': 'running'})
self.running_send_note(cr, uid, ids, context=context)
bom_result = production_obj.action_compute(cr, uid,
[produce_id], properties=[x.id for x in procurement.property_ids])
wf_service.trg_validate(uid, 'mrp.production', produce_id, 'button_confirm', cr)

View File

@ -7,10 +7,10 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Configure Manufacturing" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<separator string="Manufacturing Order" colspan="4"/>
<field name="module_mrp_operations"/>

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: mrp_operations

View File

@ -57,10 +57,6 @@
<field name="cycle"/>
<field name="hour"/>
<field name="state" />
<button name="button_start_working" string="Start" states="draft" icon="terp-gtk-jump-to-ltr" help="Start Working"/>
<button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause" help="Resume Work Order"/>
<button name="button_pause" string="Pending" states="startworking" icon="gtk-media-pause" help="Pause Work Order"/>
<button name="button_done" string="Finished" states="startworking" icon="terp-check" help="Finish Order"/>
</tree>
</field>
</record>
@ -72,18 +68,15 @@
<field name="inherit_id" eval="False"/>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_start_working" string="Start" states="draft"/>
<button name="button_resume" string="Resume" states="pause"/>
<button name="button_done" string="Finished" states="startworking"/>
<button name="button_pause" string="Pending" states="startworking"/>
<button name="button_draft" string="Set Draft" states="cancel"/>
<button name="button_cancel" string="Cancel" states="draft,startworking"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,startworking"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,startworking"/>
</header>
<sheet string="Work Orders" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field colspan="4" name="name" select="1"/>
@ -121,7 +114,9 @@
</page>
</notebook>
</sheet>
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<div class="oe_form_bottom">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: mrp_repair

View File

@ -28,7 +28,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="repair_confirm" states="draft" string="Confirm Repair"/>
<button name="repair_ready" states="confirmed" string="Start Repair"/>
<button name="action_repair_start" states="ready" string="Start Repair"/>
@ -40,11 +40,8 @@
<button name="%(action_cancel_repair)d" states="confirmed,2binvoiced,ready,under_repair" string="Cancel Repair" type="action"/>
<button name="%(action_cancel_repair)d" states="invoice_except" string="Cancel Repair" type="action"/>
<button name="cancel" states="draft" string="Cancel Repair"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirmed,ready" />
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,ready" />
</header>
<sheet string="Repairs order" layout="auto">
<group col="6" colspan="4" class="oe_form_header">
<field name="name"/>

23
addons/plugin/i18n/sv.po Normal file
View File

@ -0,0 +1,23 @@
# Swedish 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-06-04 15:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@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-06-05 04:54+0000\n"
"X-Generator: Launchpad (build 15353)\n"
#. module: plugin
#: model:ir.model,name:plugin.model_plugin_handler
msgid "plugin.handler"
msgstr "plugin.handler"

File diff suppressed because it is too large Load Diff

View File

@ -17,16 +17,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="%(action_pos_payment)d" string="Payment" type="action" states="draft"/>
<button name="%(action_report_pos_receipt)d" string="Reprint" type="action" states="paid,done,invoiced"/>
<button name="refund" string="Return Products" type="object"
attrs="{'invisible':[('state','=','draft')]}"/>
<div class="oe_right">
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/>
</header>
<sheet string="PoS Orders" layout="auto">
<group col="7" colspan="4" class="oe_form_header">
<field name="name"/>

407
addons/portal/i18n/ja.po Normal file
View File

@ -0,0 +1,407 @@
# Japanese 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-06-01 23:22+0000\n"
"Last-Translator: Akira Hiyama <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: portal
#: code:addons/portal/wizard/share_wizard.py:51
#, python-format
msgid "Please select at least one user to share with"
msgstr "共有するためには少なくとも1ユーザと共有して下さい。"
#. module: portal
#: code:addons/portal/wizard/share_wizard.py:55
#, python-format
msgid "Please select at least one group to share with"
msgstr "共有するためには少なくとも1グループと共有して下さい。"
#. module: portal
#: field:res.portal,group_id:0
msgid "Group"
msgstr "グループ"
#. module: portal
#: view:share.wizard:0
#: field:share.wizard,group_ids:0
msgid "Existing groups"
msgstr "既存のグループ"
#. module: portal
#: model:ir.model,name:portal.model_res_portal_wizard_user
msgid "Portal User Config"
msgstr "ポータルユーザ設定"
#. module: portal
#: view:res.portal.wizard.user:0
msgid "Portal User"
msgstr "ポータルユーザ"
#. module: portal
#: model:res.groups,comment:portal.group_portal_manager
msgid ""
"Portal managers have access to the portal definitions, and can easily "
"configure the users, access rights and menus of portal users."
msgstr "ポータルマネジャはポータル定義へアクセスして、ユーザ、アクセス権、ユーザのポータルメニューの設定を簡単にできます。"
#. module: portal
#: help:res.portal,override_menu:0
msgid "Enable this option to override the Menu Action of portal users"
msgstr "ポータルユーザのメニューアクションを無効にするためにはこのオプションを有効にして下さい。"
#. module: portal
#: field:res.portal.wizard.user,user_email:0
msgid "E-mail"
msgstr "Eメール"
#. module: portal
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr "選択した会社は、このユーザに許された会社ではありません。"
#. module: portal
#: view:res.portal:0
#: field:res.portal,widget_ids:0
msgid "Widgets"
msgstr "ウィジェット"
#. module: portal
#: view:res.portal.wizard:0
msgid "Send Invitations"
msgstr "招待の送信"
#. module: portal
#: view:res.portal:0
msgid "Widgets Assigned to Users"
msgstr "ユーザ割当ウィジット"
#. module: portal
#: help:res.portal,url:0
msgid "The url where portal users can connect to the server"
msgstr "ポータルユーザがサーバに接続できるURL"
#. module: portal
#: model:res.groups,comment:portal.group_portal_officer
msgid "Portal officers can create new portal users with the portal wizard."
msgstr "ポータル役員はポータルウィザードを使って新しいポータルユーザを作成できます。"
#. module: portal
#: help:res.portal.wizard,message:0
msgid "This text is included in the welcome email sent to the users"
msgstr "このテキストはユーザに送信される歓迎Eメールに含まれます。"
#. module: portal
#: help:res.portal,menu_action_id:0
msgid "If set, replaces the standard menu for the portal's users"
msgstr "セットした場合、ポータルユーザのための標準メニューを置き換えます。"
#. module: portal
#: field:res.portal.wizard.user,lang:0
msgid "Language"
msgstr "言語"
#. module: portal
#: view:res.portal:0
msgid "Portal Name"
msgstr "ポータル名"
#. module: portal
#: view:res.portal.wizard.user:0
msgid "Portal Users"
msgstr "ポータルユーザ"
#. module: portal
#: field:res.portal,override_menu:0
msgid "Override Menu Action of Users"
msgstr "ユーザのメニューアクションの無効化"
#. module: portal
#: field:res.portal,menu_action_id:0
msgid "Menu Action"
msgstr "メニューアクション"
#. module: portal
#: field:res.portal.wizard.user,name:0
msgid "User Name"
msgstr "ユーザ名"
#. module: portal
#: help:res.portal,group_id:0
msgid "The group corresponding to this portal"
msgstr "このポータルに対応するグループ"
#. module: portal
#: model:ir.model,name:portal.model_res_portal_widget
msgid "Portal Widgets"
msgstr "ポータルウィジット"
#. module: portal
#: model:ir.model,name:portal.model_res_portal
#: model:ir.module.category,name:portal.module_category_portal
#: view:res.portal:0
#: field:res.portal.widget,portal_id:0
#: field:res.portal.wizard,portal_id:0
msgid "Portal"
msgstr "ポータル"
#. module: portal
#: code:addons/portal/wizard/portal_wizard.py:35
#, python-format
msgid "Your OpenERP account at %(company)s"
msgstr "%(company)s 上のあなたのOpenERPアカウント"
#. module: portal
#: code:addons/portal/portal.py:107
#: code:addons/portal/portal.py:184
#, python-format
msgid "%s Menu"
msgstr "%s メニュー"
#. module: portal
#: help:res.portal.wizard,portal_id:0
msgid "The portal in which new users must be added"
msgstr "新しいユーザを追加すべきポータル"
#. module: portal
#: model:ir.model,name:portal.model_res_portal_wizard
msgid "Portal Wizard"
msgstr "ポータルウィザード"
#. module: portal
#: help:res.portal,widget_ids:0
msgid "Widgets assigned to portal users"
msgstr "ポータルユーザ割当ウィザード"
#. module: portal
#: code:addons/portal/wizard/portal_wizard.py:163
#, python-format
msgid "(missing url)"
msgstr "不足しているURL"
#. module: portal
#: view:share.wizard:0
#: field:share.wizard,user_ids:0
msgid "Existing users"
msgstr "既存ユーザ"
#. module: portal
#: field:res.portal.wizard.user,wizard_id:0
msgid "Wizard"
msgstr "ウィザード"
#. module: portal
#: help:res.portal.wizard.user,user_email:0
msgid ""
"Will be used as user login. Also necessary to send the account information "
"to new users"
msgstr "ユーザログインとして使用されます。新しいユーザへのアカウント情報を送信するためにも必要です。"
#. module: portal
#: field:res.portal,parent_menu_id:0
msgid "Parent Menu"
msgstr "親メニュー"
#. module: portal
#: field:res.portal,url:0
msgid "URL"
msgstr "URL"
#. module: portal
#: field:res.portal.widget,widget_id:0
msgid "Widget"
msgstr "ウィジット"
#. module: portal
#: help:res.portal.wizard.user,lang:0
msgid "The language for the user's user interface"
msgstr "ユーザのユーザインタフェースのための言語"
#. module: portal
#: view:res.portal.wizard:0
msgid "Cancel"
msgstr "キャンセル"
#. module: portal
#: view:res.portal:0
msgid "Website"
msgstr "Webサイト"
#. module: portal
#: view:res.portal:0
msgid "Create Parent Menu"
msgstr "親メニュー作成"
#. module: portal
#: view:res.portal.wizard:0
msgid ""
"The following text will be included in the welcome email sent to users."
msgstr "次のテキストはユーザに送信する歓迎Eメールに含まれます。"
#. module: portal
#: code:addons/portal/wizard/portal_wizard.py:135
#, python-format
msgid "Email required"
msgstr "Eメールは必須"
#. module: portal
#: model:ir.model,name:portal.model_res_users
msgid "res.users"
msgstr ""
#. module: portal
#: constraint:res.portal.wizard.user:0
msgid "Invalid email address"
msgstr "無効なEメールアドレスです。"
#. module: portal
#: code:addons/portal/wizard/portal_wizard.py:136
#, python-format
msgid ""
"You must have an email address in your User Preferences to send emails."
msgstr "Eメール送信のためのユーザ設定の中にEメールアドレスを持つ必要があります。"
#. module: portal
#: model:ir.model,name:portal.model_ir_ui_menu
msgid "ir.ui.menu"
msgstr ""
#. module: portal
#: view:res.portal:0
#: view:res.portal.wizard:0
#: field:res.portal.wizard,user_ids:0
msgid "Users"
msgstr "ユーザ"
#. module: portal
#: model:ir.actions.act_window,name:portal.portal_list_action
#: model:ir.ui.menu,name:portal.portal_list_menu
#: model:ir.ui.menu,name:portal.portal_menu
#: view:res.portal:0
msgid "Portals"
msgstr "ポータル"
#. module: portal
#: help:res.portal,parent_menu_id:0
msgid "The menu action opens the submenus of this menu item"
msgstr "メニューアクションはこのメニュー項目のサブメニューを開きます。"
#. module: portal
#: field:res.portal.widget,sequence:0
msgid "Sequence"
msgstr "順序"
#. module: portal
#: field:res.users,partner_id:0
msgid "Related Partner"
msgstr "関連パートナ"
#. module: portal
#: view:res.portal:0
msgid "Portal Menu"
msgstr "ポータルメニュー"
#. module: portal
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr "同じログインでは2つのユーザを持てません。"
#. module: portal
#: view:res.portal.wizard:0
#: field:res.portal.wizard,message:0
msgid "Invitation message"
msgstr "招待メッセージ"
#. module: portal
#: code:addons/portal/wizard/portal_wizard.py:36
#, python-format
msgid ""
"Dear %(name)s,\n"
"\n"
"You have been created an OpenERP account at %(url)s.\n"
"\n"
"Your login account data is:\n"
"Database: %(db)s\n"
"User: %(login)s\n"
"Password: %(password)s\n"
"\n"
"%(message)s\n"
"\n"
"--\n"
"OpenERP - Open Source Business Applications\n"
"http://www.openerp.com\n"
msgstr ""
"%(name)s 様、\n"
"\n"
"あなたのOpenERPアカウントは作成されました。%(url)s\n"
"\n"
"あなたのログイン情報は次のとおりです:\n"
"データベース:%(db)s\n"
"ユーザ:%(login)s\n"
"パスワード:%(password)s\n"
"\n"
"%(message)s\n"
"\n"
"--\n"
"OpenERP - Open Source Business Applications\n"
"http://www.openerp.com\n"
#. module: portal
#: model:res.groups,name:portal.group_portal_manager
msgid "Manager"
msgstr "マネジャ"
#. module: portal
#: help:res.portal.wizard.user,name:0
msgid "The user's real name"
msgstr "ユーザの本名"
#. module: portal
#: model:ir.actions.act_window,name:portal.address_wizard_action
#: model:ir.actions.act_window,name:portal.partner_wizard_action
#: view:res.portal.wizard:0
msgid "Add Portal Access"
msgstr "ポータルアクセスの追加"
#. module: portal
#: field:res.portal.wizard.user,partner_id:0
msgid "Partner"
msgstr "パートナ"
#. module: portal
#: model:ir.actions.act_window,help:portal.portal_list_action
msgid ""
"\n"
"A portal helps defining specific views and rules for a group of users (the\n"
"portal group). A portal menu, widgets and specific groups may be assigned "
"to\n"
"the portal's users.\n"
" "
msgstr ""
"\n"
"ポータルはユーザのグループ(ポータルグループ)のために特定のビューやルールの\n"
"定義ができます。ポータルメニュー、ウィジット、特定のグループはポータルユーザに\n"
"割り当てることができます。\n"
" "
#. module: portal
#: model:ir.model,name:portal.model_share_wizard
msgid "Share Wizard"
msgstr "共有ウィザード"
#. module: portal
#: model:res.groups,name:portal.group_portal_officer
msgid "Officer"
msgstr "役員"

313
addons/process/i18n/ja.po Normal file
View File

@ -0,0 +1,313 @@
# Japanese 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-06-01 23:37+0000\n"
"Last-Translator: Akira Hiyama <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-03 04:47+0000\n"
"X-Generator: Launchpad (build 15342)\n"
#. module: process
#: model:ir.model,name:process.model_process_node
#: view:process.node:0
#: view:process.process:0
msgid "Process Node"
msgstr "処理ノード"
#. module: process
#: help:process.process,active:0
msgid ""
"If the active field is set to False, it will allow you to hide the process "
"without removing it."
msgstr "アクティブ項目にFalseを設定すると、処理を削除することなく非表示にできます。"
#. module: process
#: field:process.node,menu_id:0
msgid "Related Menu"
msgstr "関連メニュー"
#. module: process
#: field:process.transition,action_ids:0
msgid "Buttons"
msgstr "ボタン"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Group By..."
msgstr "グループ化…"
#. module: process
#: selection:process.node,kind:0
msgid "State"
msgstr "状態"
#. module: process
#: view:process.node:0
msgid "Kind Of Node"
msgstr "ノードの種類"
#. module: process
#: field:process.node,help_url:0
msgid "Help URL"
msgstr "ヘルプURL"
#. module: process
#: model:ir.actions.act_window,name:process.action_process_node_form
#: model:ir.ui.menu,name:process.menu_process_node_form
#: view:process.node:0
#: view:process.process:0
msgid "Process Nodes"
msgstr "処理ノード"
#. module: process
#: view:process.process:0
#: field:process.process,node_ids:0
msgid "Nodes"
msgstr "ノード"
#. module: process
#: view:process.node:0
#: field:process.node,condition_ids:0
#: view:process.process:0
msgid "Conditions"
msgstr "条件"
#. module: process
#: view:process.transition:0
msgid "Search Process Transition"
msgstr "処理遷移の検索"
#. module: process
#: field:process.condition,node_id:0
msgid "Node"
msgstr "ノード"
#. module: process
#: selection:process.transition.action,state:0
msgid "Workflow Trigger"
msgstr "ワークフロートリガー"
#. module: process
#: field:process.transition,note:0
msgid "Description"
msgstr "説明"
#. module: process
#: model:ir.model,name:process.model_process_transition_action
msgid "Process Transitions Actions"
msgstr "処理遷移アクション"
#. module: process
#: field:process.condition,model_id:0
#: view:process.node:0
#: field:process.node,model_id:0
#: view:process.process:0
#: field:process.process,model_id:0
msgid "Object"
msgstr "オブジェクト"
#. module: process
#: field:process.transition,source_node_id:0
msgid "Source Node"
msgstr "元ノード"
#. module: process
#: view:process.transition:0
#: field:process.transition,transition_ids:0
msgid "Workflow Transitions"
msgstr "ワークフロー遷移"
#. module: process
#: field:process.transition.action,action:0
msgid "Action ID"
msgstr "アクションID"
#. module: process
#: model:ir.model,name:process.model_process_transition
#: view:process.transition:0
msgid "Process Transition"
msgstr "処理遷移"
#. module: process
#: model:ir.model,name:process.model_process_condition
msgid "Condition"
msgstr "条件"
#. module: process
#: selection:process.transition.action,state:0
msgid "Dummy"
msgstr "ダミー"
#. module: process
#: model:ir.actions.act_window,name:process.action_process_form
#: model:ir.ui.menu,name:process.menu_process_form
msgid "Processes"
msgstr "処理"
#. module: process
#: field:process.condition,name:0
#: field:process.node,name:0
#: field:process.process,name:0
#: field:process.transition,name:0
#: field:process.transition.action,name:0
msgid "Name"
msgstr "名前"
#. module: process
#: field:process.node,transition_in:0
msgid "Starting Transitions"
msgstr "遷移の始点"
#. module: process
#: view:process.node:0
#: field:process.node,note:0
#: view:process.process:0
#: field:process.process,note:0
#: view:process.transition:0
msgid "Notes"
msgstr "注記"
#. module: process
#: field:process.transition.action,transition_id:0
msgid "Transition"
msgstr "遷移"
#. module: process
#: view:process.process:0
msgid "Search Process"
msgstr "処理検索"
#. module: process
#: selection:process.node,kind:0
#: field:process.node,subflow_id:0
msgid "Subflow"
msgstr "サブフロー"
#. module: process
#: field:process.process,active:0
msgid "Active"
msgstr "アクティブ"
#. module: process
#: view:process.transition:0
msgid "Associated Groups"
msgstr "関連グループ"
#. module: process
#: field:process.node,model_states:0
msgid "States Expression"
msgstr "状態式"
#. module: process
#: selection:process.transition.action,state:0
msgid "Action"
msgstr "アクション"
#. module: process
#: field:process.node,flow_start:0
msgid "Starting Flow"
msgstr "開始フロー"
#. module: process
#: field:process.condition,model_states:0
msgid "Expression"
msgstr "式"
#. module: process
#: field:process.transition,group_ids:0
msgid "Required Groups"
msgstr "グループは必須"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Incoming Transitions"
msgstr "内向き遷移"
#. module: process
#: field:process.transition.action,state:0
msgid "Type"
msgstr "タイプ"
#. module: process
#: field:process.node,transition_out:0
msgid "Ending Transitions"
msgstr "遷移の終点"
#. module: process
#: model:ir.model,name:process.model_process_process
#: field:process.node,process_id:0
#: view:process.process:0
msgid "Process"
msgstr "処理"
#. module: process
#: view:process.node:0
msgid "Search ProcessNode"
msgstr "処理ノード検索"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Other Conditions"
msgstr "他の条件"
#. module: process
#: model:ir.ui.menu,name:process.menu_process
msgid "Enterprise Process"
msgstr "企業の処理"
#. module: process
#: view:process.transition:0
msgid "Actions"
msgstr "アクション"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Properties"
msgstr "属性"
#. module: process
#: model:ir.actions.act_window,name:process.action_process_transition_form
#: model:ir.ui.menu,name:process.menu_process_transition_form
msgid "Process Transitions"
msgstr "処理遷移"
#. module: process
#: field:process.transition,target_node_id:0
msgid "Target Node"
msgstr "対象ノード"
#. module: process
#: field:process.node,kind:0
msgid "Kind of Node"
msgstr "ノードの種類"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Outgoing Transitions"
msgstr "外向き遷移"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Transitions"
msgstr "遷移"
#. module: process
#: selection:process.transition.action,state:0
msgid "Object Method"
msgstr "オブジェクトメソッド"

File diff suppressed because it is too large Load Diff

View File

@ -81,6 +81,7 @@ class procurement_order(osv.osv):
_name = "procurement.order"
_description = "Procurement"
_order = 'priority,date_planned desc'
_inherit = ['mail.thread']
_log_create = False
_columns = {
'name': fields.char('Reason', size=64, required=True, help='Procurement name.'),
@ -103,7 +104,7 @@ class procurement_order(osv.osv):
" a make to order method."),
'note': fields.text('Note'),
'message': fields.char('Latest error', size=64, help="Exception occurred while computing procurement orders."),
'message': fields.char('Latest error', size=124, help="Exception occurred while computing procurement orders."),
'state': fields.selection([
('draft','Draft'),
('cancel','Cancelled'),
@ -276,7 +277,7 @@ class procurement_order(osv.osv):
if not res:
return False
return True
def check_buy(self, cr, uid, ids):
""" Checks product type.
@return: True or Product Id.
@ -287,24 +288,26 @@ class procurement_order(osv.osv):
if procurement.product_id.product_tmpl_id.supply_method <> 'buy':
return False
if not procurement.product_id.seller_ids:
cr.execute('update procurement_order set message=%s where id=%s',
(_('No supplier defined for this product !'), procurement.id))
message = _('No supplier defined for this product !')
self.message_append_note(cr, uid, [procurement.id], body=message)
cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
return False
partner = procurement.product_id.seller_id #Taken Main Supplier of Product of Procurement.
if not partner:
cr.execute('update procurement_order set message=%s where id=%s',
(_('No default supplier defined for this product'), procurement.id))
message = _('No default supplier defined for this product')
self.message_append_note(cr, uid, [procurement.id], body=message)
cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
return False
if user.company_id and user.company_id.partner_id:
if partner.id == user.company_id.partner_id.id:
return False
address_id = partner_obj.address_get(cr, uid, [partner.id], ['delivery'])['delivery']
if not address_id:
cr.execute('update procurement_order set message=%s where id=%s',
(_('No address defined for the supplier'), procurement.id))
message = _('No address defined for the supplier')
self.message_append_note(cr, uid, [procurement.id], body=message)
cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
return False
return True
@ -346,14 +349,18 @@ class procurement_order(osv.osv):
move_obj.action_confirm(cr, uid, [id], context=context)
self.write(cr, uid, [procurement.id], {'move_id': id, 'close_move': 1})
self.write(cr, uid, ids, {'state': 'confirmed', 'message': ''})
self.confirm_send_note(cr, uid, ids, context)
return True
def action_move_assigned(self, cr, uid, ids, context=None):
""" Changes procurement state to Running and writes message.
@return: True
"""
message = _('From stock: products assigned.')
self.write(cr, uid, ids, {'state': 'running',
'message': _('from stock: products assigned.')})
'message': message}, context=context)
self.message_append_note(cr, uid, ids, body=message, context=context)
self.running_send_note(cr, uid, ids, context=context)
return True
def _check_make_to_stock_service(self, cr, uid, procurement, context=None):
@ -383,8 +390,9 @@ class procurement_order(osv.osv):
message = _("Not enough stock.")
if message:
self.log(cr, uid, procurement.id, _("Procurement '%s' is in exception: ") % (procurement.name) + message)
message = _("Procurement '%s' is in exception: ") % (procurement.name) + message
cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
self.message_append_note(cr, uid, [procurement.id], body=message, context=context)
return ok
def action_produce_assign_service(self, cr, uid, ids, context=None):
@ -393,6 +401,7 @@ class procurement_order(osv.osv):
"""
for procurement in self.browse(cr, uid, ids, context=context):
self.write(cr, uid, [procurement.id], {'state': 'running'})
self.running_send_note(cr, uid, ids, context=None)
return True
def action_produce_assign_product(self, cr, uid, ids, context=None):
@ -427,6 +436,7 @@ class procurement_order(osv.osv):
if len(todo):
move_obj.write(cr, uid, todo, {'state': 'assigned'})
self.write(cr, uid, ids, {'state': 'cancel'})
self.cancel_send_note(cr, uid, ids, context=None)
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_trigger(uid, 'procurement.order', id, cr)
@ -451,6 +461,7 @@ class procurement_order(osv.osv):
@return: True
"""
res = self.write(cr, uid, ids, {'state': 'ready'})
self.ready_send_note(cr, uid, ids, context=None)
return res
def action_done(self, cr, uid, ids):
@ -463,11 +474,39 @@ class procurement_order(osv.osv):
if procurement.close_move and (procurement.move_id.state <> 'done'):
move_obj.action_done(cr, uid, [procurement.move_id.id])
res = self.write(cr, uid, ids, {'state': 'done', 'date_close': time.strftime('%Y-%m-%d')})
self.done_send_note(cr, uid, ids, context=None)
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_trigger(uid, 'procurement.order', id, cr)
return res
# ----------------------------------------
# OpenChatter methods and notifications
# ----------------------------------------
def create(self, cr, uid, vals, context=None):
obj_id = super(procurement_order, self).create(cr, uid, vals, context)
self.create_send_note(cr, uid, [obj_id], context=context)
return obj_id
def create_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>created</b>."), context=context)
def confirm_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>confirmed</b>."), context=context)
def running_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Procurement has been set to <b>running</b>."), context=context)
def ready_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Procurement has been set to <b>ready</b>."), context=context)
def cancel_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>cancelled</b>."), context=context)
def done_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>done</b>."), context=context)
procurement_order()
class StockPicking(osv.osv):

View File

@ -47,16 +47,13 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form layout="manual">
<div class="oe_form_topbar">
<header>
<button name="button_confirm" states="draft" string="Confirm"/>
<button name="button_check" states="confirmed" string="Run Procurement"/>
<button name="button_restart" states="exception" string="Retry"/>
<button name="button_cancel" states="draft,exception,waiting" string="Cancel"/>
<div class="oe_right">
<field name="state" readonly="1" widget="statusbar" nolabel="1" statusbar_visible="draft,confirmed" />
</div>
<div class="oe_clear"/>
</div>
<field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,confirmed" />
</header>
<sheet string="Procurement" layout="auto">
<group col="2" colspan="2" class="oe_form_header">
<separator colspan="2" string="References"/>
@ -96,6 +93,9 @@
</page>
</notebook>
</sheet>
<div class="oe_form_sheet_width">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>

View File

@ -19,15 +19,15 @@
#
##############################################################################
import time
from datetime import datetime
from dateutil.relativedelta import relativedelta
import netsvc
import pooler
from osv import osv
from osv import fields
from tools.translate import _
from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
import tools
import netsvc
import pooler
class procurement_order(osv.osv):
_inherit = 'procurement.order'
@ -69,7 +69,7 @@ class procurement_order(osv.osv):
cr.commit()
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
maxdate = (datetime.today() + relativedelta(days=company.schedule_range)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
start_date = time.strftime('%Y-%m-%d, %Hh %Mm %Ss')
start_date = fields.datetime.now()
offset = 0
report = []
report_total = 0
@ -113,13 +113,14 @@ class procurement_order(osv.osv):
proc.product_id.name,))
report_except += 1
if use_new_cursor:
cr.commit()
offset += len(ids)
if not ids: break
end_date = time.strftime('%Y-%m-%d, %Hh %Mm %Ss')
end_date = fields.datetime.now()
if uid:
request = self.pool.get('res.request')
# Chatter: old res.request is now a chatter on res.users, id=uid
summary = _("""Here is the procurement scheduling report.
Start Time: %s
@ -130,12 +131,7 @@ class procurement_order(osv.osv):
Exceptions:\n""") % (start_date, end_date, report_total, report_except, report_later)
summary += '\n'.join(report)
request.create(cr, uid,
{'name': "Procurement Processing Report.",
'act_from': uid,
'act_to': uid,
'body': summary,
})
self.pool.get('res.users').message_append_note(cr, uid, [uid], body=summary, context=context)
if use_new_cursor:
cr.commit()
@ -237,7 +233,6 @@ class procurement_order(osv.osv):
orderpoint_obj = self.pool.get('stock.warehouse.orderpoint')
location_obj = self.pool.get('stock.location')
procurement_obj = self.pool.get('procurement.order')
request_obj = self.pool.get('res.request')
wf_service = netsvc.LocalService("workflow")
report = []
offset = 0
@ -293,12 +288,8 @@ class procurement_order(osv.osv):
if use_new_cursor:
cr.commit()
if user_id and report:
request_obj.create(cr, uid, {
'name': 'Orderpoint report.',
'act_from': user_id,
'act_to': user_id,
'body': '\n'.join(report)
})
# Chatter: old res.request is now a chatter on res.users, id=uid
self.pool.get('res.users').message_append_note(cr, uid, [user_id], body='\n'.join(report), subject=_('Orderpoint report'), context=context)
if use_new_cursor:
cr.commit()
cr.close()

2334
addons/product/i18n/ja.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -518,7 +518,7 @@ class product_product(osv.osv):
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the product without removing it."),
'variants': fields.char('Variants', size=64),
'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"),
'ean13': fields.char('EAN13', size=13),
'ean13': fields.char('EAN13', size=13, help="The numbers encoded in EAN-13 bar codes are product identification numbers."),
'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."),
'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Sale Price')),
'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Sale Price')),

View File

@ -68,7 +68,7 @@
<field name="type">form</field>
<field eval="7" name="priority"/>
<field name="arch" type="xml">
<form string="Product">
<form string="Product" layout="auto">
<group colspan="4" col="8">
<group colspan="4" col="2">
<separator string="Name" colspan="2"/>
@ -78,7 +78,7 @@
<group colspan="1" col="2">
<separator string="Codes" colspan="2"/>
<field name="default_code"/>
<field name="ean13"/>
<field name="ean13" placeholder="5901234123457" />
</group>
<group colspan="1" col="2" groups="base.group_user">
<separator string="Characteristics" colspan="2"/>
@ -163,9 +163,12 @@
<separator string="Description" groups="base.group_user"/>
<field colspan="4" name="description" nolabel="1" groups="base.group_user"/>
<separator string="Sale Description"/>
<field colspan="4" name="description_sale" nolabel="1"/>
<field colspan="4" name="description_sale" nolabel="1"
placeholder="This note will be displayed on quotations..."/>
<separator string="Purchase Description" groups="base.group_user"/>
<field colspan="4" name="description_purchase" nolabel="1" groups="base.group_user"/>
<field colspan="4" name="description_purchase" nolabel="1"
placeholder="This note will be displayed on requests for quotation..."
groups="base.group_user"/>
</page>
<page groups="product.group_stock_packaging" string="Packaging">
<field colspan="4" name="packaging" nolabel="1">
@ -190,7 +193,9 @@
</field>
</page>
</notebook>
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<div class="oe_form_sheet_width">
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>

View File

@ -19,14 +19,6 @@
<field name="progress" widget="progressbar"/>
<field name="stage_id" invisible="context.get('set_visible',False)"/>
<field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/>
<button name="do_open" string="Start Task" type="object"
states="draft,pending" icon="gtk-go-forward" invisible="context.get('set_visible',False)"/>
<button name="action_close" string="Done" type="object"
states="draft,open,pending" icon="gtk-apply" invisible="context.get('set_visible',False)"/>
<button name="do_cancel" string="Cancel" type="object"
states="open,draft,pending" icon="gtk-cancel" invisible="context.get('set_visible',False)"/>
<button name="%(action_project_task_delegate)d" string="Delegate" type="action"
states="pending,open,draft" icon="gtk-sort-descending"/>
</tree>
</field>
</record>
@ -46,12 +38,6 @@
<field name="progress" widget="progressbar"/>
<field name="stage_id" invisible="context.get('set_visible',False)"/>
<field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/>
<button name="do_open" string="Start Task" type="object"
states="draft,pending" icon="gtk-go-forward" invisible="context.get('set_visible',False)"/>
<button name="action_close" string="Done" type="object"
states="draft,open,pending" icon="gtk-apply" invisible="context.get('set_visible',False)"/>
<button name="do_cancel" string="Cancel" type="object"
states="open,draft,pending" icon="gtk-cancel" invisible="context.get('set_visible',False)"/>
</tree>
</field>
</record>

View File

@ -509,7 +509,6 @@ def Project():
class task(base_stage, osv.osv):
_name = "project.task"
_description = "Task"
_log_create = True
_date_name = "date_start"
_inherit = ['ir.needaction_mixin', 'mail.thread']
@ -929,18 +928,6 @@ class task(base_stage, osv.osv):
for task in self.browse(cr, uid, ids, context=context):
vals = {}
project = task.project_id
if project:
# Send request to project manager
if project.warn_manager and project.user_id and (project.user_id.id != uid):
request.create(cr, uid, {
'name': _("Task '%s' closed") % task.name,
'state': 'waiting',
'act_from': uid,
'act_to': project.user_id.id,
'ref_partner_id': task.partner_id.id,
'ref_doc1': 'project.task,%d'% (task.id,),
'ref_doc2': 'project.project,%d'% (project.id,),
}, context=context)
for parent_id in task.parent_ids:
if parent_id.state in ('pending','draft'):
reopen = True
@ -958,20 +945,8 @@ class task(base_stage, osv.osv):
return True
def do_reopen(self, cr, uid, ids, context=None):
request = self.pool.get('res.request')
for task in self.browse(cr, uid, ids, context=context):
project = task.project_id
if project and project.warn_manager and project.user_id.id and (project.user_id.id != uid):
request.create(cr, uid, {
'name': _("Task '%s' set in progress") % task.name,
'state': 'waiting',
'act_from': uid,
'act_to': project.user_id.id,
'ref_partner_id': task.partner_id.id,
'ref_doc1': 'project.task,%d' % task.id,
'ref_doc2': 'project.project,%d' % project.id,
}, context=context)
self.case_set(cr, uid, [task.id], 'open', {}, context=context)
self.case_open_send_note(cr, uid, [task.id], context)
return True
@ -985,18 +960,6 @@ class task(base_stage, osv.osv):
tasks = self.browse(cr, uid, ids, context=context)
self._check_child_task(cr, uid, ids, context=context)
for task in tasks:
project = task.project_id
if project.warn_manager and project.user_id and (project.user_id.id != uid):
request.create(cr, uid, {
'name': _("Task '%s' cancelled") % task.name,
'state': 'waiting',
'act_from': uid,
'act_to': project.user_id.id,
'ref_partner_id': task.partner_id.id,
'ref_doc1': 'project.task,%d' % task.id,
'ref_doc2': 'project.project,%d' % project.id,
}, context=context)
# cancel task
self.case_set(cr, uid, [task.id], 'cancelled', {'remaining_hours': 0.0}, context=context)
self.case_cancel_send_note(cr, uid, [task.id], context=context)
return True

View File

@ -19,7 +19,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Project" layout="manual">
<div class="oe_form_topbar">
<header>
<button name="set_done" string="Done" type="object" states="open,pending"/>
<button name="set_open" string="Re-open project" type="object" states="pending,cancelled,close"/>
<button name="set_pending" string="Pending" type="object" states="open"/>
@ -27,11 +27,8 @@
<button string="New Project Based on Template" name="duplicate_template" type="object" states="template" context="{'parent_id':parent_id}"/>
<button name="reset_project" string="Reset as Project" type="object" states="template"/>
<button name="set_cancel" string="Cancel" type="object" states="open,pending"/>
<div class="oe_right">
<field name="state" nolabel="1" widget="statusbar" statusbar_visible="open,close" statusbar_colors='{"pending":"blue"}' select="1" readonly="1"/>
</div>
<div class="oe_clear"/>
</div>
<field name="state" widget="statusbar" statusbar_visible="open,close" statusbar_colors='{"pending":"blue"}' readonly="1"/>
</header>
<sheet string="Project" layout="auto">
<group colspan="6" col="6">
<field name="name" string="Project Name" select="1"/>
@ -102,7 +99,7 @@
<newline/>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
@ -163,7 +160,7 @@
</record>
<act_window
context="{'search_default_project_id': [active_id], 'default_project_id': active_id}"
context="{'search_default_project_id': active_id, 'default_project_id': active_id}"
id="act_project_project_2_project_task_all"
name="Tasks"
res_model="project.task"
@ -304,7 +301,7 @@
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<form string="Project" layout="manual">
<div class="oe_form_topbar">
<header>
<span groups="base.group_user">
<button name="do_open" string="Start Task" type="object"
states="draft,pending"/>
@ -319,17 +316,14 @@
<button name="%(action_project_task_delegate)d" string="Delegate" type="action"
states="pending,open,draft"/>
<button name="do_cancel" string="Cancel" type="object"
states="draft,open,pending"/>
states="draft,open,pending" />
<button name="stage_previous" string="Previous Stage" type="object"
states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="stage_next" string="Next Stage" type="object"
states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
</span>
<div class="oe_right">
<field name="stage_id" nolabel="1" widget="statusbar"/>
</div>
<div class="oe_clear"/>
</div>
<field name="stage_id" widget="statusbar"/>
</header>
<sheet string="Task edition" layout="auto">
<group colspan="6" col="6">
<field name="name" select="1"/>
@ -403,7 +397,7 @@
</notebook>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
@ -519,19 +513,7 @@
<field name="effective_hours" widget="float_time" sum="Spent Hours" invisible="1"/>
<field name="remaining_hours" widget="float_time" sum="Remaining Hours" on_change="onchange_remaining(remaining_hours,planned_hours)" invisible="context.get('set_visible',False)" groups="project.group_time_work_estimation_tasks"/>
<field name="date_deadline" invisible="context.get('deadline_visible',True)"/>
<button name="do_open" string="Start Task" type="object"
states="draft,pending" icon="gtk-go-forward" groups="base.group_user"/>
<button name="action_close" string="Done" type="object"
states="draft,open,pending" icon="gtk-apply" groups="base.group_user"/>
<button name="%(action_project_task_delegate)d" string="Delegate" type="action"
states="pending,open,draft" icon="terp-personal" groups="base.group_user"/>
<field name="stage_id" invisible="context.get('set_visible',False)"/>
<button name="stage_previous" string="Previous Stage" type="object"
states="open,pending" icon="gtk-go-back"
attrs="{'invisible': [('stage_id','=', False)]}" groups="base.group_user"/>
<button name="stage_next" string="Next Stage" type="object"
states="open,pending" icon="gtk-go-forward"
attrs="{'invisible': [('stage_id','=', False)]}" groups="base.group_user"/>
<field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/>
<field name="date_start" invisible="1" groups="base.group_no_one"/>
<field name="date_end" invisible="1" groups="base.group_no_one"/>
@ -592,6 +574,7 @@
<separator orientation="vertical"/>
<field name="name"/>
<filter name="project" string="Project" domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-check"/>
<field name="project_id"/>
<field name="user_id">
<filter string="My Tasks" domain="[('user_id','=',uid)]" help="My Tasks" icon="terp-personal"/>
<filter string="Unassigned Tasks" domain="[('user_id','=',False)]" help="Unassigned Tasks" icon="terp-personal-"/>
@ -729,9 +712,9 @@
<menuitem id="menu_project_config_project" name="Stages" parent="project.menu_definitions" sequence="1"/>
<menuitem action="open_task_type_form" name="Task Stages" id="menu_task_types_view" parent="menu_project_config_project" sequence="2"/>
<menuitem action="open_view_project_all" id="menu_projects" name="Projects" parent="menu_project_management" sequence="1" groups="base.group_no_one"/>
<menuitem action="open_view_project_all" id="menu_projects" name="Projects" parent="menu_project_management" sequence="1"/>
<act_window context="{'search_default_user_id': [active_id], 'default_user_id': active_id}" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/>
<act_window context="{'search_default_user_id': active_id, 'default_user_id': active_id}" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/>
<record id="task_company" model="ir.ui.view">
<field name="name">res.company.task.config</field>

View File

@ -8,10 +8,10 @@
<field name="priority" eval="20"/>
<field name="arch" type="xml">
<form string="Configure Project" layout="manual">
<div class="oe_form_topbar">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
</header>
<sheet layout="auto">
<separator string="Project" colspan="4"/>
<field name="module_project_mrp"/>

View File

@ -99,19 +99,7 @@
<field name="version_id" widget="selection"/>
<field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/>
<field name="stage_id" widget="selection" readonly="1"/>
<button name="stage_previous" string="Previous" type="object"
icon="gtk-go-back" help="Change to Previous Stage"
attrs="{'invisible': [('stage_id','=', False)]}"/>
<button name="stage_next" string="Next" type="object"
icon="gtk-go-forward" help="Change to Next Stage"
attrs="{'invisible': [('stage_id','=', False)]}"/>
<field name="state" groups="base.group_no_one"/>
<button name="case_open" string="Open" type="object"
states="draft,pending" icon="gtk-go-forward"/>
<button name="case_close" string="Done" type="object"
states="draft,open,pending" icon="gtk-close"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,pending" icon="gtk-cancel"/>
<field name="categ_id" invisible="1"/>
<field name="task_id" invisible="1"/>
</tree>

Some files were not shown because too many files have changed in this diff Show More