[MERGE] Merged with addons/trunk.
bzr revid: tde@openerp.com-20120813115802-wxjj2oubawzxclm9
This commit is contained in:
commit
f37f9dcaec
|
@ -163,8 +163,10 @@
|
|||
<sheet string="Supplier Invoice">
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<label string="Draft Invoice" attrs="{'invisible': [('state', '<>', 'draft')]}"/>
|
||||
<label string="Invoice" attrs="{'invisible': [('state', '=', 'draft')]}"/>
|
||||
<label string="Draft Invoice" attrs="{'invisible': ['|',('state','<>','draft'), ('type','<>','in_invoice')]}"/>
|
||||
<label string="Draft Refund" attrs="{'invisible': ['|',('state','<>','draft'), ('type','<>','in_refund')]}"/>
|
||||
<label string="Invoice" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','<>','in_invoice')]}"/>
|
||||
<label string="Refund" attrs="{'invisible': ['|',('state', '=', 'draft'), ('type','<>','in_refund')]}"/>
|
||||
<field name="number" class="oe_inline" attrs="{'invisible': [('state', '=', 'draft')]}"/>
|
||||
</h1>
|
||||
</div>
|
||||
|
@ -309,9 +311,11 @@
|
|||
</header>
|
||||
<sheet string="Invoice">
|
||||
<h1>
|
||||
<label string="Draft Invoice " attrs="{'invisible': [('state','not in',('draft',))]}"/>
|
||||
<label string="Draft Invoice " attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','<>','out_invoice')]}"/>
|
||||
<label string="Draft Refund " attrs="{'invisible': ['|',('state','not in',('draft',)), ('type','<>','out_refund')]}"/>
|
||||
<label string="Pro Forma Invoice " attrs="{'invisible': [('state','not in',('proforma','proforma2'))]}"/>
|
||||
<label string="Invoice " attrs="{'invisible': [('state','in',('draft','proforma','proforma2'))]}"/>
|
||||
<label string="Invoice " attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','<>','out_invoice')]}"/>
|
||||
<label string="Refund " attrs="{'invisible': ['|',('state','in',('draft','proforma','proforma2')), ('type','<>','out_refund')]}"/>
|
||||
<field name="number" readonly="1" class="oe_inline"/>
|
||||
</h1>
|
||||
<field name="type" invisible="1"/>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<record id="test_invoice_1" model="account.invoice">
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="partner_id" ref="base.res_partner_asus"/>
|
||||
<field name="partner_id" ref="base.res_partner_1"/>
|
||||
<field name="journal_id" ref="account.sales_journal"/>
|
||||
<field name="state">draft</field>
|
||||
<field name="type">out_invoice</field>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<field name="date_invoice" eval="time.strftime('%Y')+'-01-01'"/>
|
||||
<field eval="14.0" name="amount_untaxed"/>
|
||||
<field eval="14.0" name="amount_total"/>
|
||||
<field name="partner_id" ref="base.res_partner_maxtor"/>
|
||||
<field name="partner_id" ref="base.res_partner_17"/>
|
||||
</record>
|
||||
<record id="demo_invoice_0_line_rpanrearpanelshe0" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_0"/>
|
||||
|
@ -26,10 +26,10 @@
|
|||
<field name="price_subtotal" eval="10.0" />
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="invoice_line_tax_id" eval="[(6,0,[])]"/>
|
||||
<field name="product_id" ref="product.product_product_rearpanelarm0"/>
|
||||
<field name="product_id" ref="product.product_product_39"/>
|
||||
<field name="quantity" eval="1.0" />
|
||||
<field name="partner_id" ref="base.res_partner_maxtor"/>
|
||||
<field name="name">[RPAN100] Rear Panel SHE100</field>
|
||||
<field name="partner_id" ref="base.res_partner_16"/>
|
||||
<field name="name">Toner Cartridge</field>
|
||||
</record>
|
||||
<record id="demo_invoice_0_line_rckrackcm0" model="account.invoice.line">
|
||||
<field name="invoice_id" ref="demo_invoice_0"/>
|
||||
|
@ -39,10 +39,10 @@
|
|||
<field name="price_subtotal" eval="4.0"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="invoice_line_tax_id" eval="[(6,0,[])]"/>
|
||||
<field name="product_id" ref="product.product_product_shelf1"/>
|
||||
<field name="product_id" ref="product.product_product_43"/>
|
||||
<field name="quantity" eval="1.0" />
|
||||
<field name="partner_id" ref="base.res_partner_maxtor"/>
|
||||
<field name="name">[RCK200] Rack 200cm</field>
|
||||
<field name="partner_id" ref="base.res_partner_17"/>
|
||||
<field name="name">Zed+ Antivirus</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -109,8 +109,8 @@
|
|||
<field name="zip" class="oe_inline" placeholder="ZIP"/>
|
||||
<field name="city" class="oe_inline" placeholder="City"/>
|
||||
</div>
|
||||
<field name="state_id" placeholder="State"/>
|
||||
<field name="country_id" placeholder="Country"/>
|
||||
<field name="state_id" placeholder="State" options='{"no_open": true}'/>
|
||||
<field name="country_id" placeholder="Country" options='{"no_open": true}'/>
|
||||
</div>
|
||||
</group>
|
||||
<group name="bank" string="Information About the Bank">
|
||||
|
|
|
@ -85,14 +85,14 @@
|
|||
<field name="parent_id" ref="analytic_integration"/>
|
||||
<field name="type">normal</field>
|
||||
<field name="state">open</field>
|
||||
<field name="partner_id" ref="base.res_partner_seagate"/>
|
||||
<field name="partner_id" ref="base.res_partner_19"/>
|
||||
</record>
|
||||
<record id="analytic_seagate_p2" model="account.analytic.account">
|
||||
<field name="name">Seagate P2</field>
|
||||
<field name="type">normal</field>
|
||||
<field name="parent_id" ref="analytic_integration"/>
|
||||
<field name="state">open</field>
|
||||
<field name="partner_id" ref="base.res_partner_seagate"/>
|
||||
<field name="partner_id" ref="base.res_partner_19"/>
|
||||
</record>
|
||||
<record id="analytic_magasin_bml_1" model="account.analytic.account">
|
||||
<field name="name">Magasin BML 1</field>
|
||||
|
@ -106,20 +106,20 @@
|
|||
<field eval="str(time.localtime()[0] - 1) + '-08-07'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y-12-31')" name="date"/>
|
||||
<field name="parent_id" ref="analytic_integration"/>
|
||||
<field name="partner_id" ref="base.res_partner_c2c"/>
|
||||
<field name="partner_id" ref="base.res_partner_12"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
<record id="analytic_agrolait" model="account.analytic.account">
|
||||
<field name="name">Agrolait</field>
|
||||
<field name="parent_id" ref="analytic_customers"/>
|
||||
<field name="type">normal</field>
|
||||
<field name="partner_id" ref="base.res_partner_agrolait"/>
|
||||
<field name="partner_id" ref="base.res_partner_2"/>
|
||||
</record>
|
||||
<record id="analytic_asustek" model="account.analytic.account">
|
||||
<field name="name">Asustek</field>
|
||||
<field name="type">normal</field>
|
||||
<field name="parent_id" ref="analytic_customers"/>
|
||||
<field name="partner_id" ref="base.res_partner_asus"/>
|
||||
<field name="partner_id" ref="base.res_partner_1"/>
|
||||
</record>
|
||||
<record id="analytic_distripc" model="account.analytic.account">
|
||||
<field name="name">DistriPC</field>
|
||||
|
@ -127,22 +127,22 @@
|
|||
<field name="type">normal</field>
|
||||
<field name="partner_id" ref="base.res_partner_4"/>
|
||||
</record>
|
||||
<record id="analytic_sednacom" model="account.analytic.account">
|
||||
<field name="name">Sednacom</field>
|
||||
<record id="analytic_spark" model="account.analytic.account">
|
||||
<field name="name">Spark Systems</field>
|
||||
<field eval="str(time.localtime()[0] - 1) + '-05-09'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y-05-08')" name="date"/>
|
||||
<field name="parent_id" ref="analytic_partners"/>
|
||||
<field name="type">normal</field>
|
||||
<field name="partner_id" ref="base.res_partner_sednacom"/>
|
||||
<field name="partner_id" ref="base.res_partner_16"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
<record id="analytic_thymbra" model="account.analytic.account">
|
||||
<field name="name">Thymbra</field>
|
||||
<record id="analytic_nebula" model="account.analytic.account">
|
||||
<field name="name">Nebula</field>
|
||||
<field eval="time.strftime('%Y-02-01')" name="date_start"/>
|
||||
<field eval="time.strftime('%Y-07-01')" name="date"/>
|
||||
<field name="type">normal</field>
|
||||
<field name="parent_id" ref="analytic_partners"/>
|
||||
<field name="partner_id" ref="base.res_partner_thymbra"/>
|
||||
<field name="partner_id" ref="base.res_partner_17"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
<record id="analytic_leclerc" model="account.analytic.account">
|
||||
|
@ -159,13 +159,13 @@
|
|||
<field eval="str(time.localtime()[0] + 1) + '-02-01'" name="date"/>
|
||||
<field name="type">normal</field>
|
||||
<field name="parent_id" ref="analytic_partners"/>
|
||||
<field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/>
|
||||
<field name="partner_id" ref="base.res_partner_12"/>
|
||||
</record>
|
||||
<record id="analytic_tiny_at_work" model="account.analytic.account">
|
||||
<field name="name">OpenERP SA AT Work</field>
|
||||
<field name="type">normal</field>
|
||||
<field name="parent_id" ref="analytic_partners"/>
|
||||
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
|
||||
<field name="partner_id" ref="base.res_partner_18"/>
|
||||
</record>
|
||||
<record id="analytic_partners_camp_to_camp" model="account.analytic.account">
|
||||
<field name="name">Camp to Camp</field>
|
||||
|
@ -173,7 +173,7 @@
|
|||
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
|
||||
<field name="type">normal</field>
|
||||
<field name="parent_id" ref="analytic_partners"/>
|
||||
<field name="partner_id" ref="base.res_partner_c2c"/>
|
||||
<field name="partner_id" ref="base.res_partner_12"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
<record id="analytic_project_2_support" model="account.analytic.account">
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 450.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_desertic_hispafuentes
|
||||
partner_id: base.res_partner_12
|
||||
reference_type: none
|
||||
|
||||
-
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
reference_type: none
|
||||
name: 'Test Customer Invoice'
|
||||
invoice_line:
|
||||
- product_id: product.product_product_pc3
|
||||
- product_id: product.product_product_5
|
||||
quantity: 10.0
|
||||
-
|
||||
I manually assign tax on invoice
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 450.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.bank_journal
|
||||
partner_id: base.res_partner_desertic_hispafuentes
|
||||
partner_id: base.res_partner_12
|
||||
reference_type: none
|
||||
-
|
||||
I check that Initially customer invoice state is "Draft"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
!record {model: account.invoice, id: test_invoice_1}:
|
||||
currency_id: base.EUR
|
||||
company_id: base.main_company
|
||||
partner_id: base.res_partner_asus
|
||||
partner_id: base.res_partner_1
|
||||
state: draft
|
||||
type: out_invoice
|
||||
account_id: account.a_recv
|
||||
|
@ -23,7 +23,7 @@
|
|||
-
|
||||
!python {model: res.partner}: |
|
||||
import netsvc, tools, os
|
||||
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_asus'),ref('base.res_partner_agrolait'),ref('base.res_partner_c2c')], {}, {})
|
||||
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')], {}, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-report_overdue.'+format), 'wb+').write(data)
|
||||
-
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
name: '[PC3] Medium PC'
|
||||
price_unit: 900.0
|
||||
quantity: 10.0
|
||||
product_id: product.product_product_pc3
|
||||
product_id: product.product_product_5
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_3
|
||||
|
|
|
@ -30,13 +30,13 @@
|
|||
- account_id: account.a_expense
|
||||
name: '[PC1] Basic PC'
|
||||
price_unit: 300.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
quantity: 10.0
|
||||
uos_id: product.product_uom_unit
|
||||
invoice_line_tax_id:
|
||||
- tax10
|
||||
journal_id: account.expenses_journal
|
||||
partner_id: base.res_partner_desertic_hispafuentes
|
||||
partner_id: base.res_partner_12
|
||||
reference_type: none
|
||||
type: in_invoice
|
||||
-
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
debit: 0.0
|
||||
journal_id: account.bank_journal
|
||||
name: Basic Computer
|
||||
partner_id: base.res_partner_desertic_hispafuentes
|
||||
partner_id: base.res_partner_12
|
||||
period_id: account.period_6
|
||||
ref: '2011010'
|
||||
tax_amount: 0.0
|
||||
|
@ -37,8 +37,8 @@
|
|||
'search_default_journal_id': 1, 'journal_type': 'sale', 'search_default_period_id': 6, 'journal_id': 1, 'view_mode': False,
|
||||
'visible_id': 1, 'period_id': 6, 'tz': False, 'active_ids': [ref('menu_eaction_account_moves_sale')],
|
||||
'search_default_posted': 0, 'active_id': ref('menu_eaction_account_moves_sale')})
|
||||
partner = self.onchange_partner_id(cr, uid, [], False, ref('base.res_partner_desertic_hispafuentes'), ref('account.cash'), debit=0, credit=2000, date=date, journal=False)
|
||||
account = self.onchange_account_id(cr, uid, [], account_id=ref('account.a_recv'), partner_id= ref('base.res_partner_desertic_hispafuentes'))
|
||||
partner = self.onchange_partner_id(cr, uid, [], False, ref('base.res_partner_12'), ref('account.cash'), debit=0, credit=2000, date=date, journal=False)
|
||||
account = self.onchange_account_id(cr, uid, [], account_id=ref('account.a_recv'), partner_id= ref('base.res_partner_12'))
|
||||
vals = {
|
||||
'journal_id': ref('account.bank_journal'),
|
||||
'period_id': ref('account.period_6'),
|
||||
|
@ -51,7 +51,7 @@
|
|||
'date': time.strftime('%Y-%m-%d'),
|
||||
'debit': 2000.0,
|
||||
'name': 'Basic Computer',
|
||||
'partner_id': ref('base.res_partner_desertic_hispafuentes'),
|
||||
'partner_id': ref('base.res_partner_12'),
|
||||
'quantity': 0.0,
|
||||
'move_id': ref('account_move_0'),
|
||||
'date_maturity': partner['value']['date_maturity'],
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
account_id: account.a_recv
|
||||
date_invoice: !eval time.strftime('%Y-%m-%d')
|
||||
invoice_line:
|
||||
- product_id: product.product_product_pc1
|
||||
- product_id: product.product_product_3
|
||||
quantity: &qty 11.11
|
||||
account_id: account.a_sale
|
||||
uos_id: product.product_uom_unit
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
-
|
||||
!record {model: account.invoice, id: invoice_edi_1}:
|
||||
journal_id: 1
|
||||
partner_id: base.res_partner_agrolait
|
||||
partner_id: base.res_partner_2
|
||||
currency_id: base.EUR
|
||||
company_id: 1
|
||||
account_id: account.a_pay
|
||||
|
@ -13,14 +13,14 @@
|
|||
name: selling product
|
||||
type: 'out_invoice'
|
||||
invoice_line:
|
||||
- product_id: product.product_product_pc1
|
||||
- product_id: product.product_product_3
|
||||
uos_id: 1
|
||||
quantity: 1.0
|
||||
price_unit: 10.0
|
||||
name: 'basic pc'
|
||||
account_id: account.a_pay
|
||||
invoice_line:
|
||||
- product_id: product.product_product_pc3
|
||||
- product_id: product.product_product_5
|
||||
uos_id: 1
|
||||
quantity: 5.0
|
||||
price_unit: 100.0
|
||||
|
@ -106,7 +106,7 @@
|
|||
"uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"],
|
||||
"name": "Basic PC",
|
||||
"price_unit": 10.0,
|
||||
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_pc1", "[PC1] Basic PC"],
|
||||
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_3", "[PC1] Basic PC"],
|
||||
"quantity": 1.0
|
||||
},
|
||||
{
|
||||
|
@ -116,7 +116,7 @@
|
|||
"uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"],
|
||||
"name": "Medium PC",
|
||||
"price_unit": 100.0,
|
||||
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_pc3", "[PC3] Medium PC"],
|
||||
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_5", "[PC3] Medium PC"],
|
||||
"quantity": 5.0
|
||||
}]
|
||||
}
|
||||
|
|
|
@ -6,17 +6,17 @@
|
|||
<field name="model">cash.box.in</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Put Money In">
|
||||
<form string="Put Money In" version="7.0">
|
||||
<separator string="Fill in this form if you put money in the cash register:" colspan="4" />
|
||||
<field name="name" />
|
||||
<field name="amount" />
|
||||
|
||||
<separator colspan="4" />
|
||||
<group colspan="4" col="4">
|
||||
<group col="2" colspan="2" />
|
||||
<button icon="gtk-stop" special="cancel" string="Cancel" />
|
||||
<button name="run" string="Put Money In" colspan="1" type="object" icon="gtk-apply" />
|
||||
<group>
|
||||
<field name="name" class="oe_inline"/>
|
||||
<field name="amount" class="oe_inline"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="run" string="Put Money In" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button special="cancel" string="Cancel" class="oe_link"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -35,17 +35,18 @@
|
|||
<field name="model">cash.box.out</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Take Money Out">
|
||||
<separator string="Describe why you take money from the cash register:" colspan="4" />
|
||||
<field name="name" />
|
||||
<field name="amount" />
|
||||
|
||||
<separator colspan="4" />
|
||||
<group colspan="4" col="4">
|
||||
<group col="2" colspan="2" />
|
||||
<button icon="gtk-stop" special="cancel" string="Cancel" />
|
||||
<button name="run" string="Take Money Out" colspan="1" type="object" icon="gtk-apply" />
|
||||
<form string="Take Money Out" version="7.0">
|
||||
<separator string="Describe why you take money from the cash register:"/>
|
||||
<group>
|
||||
<field name="name" class="oe_inline"/>
|
||||
<field name="amount" class="oe_inline"/>
|
||||
</group>
|
||||
|
||||
<footer>
|
||||
<button name="run" string="Take Money Out" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button class="oe_link" special="cancel" string="Cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
%(company_currency)s\n\nThanks,\n--\n%(user_signature)s\n%(company_name)s'
|
||||
email_subject: Invoices Reminder
|
||||
partner_ids:
|
||||
- base.res_partner_desertic_hispafuentes
|
||||
- base.res_partner_12
|
||||
partner_lang: 1
|
||||
-
|
||||
I send a follow-up mail to partner.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<record id="partner_bank_1" model="res.partner.bank">
|
||||
<field name="name">Reserve Bank</field>
|
||||
<field name="acc_number">00987654321</field>
|
||||
<field name="partner_id" ref="base.res_partner_agrolait"></field>
|
||||
<field name="partner_id" ref="base.res_partner_2"></field>
|
||||
<field name="state">bank</field>
|
||||
<field name="bank" ref="base.res_bank_1"/>
|
||||
</record>
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
!record {model: payment.line, id: payment_line_0}:
|
||||
name: Test
|
||||
communication: Test
|
||||
partner_id: base.res_partner_agrolait
|
||||
partner_id: base.res_partner_2
|
||||
order_id: payment_order_2
|
||||
amount_currency: 100.00
|
||||
|
|
|
@ -49,7 +49,6 @@ eInvoicing & Payments module manage all Voucher Entries such as "Reconciliation
|
|||
"account_voucher_sequence.xml",
|
||||
"account_voucher_workflow.xml",
|
||||
"account_voucher_report.xml",
|
||||
"wizard/account_voucher_unreconcile_view.xml",
|
||||
"wizard/account_statement_from_invoice_view.xml",
|
||||
"account_voucher_view.xml",
|
||||
"voucher_payment_receipt_view.xml",
|
||||
|
|
|
@ -46,11 +46,7 @@ class account_voucher(osv.osv):
|
|||
def _check_paid(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for voucher in self.browse(cr, uid, ids, context=context):
|
||||
paid = False
|
||||
for line in voucher.move_ids:
|
||||
if (line.account_id.type, 'in', ('receivable', 'payable')) and line.reconcile_id:
|
||||
paid = True
|
||||
res[voucher.id] = paid
|
||||
res[voucher.id] = any([((line.account_id.type, 'in', ('receivable', 'payable')) and line.reconcile_id) for line in voucher.move_ids])
|
||||
return res
|
||||
|
||||
def _get_type(self, cr, uid, context=None):
|
||||
|
@ -186,15 +182,16 @@ class account_voucher(osv.osv):
|
|||
res['arch'] = etree.tostring(doc)
|
||||
return res
|
||||
|
||||
def _compute_writeoff_amount(self, cr, uid, line_dr_ids, line_cr_ids, amount):
|
||||
def _compute_writeoff_amount(self, cr, uid, line_dr_ids, line_cr_ids, amount, type):
|
||||
debit = credit = 0.0
|
||||
sign = type == 'payment' and -1 or 1
|
||||
for l in line_dr_ids:
|
||||
debit += l['amount']
|
||||
for l in line_cr_ids:
|
||||
credit += l['amount']
|
||||
return abs(amount - abs(credit - debit))
|
||||
return amount - sign * (credit - debit)
|
||||
|
||||
def onchange_line_ids(self, cr, uid, ids, line_dr_ids, line_cr_ids, amount, voucher_currency, context=None):
|
||||
def onchange_line_ids(self, cr, uid, ids, line_dr_ids, line_cr_ids, amount, voucher_currency, type, context=None):
|
||||
context = context or {}
|
||||
if not line_dr_ids and not line_cr_ids:
|
||||
return {'value':{}}
|
||||
|
@ -215,7 +212,7 @@ class account_voucher(osv.osv):
|
|||
if voucher_line.get('currency_id', company_currency) != company_currency:
|
||||
is_multi_currency = True
|
||||
break
|
||||
return {'value': {'writeoff_amount': self._compute_writeoff_amount(cr, uid, line_dr_ids, line_cr_ids, amount), 'is_multi_currency': is_multi_currency}}
|
||||
return {'value': {'writeoff_amount': self._compute_writeoff_amount(cr, uid, line_dr_ids, line_cr_ids, amount, type), 'is_multi_currency': is_multi_currency}}
|
||||
|
||||
def _get_writeoff_amount(self, cr, uid, ids, name, args, context=None):
|
||||
if not ids: return {}
|
||||
|
@ -223,12 +220,13 @@ class account_voucher(osv.osv):
|
|||
res = {}
|
||||
debit = credit = 0.0
|
||||
for voucher in self.browse(cr, uid, ids, context=context):
|
||||
sign = voucher.type == 'payment' and -1 or 1
|
||||
for l in voucher.line_dr_ids:
|
||||
debit += l.amount
|
||||
for l in voucher.line_cr_ids:
|
||||
credit += l.amount
|
||||
currency = voucher.currency_id or voucher.company_id.currency_id
|
||||
res[voucher.id] = currency_obj.round(cr, uid, currency, abs(voucher.amount - abs(credit - debit)))
|
||||
res[voucher.id] = currency_obj.round(cr, uid, currency, voucher.amount - sign * (credit - debit))
|
||||
return res
|
||||
|
||||
def _paid_amount_in_company_currency(self, cr, uid, ids, name, args, context=None):
|
||||
|
@ -716,7 +714,7 @@ class account_voucher(osv.osv):
|
|||
default['value']['pre_line'] = 1
|
||||
elif ttype == 'receipt' and len(default['value']['line_dr_ids']) > 0:
|
||||
default['value']['pre_line'] = 1
|
||||
default['value']['writeoff_amount'] = self._compute_writeoff_amount(cr, uid, default['value']['line_dr_ids'], default['value']['line_cr_ids'], price)
|
||||
default['value']['writeoff_amount'] = self._compute_writeoff_amount(cr, uid, default['value']['line_dr_ids'], default['value']['line_cr_ids'], price, ttype)
|
||||
return default
|
||||
|
||||
def onchange_payment_rate_currency(self, cr, uid, ids, currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context=None):
|
||||
|
|
|
@ -274,4 +274,19 @@
|
|||
</record>
|
||||
|
||||
</data>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- After installation of the module, open the related menu -->
|
||||
<record id="action_client_invoice_menu" model="ir.actions.client">
|
||||
<field name="name">Open Invoicing Menu</field>
|
||||
<field name="tag">reload</field>
|
||||
<field name="params" eval="{'menu_id': ref('account.menu_finance')}"/>
|
||||
</record>
|
||||
<record id="todo_open_invoice_menu" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_client_invoice_menu"/>
|
||||
<field name="type">automatic</field>
|
||||
<field name="sequence">100</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -40,7 +40,7 @@ class invoice(osv.osv):
|
|||
'domain': '[]',
|
||||
'context': {
|
||||
'default_partner_id': inv.partner_id.id,
|
||||
'default_amount': inv.residual,
|
||||
'default_amount': inv.type in ('out_refund', 'in_refund') and -inv.residual or inv.residual,
|
||||
'default_name':inv.name,
|
||||
'close_after_process': True,
|
||||
'invoice_type':inv.type,
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
- account_id: account.a_recv
|
||||
amount: 1000.0
|
||||
name: Voucher for Axelor
|
||||
partner_id: base.res_partner_desertic_hispafuentes
|
||||
partner_id: base.res_partner_12
|
||||
period_id: account.period_6
|
||||
reference: none
|
||||
|
||||
|
@ -59,7 +59,7 @@
|
|||
- account_id: account.cash
|
||||
amount: 1000.0
|
||||
name: Voucher Axelor
|
||||
partner_id: base.res_partner_desertic_hispafuentes
|
||||
partner_id: base.res_partner_12
|
||||
period_id: account.period_6
|
||||
reference: none
|
||||
|
||||
|
|
|
@ -82,10 +82,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -115,10 +115,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -149,7 +149,7 @@
|
|||
company_id: base.main_company
|
||||
journal_id: bank_journal_USD
|
||||
name: 'First payment: Case 1 USD/USD'
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-03-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -173,25 +173,25 @@
|
|||
self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 10.0
|
||||
I check that writeoff amount computed is -10.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 10.0), "Writeoff amount is not 10.0"
|
||||
assert (voucher_id.writeoff_amount == -10.0), "Writeoff amount is not -10.0"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my first voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -205,7 +205,7 @@
|
|||
I check that my write-off is correct. 9 debit and 10 amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -243,7 +243,7 @@
|
|||
company_id: base.main_company
|
||||
journal_id: bank_journal_USD
|
||||
name: 'Second payment: Case 1'
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-04-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -266,25 +266,25 @@
|
|||
self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
|
||||
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 5.0
|
||||
I check that writeoff amount computed is -5.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 5.0), "Writeoff amount is not 5.0"
|
||||
assert (voucher_id.writeoff_amount == -5.0), "Writeoff amount is not -5.0"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my second voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -302,7 +302,7 @@
|
|||
I check that my writeoff is correct. 4.75 debit and 5 amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
|
|
@ -53,10 +53,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
check_total : 200
|
||||
-
|
||||
|
@ -88,10 +88,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
check_total : 100.0
|
||||
-
|
||||
|
@ -122,7 +122,7 @@
|
|||
company_id: base.main_company
|
||||
journal_id: bank_journal_EUR
|
||||
name: 'First payment: Case 2 SUPPL USD/EUR',
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-03-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -149,14 +149,14 @@
|
|||
I check that writeoff amount computed is -15.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == -15.0), "Writeoff amount is not -15.0"
|
||||
-
|
||||
I check that currency rate difference is 34.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.currency_rate_difference == 34.0), "Currency rate difference is not 34.0"
|
||||
-
|
||||
|
@ -164,14 +164,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -187,7 +187,7 @@
|
|||
I check that my writeoff is correct. -15 in credit with no amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -226,7 +226,7 @@
|
|||
amount: 45.0
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_USD
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-04-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -254,14 +254,14 @@
|
|||
I check that writeoff amount computed is -5.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 5.0), "Writeoff amount is not 5.0"
|
||||
-
|
||||
I check that currency rate difference is 8.50
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.currency_rate_difference == 8.50), "Currency rate difference is not 8.50"
|
||||
-
|
||||
|
@ -269,14 +269,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that my voucher state is posted
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert voucher_id.state == 'posted', "Voucher state is not posted"
|
||||
-
|
||||
|
@ -289,7 +289,7 @@
|
|||
I check that my writeoff is correct. 4.75 in credit and 5 in amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
|
|
@ -88,10 +88,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -121,10 +121,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -153,7 +153,7 @@
|
|||
amount: 200.0
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_EUR
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-03-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -182,14 +182,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -221,7 +221,7 @@
|
|||
amount: 80
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_USD
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-04-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -249,7 +249,7 @@
|
|||
I check that writeoff amount computed is 2.22
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (round(voucher_id.writeoff_amount, 2) == 2.22), "Writeoff amount is not 2.22$"
|
||||
-
|
||||
|
@ -257,14 +257,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that my voucher state is posted
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert voucher_id.state == 'posted', "Voucher state is not posted"
|
||||
-
|
||||
|
@ -277,7 +277,7 @@
|
|||
I check that my writeoff is correct. 2.11 in credit and 2.22 in amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
|
|
@ -88,10 +88,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -121,10 +121,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 100.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -153,7 +153,7 @@
|
|||
amount: 200.0
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_EUR
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-03-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -182,14 +182,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -201,7 +201,7 @@
|
|||
I check that the debtor account has 2 new lines with 144.44 and 77.78 in amount_currency columns and their credit columns are 130 and 70
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -236,7 +236,7 @@
|
|||
amount: 80.0
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_USD
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-04-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -264,7 +264,7 @@
|
|||
I check that writeoff amount computed is 2.22
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (round(voucher_id.writeoff_amount, 2) == 2.22), "Writeoff amount is not 2.22$"
|
||||
-
|
||||
|
@ -272,14 +272,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that my voucher state is posted
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert voucher_id.state == 'posted', "Voucher state is not posted"
|
||||
-
|
||||
|
@ -292,7 +292,7 @@
|
|||
I check that my writeoff is correct. 2.11 in credit and 2.22 in amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
|
|
@ -42,10 +42,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 150.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -75,10 +75,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 80.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -107,7 +107,7 @@
|
|||
amount: 120.0
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_EUR
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-03-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -135,7 +135,7 @@
|
|||
I check that writeoff amount computed is 0.00
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0.00"
|
||||
-
|
||||
|
@ -143,14 +143,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my first voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -162,7 +162,7 @@
|
|||
I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 20 and 100 respectively
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -197,7 +197,7 @@
|
|||
amount: 120.0
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_EUR
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-04-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -225,7 +225,7 @@
|
|||
I check that writeoff amount computed is 0.00
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0"
|
||||
-
|
||||
|
@ -233,14 +233,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my second voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -252,7 +252,7 @@
|
|||
I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 70 and 50
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
|
|
@ -76,10 +76,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 200.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
reference_type: none
|
||||
-
|
||||
I Validate invoice by clicking on Validate button
|
||||
|
@ -108,7 +108,7 @@
|
|||
amount: 200
|
||||
company_id: base.main_company
|
||||
journal_id: bank_journal_CHF
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_3
|
||||
date: !eval time.strftime("%Y-03-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -135,7 +135,7 @@
|
|||
I check that writeoff amount computed is 13.26
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
assert (round(voucher_id.writeoff_amount,2) == 13.26), "Writeoff amount is not 13.26 CHF"
|
||||
-
|
||||
|
@ -143,14 +143,14 @@
|
|||
-
|
||||
!python {model: account.voucher}: |
|
||||
import netsvc
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
|
||||
-
|
||||
I check that the move of my voucher is valid
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
@ -167,7 +167,7 @@
|
|||
I check that my writeoff is correct. 11.05 credit and 13.26 amount_currency
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
|
||||
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
|
||||
voucher_id = self.browse(cr, uid, voucher[0])
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
|
||||
|
|
|
@ -55,10 +55,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 1000.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
-
|
||||
I validate the invoice.
|
||||
-
|
||||
|
@ -88,7 +88,7 @@
|
|||
company_id: base.main_company
|
||||
journal_id: bank_journal_USD1
|
||||
name: 'payment: Case EUR/USD'
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_5
|
||||
date: !eval time.strftime("%Y-02-01")
|
||||
payment_option: 'with_writeoff'
|
||||
|
@ -107,11 +107,11 @@
|
|||
self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
|
||||
assert (voucher.state=='draft'), "Voucher is not in draft state"
|
||||
-
|
||||
I check that writeoff amount computed is 50.0
|
||||
I check that writeoff amount computed is -50.0
|
||||
-
|
||||
!python {model: account.voucher}: |
|
||||
voucher = self.browse(cr, uid, ref('account_voucher_eur_usd_case'))
|
||||
assert (voucher.writeoff_amount == 50.0), "Writeoff amount is not 50.0"
|
||||
assert (voucher.writeoff_amount == -50.0), "Writeoff amount is not -50.0"
|
||||
-
|
||||
I confirm the voucher
|
||||
-
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
name: '[PC1] Basic PC'
|
||||
price_unit: 450.0
|
||||
quantity: 1.0
|
||||
product_id: product.product_product_pc1
|
||||
product_id: product.product_product_3
|
||||
uos_id: product.product_uom_unit
|
||||
journal_id: account.sales_journal
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
|
||||
-
|
||||
I check that the customer invoice is in draft state
|
||||
|
@ -40,14 +40,14 @@
|
|||
import netsvc
|
||||
vals = {}
|
||||
journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None)
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), journal_id, 0.0, 1, ttype='receipt', date=False)
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 450.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.EUR'),
|
||||
'journal_id': ref('account.bank_journal'),
|
||||
'partner_id': ref('base.res_partner_seagate'),
|
||||
'partner_id': ref('base.res_partner_19'),
|
||||
'period_id': ref('account.period_8'),
|
||||
'type': 'receipt',
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
- account_id: account.a_sale
|
||||
amount: 30000.0
|
||||
type: cr
|
||||
partner_id: base.res_partner_seagate
|
||||
partner_id: base.res_partner_19
|
||||
period_id: account.period_9
|
||||
type: sale
|
||||
|
||||
|
@ -48,14 +48,14 @@
|
|||
import netsvc
|
||||
vals = {}
|
||||
journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None)
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), journal_id, 0.0, 1, ttype='receipt', date=False)
|
||||
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False)
|
||||
vals = {
|
||||
'account_id': ref('account.cash'),
|
||||
'amount': 30000.0,
|
||||
'company_id': ref('base.main_company'),
|
||||
'currency_id': ref('base.EUR'),
|
||||
'journal_id': ref('account.bank_journal'),
|
||||
'partner_id': ref('base.res_partner_seagate'),
|
||||
'partner_id': ref('base.res_partner_19'),
|
||||
'period_id': ref('account.period_8'),
|
||||
'type': 'receipt',
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
</group>
|
||||
<notebook>
|
||||
<page string="Payment Information">
|
||||
<field name="line_dr_ids" attrs="{'invisible': [('type', '=', 'receipt')]}" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
|
||||
<field name="line_dr_ids" attrs="{'invisible': [('type', '=', 'receipt')]}" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
|
||||
<tree string="Open Supplier Journal Entries" editable="bottom" colors="gray:amount==0">
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
|
@ -87,7 +87,7 @@
|
|||
<field name="amount" sum="Total Allocation"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="line_cr_ids" attrs="{'invisible': [('type', '=', 'payment')]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
|
||||
<field name="line_cr_ids" attrs="{'invisible': [('type', '=', 'payment')]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
|
||||
<tree string="Open Customer Journal Entries" editable="bottom" colors="gray:amount==0">
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
|
@ -332,7 +332,7 @@
|
|||
|
||||
<notebook>
|
||||
<page string="Payment Information" groups="base.group_user">
|
||||
<field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
|
||||
<field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
|
||||
<tree string="Invoices and outstanding transactions" editable="bottom" colors="gray:amount==0">
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
|
@ -348,7 +348,7 @@
|
|||
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)" string="Allocation"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="line_dr_ids" attrs="{'invisible': [('pre_line','=',False)]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
|
||||
<field name="line_dr_ids" attrs="{'invisible': [('pre_line','=',False)]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
|
||||
<tree string="Credits" editable="bottom" colors="gray:amount==0">
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import account_voucher_unreconcile
|
||||
import account_statement_from_invoice
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -75,16 +75,26 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
statement.currency.id, amount, context=ctx)
|
||||
|
||||
context.update({'move_line_ids': [line.id]})
|
||||
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, amount=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), date=line_date, context=context)
|
||||
voucher_res = { 'type':(amount < 0 and 'payment' or 'receipt'),
|
||||
type = 'general'
|
||||
ttype = amount < 0 and 'payment' or 'receipt'
|
||||
sign = 1
|
||||
if line.journal_id.type in ('sale', 'sale_refund'):
|
||||
type = 'customer'
|
||||
ttype = 'receipt'
|
||||
elif line.journal_id.type in ('purchase', 'purhcase_refund'):
|
||||
type = 'supplier'
|
||||
ttype = 'payment'
|
||||
sign = -1
|
||||
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, amount=sign*amount, currency_id= statement.currency.id, ttype=ttype, date=line_date, context=context)
|
||||
voucher_res = { 'type': ttype,
|
||||
'name': line.name,
|
||||
'partner_id': line.partner_id.id,
|
||||
'journal_id': statement.journal_id.id,
|
||||
'account_id': result.get('account_id', statement.journal_id.default_credit_account_id.id), # improve me: statement.journal_id.default_credit_account_id.id
|
||||
'account_id': result.get('account_id', statement.journal_id.default_credit_account_id.id),
|
||||
'company_id': statement.company_id.id,
|
||||
'currency_id': statement.currency.id,
|
||||
'date': line.date,
|
||||
'amount':abs(amount),
|
||||
'amount': sign*amount,
|
||||
'period_id':statement.period_id.id}
|
||||
voucher_id = voucher_obj.create(cr, uid, voucher_res, context=context)
|
||||
|
||||
|
@ -97,12 +107,6 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
if voucher_line_dict:
|
||||
voucher_line_dict.update({'voucher_id': voucher_id})
|
||||
voucher_line_obj.create(cr, uid, voucher_line_dict, context=context)
|
||||
if line.journal_id.type == 'sale':
|
||||
type = 'customer'
|
||||
elif line.journal_id.type == 'purchase':
|
||||
type = 'supplier'
|
||||
else:
|
||||
type = 'general'
|
||||
statement_line_obj.create(cr, uid, {
|
||||
'name': line.name or '?',
|
||||
'amount': amount,
|
||||
|
@ -112,81 +116,10 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
'statement_id': statement_id,
|
||||
'ref': line.ref,
|
||||
'voucher_id': voucher_id,
|
||||
'date': time.strftime('%Y-%m-%d'), #time.strftime('%Y-%m-%d'), #line.date_maturity or,
|
||||
'date': time.strftime('%Y-%m-%d'),
|
||||
}, context=context)
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
account_statement_from_invoice_lines()
|
||||
|
||||
class account_statement_from_invoice(osv.osv_memory):
|
||||
"""
|
||||
Generate Entries by Statement from Invoices
|
||||
"""
|
||||
_name = "account.statement.from.invoice"
|
||||
_description = "Entries by Statement from Invoices"
|
||||
_columns = {
|
||||
'date': fields.date('Date payment',required=True),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_journal_relation', 'account_id', 'journal_id', 'Journal'),
|
||||
'line_ids': fields.many2many('account.move.line', 'account_move_line_relation', 'move_id', 'line_id', 'Invoices'),
|
||||
}
|
||||
_defaults = {
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
|
||||
def search_invoices(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
line_obj = self.pool.get('account.move.line')
|
||||
statement_obj = self.pool.get('account.bank.statement')
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
statement_id = 'statement_id' in context and context['statement_id']
|
||||
|
||||
data = self.read(cr, uid, ids, context=context)[0]
|
||||
statement = statement_obj.browse(cr, uid, statement_id, context=context)
|
||||
args_move_line = []
|
||||
repeated_move_line_ids = []
|
||||
# Creating a group that is unique for importing move lines(move lines, once imported into statement lines, should not appear again)
|
||||
for st_line in statement.line_ids:
|
||||
args_move_line = []
|
||||
args_move_line.append(('name', '=', st_line.name))
|
||||
args_move_line.append(('ref', '=', st_line.ref))
|
||||
if st_line.partner_id:
|
||||
args_move_line.append(('partner_id', '=', st_line.partner_id.id))
|
||||
args_move_line.append(('account_id', '=', st_line.account_id.id))
|
||||
|
||||
move_line_id = line_obj.search(cr, uid, args_move_line, context=context)
|
||||
if move_line_id:
|
||||
repeated_move_line_ids += move_line_id
|
||||
|
||||
journal_ids = data['journal_ids']
|
||||
if journal_ids == []:
|
||||
journal_ids = journal_obj.search(cr, uid, [('type', 'in', ('sale', 'cash', 'purchase'))], context=context)
|
||||
|
||||
args = [
|
||||
('reconcile_id', '=', False),
|
||||
('journal_id', 'in', journal_ids),
|
||||
('account_id.reconcile', '=', True)]
|
||||
|
||||
if repeated_move_line_ids:
|
||||
args.append(('id', 'not in', repeated_move_line_ids))
|
||||
|
||||
line_ids = line_obj.search(cr, uid, args,
|
||||
context=context)
|
||||
|
||||
model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'), ('name', '=', 'view_account_statement_from_invoice_lines')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'domain': "[('id','in', ["+','.join([str(x) for x in line_ids])+"])]",
|
||||
'name': _('Import Entries'),
|
||||
'context': context,
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'account.statement.from.invoice.lines',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
account_statement_from_invoice()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -1,34 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_account_statement_from_invoice" model="ir.ui.view">
|
||||
<field name="name">account.statement.from.invoice.form</field>
|
||||
<field name="model">account.statement.from.invoice</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Import Invoices in Statement" version="7.0">
|
||||
<group>
|
||||
<field name="date"/>
|
||||
<field name="journal_ids" domain="[('type','in',['sale','purchase','cash'])]"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button string="Go" name="search_invoices" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_account_statement_from_invoice" model="ir.actions.act_window">
|
||||
<field name="name">Import Invoices in Statement</field>
|
||||
<field name="res_model">account.statement.from.invoice</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_account_statement_from_invoice"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record id="view_account_statement_from_invoice_lines" model="ir.ui.view">
|
||||
<field name="name">account.statement.from.invoice.lines.form</field>
|
||||
<field name="model">account.statement.from.invoice.lines</field>
|
||||
|
|
|
@ -1,62 +0,0 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv
|
||||
from osv import fields
|
||||
|
||||
class account_voucher_unreconcile(osv.osv_memory):
|
||||
_name = "account.voucher.unreconcile"
|
||||
_description = "Account voucher unreconcile"
|
||||
|
||||
_columns = {
|
||||
'remove':fields.boolean('Want to remove accounting entries too ?', required=False),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'remove': True,
|
||||
}
|
||||
|
||||
def trans_unrec(self, cr, uid, ids, context=None):
|
||||
# res = self.browse(cr, uid, ids[0])
|
||||
if context is None:
|
||||
context = {}
|
||||
voucher_pool = self.pool.get('account.voucher')
|
||||
reconcile_pool = self.pool.get('account.move.reconcile')
|
||||
if context.get('active_id'):
|
||||
voucher = voucher_pool.browse(cr, uid, context.get('active_id'), context=context)
|
||||
recs = []
|
||||
for line in voucher.move_ids:
|
||||
if line.reconcile_id:
|
||||
recs += [line.reconcile_id.id]
|
||||
if line.reconcile_partial_id:
|
||||
recs += [line.reconcile_partial_id.id]
|
||||
#for rec in recs:
|
||||
reconcile_pool.unlink(cr, uid, recs)
|
||||
# if res.remove:
|
||||
voucher_pool.cancel_voucher(cr, uid, [context.get('active_id')], context)
|
||||
# wf_service = netsvc.LocalService("workflow")
|
||||
# wf_service.trg_validate(uid, 'account.voucher', context.get('active_id'), 'cancel_voucher', cr)
|
||||
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
account_voucher_unreconcile()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,31 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_account_voucher_unreconcile" model="ir.ui.view">
|
||||
<field name="name">Account voucher unreconcile</field>
|
||||
<field name="model">account.voucher.unreconcile</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Unreconciliation" version="7.0">
|
||||
<separator string="Unreconciliation Transactions" />
|
||||
<label string="If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"/>
|
||||
<footer>
|
||||
<button name="trans_unrec" default_focus="1" string="Unreconcile" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_view_account_voucher_unreconcile">
|
||||
<field name="name">Unreconcile entries</field>
|
||||
<field name="res_model">account.voucher.unreconcile</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_account_voucher_unreconcile"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import urllib
|
||||
|
||||
import werkzeug.urls
|
||||
|
@ -31,37 +31,36 @@ from openerp.modules.registry import RegistryManager
|
|||
try:
|
||||
import openerp.addons.web.common.http as openerpweb
|
||||
except ImportError:
|
||||
import web.common.http as openerpweb
|
||||
import web.common.http as openerpweb # noqa
|
||||
|
||||
from openid import oidutil
|
||||
from openid.store import memstore
|
||||
#from openid.store import filestore
|
||||
from openid.store import filestore
|
||||
from openid.consumer import consumer
|
||||
from openid.cryptutil import randomString
|
||||
from openid.extensions import ax, sreg
|
||||
|
||||
from .. import utils
|
||||
|
||||
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
oidutil.log = _logger.debug
|
||||
|
||||
_storedir = os.path.join(tempfile.gettempdir(), 'openerp-auth_openid-store')
|
||||
|
||||
class GoogleAppsAwareConsumer(consumer.GenericConsumer):
|
||||
def complete(self, message, endpoint, return_to):
|
||||
if message.getOpenIDNamespace() == consumer.OPENID2_NS:
|
||||
server_url = message.getArg(consumer.OPENID2_NS, 'op_endpoint', consumer.no_default)
|
||||
server_url = message.getArg(consumer.OPENID2_NS, 'op_endpoint', '')
|
||||
if server_url.startswith('https://www.google.com/a/'):
|
||||
assoc_handle = message.getArg(consumer.OPENID_NS, 'assoc_handle')
|
||||
assoc = self.store.getAssociation(server_url, assoc_handle)
|
||||
if assoc:
|
||||
# update fields
|
||||
for attr in ['claimed_id', 'identity']:
|
||||
value = message.getArg(consumer.OPENID2_NS, attr)
|
||||
value = message.getArg(consumer.OPENID2_NS, attr, '')
|
||||
value = 'https://www.google.com/accounts/o8/user-xrds?uri=%s' % urllib.quote_plus(value)
|
||||
message.setArg(consumer.OPENID2_NS, attr, value)
|
||||
|
||||
# now, resign the message
|
||||
assoc_handle = message.getArg(consumer.OPENID_NS, 'assoc_handle')
|
||||
assoc = self.store.getAssociation(server_url, assoc_handle)
|
||||
message.delArg(consumer.OPENID2_NS, 'sig')
|
||||
message.delArg(consumer.OPENID2_NS, 'signed')
|
||||
message = assoc.signMessage(message)
|
||||
|
@ -72,12 +71,11 @@ class GoogleAppsAwareConsumer(consumer.GenericConsumer):
|
|||
class OpenIDController(openerpweb.Controller):
|
||||
_cp_path = '/auth_openid/login'
|
||||
|
||||
_store = memstore.MemoryStore() # TODO use a filestore
|
||||
_store = filestore.FileOpenIDStore(_storedir)
|
||||
|
||||
_REQUIRED_ATTRIBUTES = ['email']
|
||||
_OPTIONAL_ATTRIBUTES = 'nickname fullname postcode country language timezone'.split()
|
||||
|
||||
|
||||
def _add_extensions(self, request):
|
||||
"""Add extensions to the request"""
|
||||
|
||||
|
@ -118,8 +116,20 @@ class OpenIDController(openerpweb.Controller):
|
|||
def _get_realm(self, req):
|
||||
return req.httprequest.host_url
|
||||
|
||||
@openerpweb.httprequest
|
||||
def verify_direct(self, req, db, url):
|
||||
result = self._verify(req, db, url)
|
||||
if 'error' in result:
|
||||
return werkzeug.exceptions.BadRequest(result['error'])
|
||||
if result['action'] == 'redirect':
|
||||
return werkzeug.utils.redirect(result['value'])
|
||||
return result['value']
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def verify(self, req, db, url):
|
||||
return self._verify(req, db, url)
|
||||
|
||||
def _verify(self, req, db, url):
|
||||
redirect_to = werkzeug.urls.Href(req.httprequest.host_url + 'auth_openid/login/process')(session_id=req.session_id)
|
||||
realm = self._get_realm(req)
|
||||
|
||||
|
@ -145,7 +155,6 @@ class OpenIDController(openerpweb.Controller):
|
|||
form_html = request.htmlMarkup(realm, redirect_to)
|
||||
return {'action': 'post', 'value': form_html, 'session_id': req.session_id}
|
||||
|
||||
|
||||
@openerpweb.httprequest
|
||||
def process(self, req, **kw):
|
||||
session = getattr(req.session, 'openid_session', None)
|
||||
|
@ -185,10 +194,8 @@ class OpenIDController(openerpweb.Controller):
|
|||
domain += ['|', ('openid_email', '=', False)]
|
||||
domain += [('openid_email', '=', openid_email)]
|
||||
|
||||
domain += [
|
||||
('openid_url', '=', openid_url),
|
||||
('active', '=', True),
|
||||
]
|
||||
domain += [('openid_url', '=', openid_url), ('active', '=', True)]
|
||||
|
||||
ids = Users.search(cr, 1, domain)
|
||||
assert len(ids) < 2
|
||||
if ids:
|
||||
|
@ -199,12 +206,11 @@ class OpenIDController(openerpweb.Controller):
|
|||
# TODO fill empty fields with the ones from sreg/ax
|
||||
cr.commit()
|
||||
|
||||
u = req.session.login(dbname, login, key)
|
||||
req.session.authenticate(dbname, login, key, {})
|
||||
|
||||
if not user_id:
|
||||
session['message'] = 'This OpenID identifier is not associated to any active users'
|
||||
|
||||
|
||||
elif info.status == consumer.SETUP_NEEDED:
|
||||
session['message'] = info.setup_url
|
||||
elif info.status == consumer.FAILURE and display_identifier:
|
||||
|
@ -217,7 +223,6 @@ class OpenIDController(openerpweb.Controller):
|
|||
# information in a log.
|
||||
session['message'] = 'Verification failed.'
|
||||
|
||||
|
||||
fragment = '#loginerror' if not user_id else ''
|
||||
return werkzeug.utils.redirect('/' + fragment)
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
</record>
|
||||
|
||||
<record model="crm.meeting.type" id="categ_meet3">
|
||||
<field name="name">Phone Call</field>
|
||||
<field name="name">Off-site Meeting</field>
|
||||
</record>
|
||||
|
||||
<record model="res.request.link" id="request_link_meeting">
|
||||
|
|
|
@ -6,74 +6,75 @@
|
|||
-->
|
||||
|
||||
<!--For Meetings-->
|
||||
<record id="crm_case_followuponproposal0" model="crm.meeting">
|
||||
<record id="crm_meeting_1" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Meeting to discuss project plan and hash out the details of implementation "" name="description"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field eval="time.strftime('%Y-%m-03 10:20:03')" name="date"/>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
|
||||
<field eval=""Follow-up on proposal"" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-03 16:38:03')" name="date_deadline"/>
|
||||
<field eval="6.3" name="duration"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_initialdiscussion0" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="7.0" name="duration"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""draft"" name="state"/>
|
||||
<field eval="time.strftime('%Y-%m-05 12:01:01')" name="date"/>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
||||
<field eval=""Initial discussion"" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-05 19:01:01')" name="date_deadline"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_discusspricing0" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.0" name="duration"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Meeting to discuss project plan and hash out the details of implementation "" name="description"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
<field eval="time.strftime('%Y-%m-12 15:55:05')" name="date"/>
|
||||
<field name="name">Follow-up for Project proposal</field>
|
||||
<field name="description">Meeting to discuss project plan and hash out the details of implementation.</field>
|
||||
<field eval="time.strftime('%Y-%m-03 10:20:00')" name="date"/>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/>
|
||||
<field eval=""Discuss pricing"" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-12 18:55:05')" name="date_deadline"/>
|
||||
<field eval="time.strftime('%Y-%m-03 16:30:00')" name="date_deadline"/>
|
||||
<field eval="6.3" name="duration"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_reviewneeds0" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="6.0" name="duration"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field eval="time.strftime('%Y-%m-20 10:02:02')" name="date"/>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
||||
<field eval=""Review needs"" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-20 16:02:02')" name="date_deadline"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_changesindesigning0" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="05" name="duration"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""draft"" name="state"/>
|
||||
<field eval="time.strftime('%Y-%m-22 11:05:05')" name="date"/>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
|
||||
<field eval=""Changes in Designing"" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-22 16:05:05')" name="date_deadline"/>
|
||||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_updatethedata0" model="crm.meeting">
|
||||
<record id="crm_meeting_2" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
<field eval="time.strftime('%Y-%m-18 13:12:49')" name="date"/>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
|
||||
<field eval=""Update the data"" name="name"/>
|
||||
<field eval="13.3" name="duration"/>
|
||||
<field eval="time.strftime('%Y-%m-19 02:30:49')" name="date_deadline"/>
|
||||
<field name="name">Initial discussion</field>
|
||||
<field name="description">Discussion with partner for product.</field>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
<field eval="time.strftime('%Y-%m-05 12:00:00')" name="date"/>
|
||||
<field eval="time.strftime('%Y-%m-05 19:00:00')" name="date_deadline"/>
|
||||
<field eval="7.0" name="duration"/>
|
||||
<field name="state">draft</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_meeting_3" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="name">Pricing Discussion</field>
|
||||
<field name="description">Internal meeting for discussion for new pricing for product and services.</field>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2'), ref('categ_meet4')])]"/>
|
||||
<field eval="time.strftime('%Y-%m-12 15:55:05')" name="date"/>
|
||||
<field eval="time.strftime('%Y-%m-12 18:55:05')" name="date_deadline"/>
|
||||
<field eval="3.0" name="duration"/>
|
||||
<field name="state">done</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_meeting_4" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="name">Requirements review</field>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
|
||||
<field eval="time.strftime('%Y-%m-20 8:00:00')" name="date"/>
|
||||
<field eval="time.strftime('%Y-%m-20 10:30:00')" name="date_deadline"/>
|
||||
<field eval="2.5" name="duration"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_meeting_5" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="name">Changes in Designing</field>
|
||||
<field name="email_from">info@opensides.be</field>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet5')])]"/>
|
||||
<field eval="time.strftime('%Y-%m-22 11:05:00')" name="date"/>
|
||||
<field eval="time.strftime('%Y-%m-22 16:05:00')" name="date_deadline"/>
|
||||
<field eval="5" name="duration"/>
|
||||
<field name="state">draft</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_meeting_6" model="crm.meeting">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="name">Presentation for new Services</field>
|
||||
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet4')])]"/>
|
||||
<field eval="time.strftime('%Y-%m-18 2:00:00')" name="date"/>
|
||||
<field eval="time.strftime('%Y-%m-18 10:30:00')" name="date_deadline"/>
|
||||
<field eval="8.5" name="duration"/>
|
||||
<field name="state">done</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -0,0 +1,821 @@
|
|||
# Mongolian 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-08-10 08:54+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-11 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 15780)\n"
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "Value Mapping"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: help:caldav.browse,url:0
|
||||
msgid "Url of the caldav server, use for synchronization"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/caldav_browse.py:99
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"Prerequire\n"
|
||||
"----------\n"
|
||||
"There is no buit-in way to synchronize calendar with caldav.\n"
|
||||
"So you need to install a third part software : Calendar (CalDav)\n"
|
||||
"for now it's the only one\n"
|
||||
"\n"
|
||||
"configuration\n"
|
||||
"-------------\n"
|
||||
"\n"
|
||||
"1. Open Calendar Sync\n"
|
||||
" I'll get an interface with 2 tabs\n"
|
||||
" Stay on the first one\n"
|
||||
"\n"
|
||||
"2. CaDAV Calendar URL : put the URL given above (ie : "
|
||||
"http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)\n"
|
||||
"\n"
|
||||
"3. Put your openerp username and password\n"
|
||||
"\n"
|
||||
"4. If your server don't use SSL, you'll get a warnign, say \"Yes\"\n"
|
||||
"\n"
|
||||
"5. Then you can synchronize manually or custom the settings to synchronize "
|
||||
"every x minutes.\n"
|
||||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.alias,name:0
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_calendar_event_export
|
||||
msgid "Event Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.subscribe:0
|
||||
msgid "Provide Path for Remote Calendar"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.actions.act_window,name:caldav.action_calendar_event_import_values
|
||||
msgid "Import .ics File"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:caldav.browse:0
|
||||
#: view:calendar.event.export:0
|
||||
msgid "_Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.attributes,type:0
|
||||
#: selection:basic.calendar.lines,name:0
|
||||
msgid "Attendee"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: sql_constraint:basic.calendar.fields:0
|
||||
msgid "Can not map a field more than once"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.actions.act_window,help:caldav.action_caldav_form
|
||||
msgid ""
|
||||
"\"Calendars\" allow you to Customize calendar event and todo attribute with "
|
||||
"any of OpenERP model.Caledars provide iCal Import/Export "
|
||||
"functionality.Webdav server that provides remote access to calendar.Help You "
|
||||
"to synchronize Meeting with Calendars client.You can access Calendars using "
|
||||
"CalDAV clients, like sunbird, Calendar Evaluation, Mobile."
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:789
|
||||
#: code:addons/caldav/calendar.py:879
|
||||
#: code:addons/caldav/wizard/calendar_event_import.py:63
|
||||
#, python-format
|
||||
msgid "Warning !"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.lines,object_id:0
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "Todo"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_user_preference
|
||||
msgid "User preference Form"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:user.preference,service:0
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.fields,fn:0
|
||||
msgid "Expression as constant"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
msgid "Evolution"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
#: view:calendar.event.subscribe:0
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/caldav_browse.py:123
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" 1. Go to Calendar View\n"
|
||||
"\n"
|
||||
" 2. File -> New -> Calendar\n"
|
||||
"\n"
|
||||
" 3. Fill the form\n"
|
||||
" - type : CalDav\n"
|
||||
" - name : Whaterver you want (ie : Meeting)\n"
|
||||
" - url : "
|
||||
"http://HOST:PORT/webdav/DB_NAME/calendars/users/USER/c/Meetings (ie : "
|
||||
"http://localhost:8069/webdav/db_1/calendars/users/demo/c/Meetings) the one "
|
||||
"given on the top of this window\n"
|
||||
" - uncheck \"User SSL\"\n"
|
||||
" - Username : Your username (ie : Demo)\n"
|
||||
" - Refresh : everytime you want that evolution synchronize the data "
|
||||
"with the server\n"
|
||||
"\n"
|
||||
" 4. Click ok and give your openerp password\n"
|
||||
"\n"
|
||||
" 5. A new calendar named with the name you gave should appear on the left "
|
||||
"side.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:879
|
||||
#, python-format
|
||||
msgid "Please provide proper configuration of \"%s\" in Calendar Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:user.preference:0
|
||||
msgid "Caldav's host name configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:caldav.browse,url:0
|
||||
msgid "Caldav Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.fields,fn:0
|
||||
msgid "Datetime In UTC"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
msgid "iPhone"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar,type:0
|
||||
#: selection:basic.calendar.attributes,type:0
|
||||
#: selection:basic.calendar.lines,name:0
|
||||
msgid "TODO"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.export:0
|
||||
msgid "Export ICS"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.fields,fn:0
|
||||
msgid "Use the field"
|
||||
msgstr "Энгийн талбар"
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:789
|
||||
#, python-format
|
||||
msgid "Can not create line \"%s\" more than once"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "Webcal Calendar"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
#: field:basic.calendar,line_ids:0
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_lines
|
||||
msgid "Calendar Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_calendar_event_subscribe
|
||||
msgid "Event subscribe"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
msgid "Import ICS"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
#: view:calendar.event.subscribe:0
|
||||
#: view:user.preference:0
|
||||
msgid "_Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_event
|
||||
msgid "basic.calendar.event"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
#: selection:basic.calendar,type:0
|
||||
#: selection:basic.calendar.attributes,type:0
|
||||
#: selection:basic.calendar.lines,name:0
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:document.directory,calendar_collection:0
|
||||
#: field:user.preference,collection:0
|
||||
msgid "Calendar Collection"
|
||||
msgstr "Каледарын Цуглуулга"
|
||||
|
||||
#. module: caldav
|
||||
#: constraint:document.directory:0
|
||||
msgid "Error! You can not create recursive Directories."
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:user.preference:0
|
||||
msgid "_Open"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:user.preference:0
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,type:0
|
||||
#: field:basic.calendar.attributes,type:0
|
||||
#: field:basic.calendar.fields,type_id:0
|
||||
#: field:basic.calendar.lines,name:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: help:calendar.event.export,name:0
|
||||
msgid "Save in .ics format"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:1293
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_attributes
|
||||
msgid "Calendar attributes"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_caldav_browse
|
||||
msgid "Caldav Browse"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
msgid "Android based device"
|
||||
msgstr "Андройд дээр суурилсан төхөөрөмж"
|
||||
|
||||
#. module: caldav
|
||||
#: view:user.preference:0
|
||||
msgid "Configure your openerp hostname. For example : "
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,create_date:0
|
||||
msgid "Created Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "Attributes Mapping"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_document_directory
|
||||
msgid "Directory"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:calendar.event.subscribe,url_path:0
|
||||
msgid "Provide path for remote calendar"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.lines,domain:0
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.subscribe:0
|
||||
msgid "_Subscribe"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,user_id:0
|
||||
msgid "Owner"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
#: field:basic.calendar.alias,cal_line_id:0
|
||||
#: field:basic.calendar.lines,calendar_id:0
|
||||
#: model:ir.ui.menu,name:caldav.menu_calendar
|
||||
#: field:user.preference,calendar:0
|
||||
msgid "Calendar"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:41
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please install python-vobject from http://vobject.skyhouseconsulting.com/"
|
||||
msgstr ""
|
||||
"Уучлаарай python-vobject эндээс http://vobject.skyhouseconsulting.com/ "
|
||||
"суулгана уу"
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/calendar_event_import.py:63
|
||||
#, python-format
|
||||
msgid "Invalid format of the ics, file can not be imported"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,service:0
|
||||
msgid "CalDAV"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.fields,field_id:0
|
||||
msgid "OpenObject Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.alias,res_id:0
|
||||
msgid "Res. ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.subscribe:0
|
||||
msgid "Message..."
|
||||
msgstr "Мессеж"
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
#: field:basic.calendar,has_webcal:0
|
||||
msgid "WebCal"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:document.directory:0
|
||||
#: model:ir.actions.act_window,name:caldav.action_calendar_collection_form
|
||||
#: model:ir.ui.menu,name:caldav.menu_calendar_collection
|
||||
msgid "Calendar Collections"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:815
|
||||
#: sql_constraint:basic.calendar.alias:0
|
||||
#, python-format
|
||||
msgid "The same filename cannot apply to two records!"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: sql_constraint:document.directory:0
|
||||
msgid "Directory cannot be parent of itself!"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
#: field:document.directory,calendar_ids:0
|
||||
#: model:ir.actions.act_window,name:caldav.action_caldav_form
|
||||
#: model:ir.ui.menu,name:caldav.menu_caldav_directories
|
||||
msgid "Calendars"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,collection_id:0
|
||||
msgid "Collection"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,write_date:0
|
||||
msgid "Write Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/caldav_browse.py:32
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" * Webdav server that provides remote access to calendar\n"
|
||||
" * Synchronisation of calendar using WebDAV\n"
|
||||
" * Customize calendar event and todo attribute with any of OpenERP model\n"
|
||||
" * Provides iCal Import/Export functionality\n"
|
||||
"\n"
|
||||
" To access Calendars using CalDAV clients, point them to:\n"
|
||||
" "
|
||||
"http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n"
|
||||
"\n"
|
||||
" To access OpenERP Calendar using WebCal to remote site use the URL "
|
||||
"like:\n"
|
||||
" "
|
||||
"http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
|
||||
"\n"
|
||||
" Where,\n"
|
||||
" HOSTNAME: Host on which OpenERP server(With webdav) is running\n"
|
||||
" PORT : Port on which OpenERP server is running (By Default : 8069)\n"
|
||||
" DATABASE_NAME: Name of database on which OpenERP Calendar is "
|
||||
"created\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: sql_constraint:document.directory:0
|
||||
msgid "The directory name must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:user.preference:0
|
||||
msgid "User Preference"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
|
||||
#, python-format
|
||||
msgid "Please provide Proper URL !"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_timezone
|
||||
msgid "basic.calendar.timezone"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.fields,expr:0
|
||||
msgid "Expression"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_attendee
|
||||
msgid "basic.calendar.attendee"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_alias
|
||||
msgid "basic.calendar.alias"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
#: field:calendar.event.import,file_path:0
|
||||
msgid "Select ICS File"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:user.preference,device:0
|
||||
msgid "Software/Devices"
|
||||
msgstr "Програм /Төхөөрөмжүүд"
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.lines,mapping_ids:0
|
||||
msgid "Fields Mapping"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/caldav_browse.py:141
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"Prerequire\n"
|
||||
"----------\n"
|
||||
"If you are using thunderbird, first you need to install the lightning "
|
||||
"module\n"
|
||||
"http://www.mozilla.org/projects/calendar/lightning/\n"
|
||||
"\n"
|
||||
"configuration\n"
|
||||
"-------------\n"
|
||||
"\n"
|
||||
"1. Go to Calendar View\n"
|
||||
"\n"
|
||||
"2. File -> New Calendar\n"
|
||||
"\n"
|
||||
"3. Chosse \"On the Network\"\n"
|
||||
"\n"
|
||||
"4. for format choose CalDav\n"
|
||||
" and as location the url given above (ie : "
|
||||
"http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)\n"
|
||||
"\n"
|
||||
"5. Choose a name and a color for the Calendar, and we advice you to uncheck "
|
||||
"\"alarm\"\n"
|
||||
"\n"
|
||||
"6. Then put your openerp login and password (to give the password only check "
|
||||
"the box \"Use password Manager to remember this password\"\n"
|
||||
"\n"
|
||||
"7. Then Finish, your meetings should appear now in your calendar view\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:caldav.browse:0
|
||||
msgid "Browse Caldav"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:user.preference,host_name:0
|
||||
msgid "Host Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar
|
||||
msgid "basic.calendar"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "Other Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
msgid "Other"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "My Calendar(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: help:basic.calendar,has_webcal:0
|
||||
msgid ""
|
||||
"Also export a <name>.ics entry next to the calendar folder, with WebCal "
|
||||
"content."
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.fields,fn:0
|
||||
msgid "Function"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:user.preference:0
|
||||
msgid "database.my.openerp.com or companyserver.com"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
#: field:basic.calendar,description:0
|
||||
#: view:caldav.browse:0
|
||||
#: field:caldav.browse,description:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: help:basic.calendar.alias,cal_line_id:0
|
||||
msgid "The calendar/line this mapping applies to"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.fields,mapping:0
|
||||
msgid "Mapping"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/calendar_event_import.py:86
|
||||
#, python-format
|
||||
msgid "Import Sucessful"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
msgid "_Import"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_calendar_event_import
|
||||
msgid "Event Import"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.fields,fn:0
|
||||
msgid "Interval in hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:calendar.event.export,name:0
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.subscribe:0
|
||||
msgid "Subscribe to Remote Calendar"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: help:basic.calendar,calendar_color:0
|
||||
msgid "For supporting clients, the color of the calendar entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,name:0
|
||||
#: field:basic.calendar.attributes,name:0
|
||||
#: field:basic.calendar.fields,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.attributes,type:0
|
||||
#: selection:basic.calendar.lines,name:0
|
||||
msgid "Alarm"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_alarm
|
||||
msgid "basic.calendar.alarm"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:1293
|
||||
#, python-format
|
||||
msgid "Attendee must have an Email Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.actions.act_window,name:caldav.action_calendar_event_export_values
|
||||
msgid "Export .ics File"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:41
|
||||
#, python-format
|
||||
msgid "vobject Import Error!"
|
||||
msgstr "vobject Импорт алдаа !"
|
||||
|
||||
#. module: caldav
|
||||
#: field:calendar.event.export,file_path:0
|
||||
msgid "Save ICS file"
|
||||
msgstr "ICS файл хадгалах"
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/caldav_browse.py:50
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" For SSL specific configuration see the documentation below\n"
|
||||
"\n"
|
||||
"Now, to setup the calendars, you need to:\n"
|
||||
"\n"
|
||||
"1. Click on the \"Settings\" and go to the \"Mail, Contacts, Calendars\" "
|
||||
"page.\n"
|
||||
"2. Go to \"Add account...\"\n"
|
||||
"3. Click on \"Other\"\n"
|
||||
"4. From the \"Calendars\" group, select \"Add CalDAV Account\"\n"
|
||||
"\n"
|
||||
"5. Enter the host's name\n"
|
||||
" (ie : if the url is http://openerp.com:8069/webdav/db_1/calendars/ , "
|
||||
"openerp.com is the host)\n"
|
||||
"\n"
|
||||
"6. Fill Username and password with your openerp login and password\n"
|
||||
"\n"
|
||||
"7. As a description, you can either leave the server's name or\n"
|
||||
" something like \"OpenERP calendars\".\n"
|
||||
"\n"
|
||||
"9. If you are not using a SSL server, you'll get an error, do not worry and "
|
||||
"push \"Continue\"\n"
|
||||
"\n"
|
||||
"10. Then click to \"Advanced Settings\" to specify the right\n"
|
||||
" ports and paths.\n"
|
||||
"\n"
|
||||
"11. Specify the port for the OpenERP server: 8071 for SSL, 8069 without.\n"
|
||||
"\n"
|
||||
"12. Set the \"Account URL\" to the right path of the OpenERP webdav:\n"
|
||||
" the url given by the wizard (ie : "
|
||||
"http://my.server.ip:8069/webdav/dbname/calendars/ )\n"
|
||||
"\n"
|
||||
"11. Click on Done. The phone will hopefully connect to the OpenERP server\n"
|
||||
" and verify it can use the account.\n"
|
||||
"\n"
|
||||
"12. Go to the main menu of the iPhone and enter the Calendar application.\n"
|
||||
" Your OpenERP calendars will be visible inside the selection of the\n"
|
||||
" \"Calendars\" button.\n"
|
||||
" Note that when creating a new calendar entry, you will have to specify\n"
|
||||
" which calendar it should be saved at.\n"
|
||||
"\n"
|
||||
"IF you need SSL (and your certificate is not a verified one, as usual),\n"
|
||||
"then you first will need to let the iPhone trust that. Follow these\n"
|
||||
"steps:\n"
|
||||
"\n"
|
||||
" s1. Open Safari and enter the https location of the OpenERP server:\n"
|
||||
" https://my.server.ip:8071/\n"
|
||||
" (assuming you have the server at \"my.server.ip\" and the HTTPS port\n"
|
||||
" is the default 8071)\n"
|
||||
" s2. Safari will try to connect and issue a warning about the "
|
||||
"certificate\n"
|
||||
" used. Inspect the certificate and click \"Accept\" so that iPhone\n"
|
||||
" now trusts it.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
msgid "Sunbird/Thunderbird"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,calendar_order:0
|
||||
msgid "Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,calendar_color:0
|
||||
msgid "Color"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "MY"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_fields
|
||||
msgid "Calendar fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
msgid "Import Message"
|
||||
msgstr "Импортын Мессеж"
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.actions.act_window,name:caldav.action_calendar_event_subscribe
|
||||
#: model:ir.actions.act_window,name:caldav.action_calendar_event_subscribe_values
|
||||
msgid "Subscribe"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: sql_constraint:document.directory:0
|
||||
msgid "Directory must have a parent or a storage"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_todo
|
||||
msgid "basic.calendar.todo"
|
||||
msgstr ""
|
||||
|
||||
#. module: caldav
|
||||
#: help:basic.calendar,calendar_order:0
|
||||
msgid "For supporting clients, the order of this folder among the calendars"
|
||||
msgstr ""
|
|
@ -14,17 +14,17 @@
|
|||
<field name="sequence">100</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.channel">
|
||||
<field name="name">website</field>
|
||||
<record model="crm.case.channel" id="crm_case_channel_website">
|
||||
<field name="name">Website</field>
|
||||
</record>
|
||||
<record model="crm.case.channel">
|
||||
<field name="name">phone</field>
|
||||
<record model="crm.case.channel" id="crm_case_channel_phone">
|
||||
<field name="name">Phone</field>
|
||||
</record>
|
||||
<record model="crm.case.channel">
|
||||
<field name="name">direct</field>
|
||||
<record model="crm.case.channel" id="crm_case_channel_direct">
|
||||
<field name="name">Direct</field>
|
||||
</record>
|
||||
<record model="crm.case.channel">
|
||||
<field name="name">email</field>
|
||||
<record model="crm.case.channel" id="crm_case_channel_email">
|
||||
<field name="name">Email</field>
|
||||
</record>
|
||||
<record id="mail_alias_sales_department" model="mail.alias">
|
||||
<field name="alias_name">sales</field>
|
||||
|
|
|
@ -21,11 +21,28 @@
|
|||
<field name="res_id" ref="base_calendar.menu_crm_meeting"/>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="section_sales_marketing_department">
|
||||
<record model="crm.case.section" id="crm_case_section_1">
|
||||
<field name="name">Sales Marketing Department</field>
|
||||
<field name="code">Sales Marketing</field>
|
||||
<field name="code">SMD</field>
|
||||
<field name="parent_id" ref="crm.section_sales_department"></field>
|
||||
<field name="alias_id" ref="mail_alias_marketing_department"/>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="crm_case_section_2">
|
||||
<field name="name">Support Department</field>
|
||||
<field name="code">SPD</field>
|
||||
<field name="parent_id" ref="crm.section_sales_department"></field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="crm_case_section_3">
|
||||
<field name="name">Direct Marketing</field>
|
||||
<field name="code">DM</field>
|
||||
<field name="parent_id" ref="crm.section_sales_department"></field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="crm_case_section_4">
|
||||
<field name="name">Online Support</field>
|
||||
<field name="code">OS</field>
|
||||
<field name="parent_id" ref="crm.crm_case_section_2"></field>
|
||||
</record>
|
||||
|
||||
<record model="crm.segmentation" id="crm_segmentation0">
|
||||
|
@ -33,5 +50,6 @@
|
|||
<field name="exclusif">True</field>
|
||||
<field name="categ_id" ref="base.res_partner_category_2"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -86,11 +86,11 @@
|
|||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_lead2">
|
||||
<field name="name">Mail Campaign 1</field>
|
||||
<field name="name">Email Campaign - Services</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_lead3">
|
||||
<field name="name">Mail Campaign 2</field>
|
||||
<field name="name">Email Campaign - Products</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_lead4">
|
||||
|
@ -102,7 +102,7 @@
|
|||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_lead6">
|
||||
<field name="name">Google Adwords 2</field>
|
||||
<field name="name">Banner Ads</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_lead7">
|
||||
|
@ -116,37 +116,37 @@
|
|||
|
||||
<!-- crm categories -->
|
||||
<record model="crm.case.categ" id="categ_oppor1">
|
||||
<field name="name">Interest in Computer</field>
|
||||
<field name="name">Product</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor2">
|
||||
<field name="name">Interest in Accessories</field>
|
||||
<field name="name">Software</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor3">
|
||||
<field name="name">Need Services</field>
|
||||
<field name="name">Services</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor4">
|
||||
<field name="name">Need Information</field>
|
||||
<field name="name">Information</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor5">
|
||||
<field name="name">Need a Website Design</field>
|
||||
<field name="name">Design</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor6">
|
||||
<field name="name">Potential Reseller</field>
|
||||
<field name="name">Training</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor7">
|
||||
<field name="name">Need Consulting</field>
|
||||
<field name="name">Consulting</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -100,7 +100,7 @@
|
|||
</record>
|
||||
|
||||
<menuitem action="crm_lead_categ_action"
|
||||
id="menu_crm_lead_categ" name="Categories"
|
||||
id="menu_crm_lead_categ" name="Sales Tags"
|
||||
parent="base.menu_crm_config_lead" sequence="1" groups="base.group_no_one"/>
|
||||
|
||||
<!--
|
||||
|
@ -174,7 +174,7 @@
|
|||
<label for="contact_name" />
|
||||
<div>
|
||||
<field name="contact_name" class="oe_inline"/>,
|
||||
<field name="title" placeholder="Title" domain="[('domain', '=', 'contact')]" class="oe_inline"/>
|
||||
<field name="title" placeholder="Title" domain="[('domain', '=', 'contact')]" class="oe_inline" options='{"no_open": true}'/>
|
||||
</div>
|
||||
<field name="email_from" widget="email"/>
|
||||
<field name="function" />
|
||||
|
@ -343,10 +343,6 @@
|
|||
<div class="oe_kanban_bottom_right">
|
||||
<a t-if="record.priority.raw_value == 1" type="object" name="set_normal_priority" class="oe_e oe_star_on">7</a>
|
||||
<a t-if="record.priority.raw_value != 1" type="object" name="set_high_priority" class="oe_e oe_star_off">7</a>
|
||||
<!--
|
||||
<t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())" t-set="red">oe_kaban_status_red</t>
|
||||
<span t-attf-class="oe_kanban_status #{red}"> </span>
|
||||
-->
|
||||
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
|
||||
</div>
|
||||
<div class="oe_kanban_footer_left">
|
||||
|
@ -356,14 +352,6 @@
|
|||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="oe_kanban_right">
|
||||
<a name="case_mark_lost" string="Mark Lost" states="open,pending" type="object" icon="kanban-stop" />
|
||||
<a name="case_pending" string="Pending" states="draft,open" type="object" icon="kanban-pause" />
|
||||
<a name="case_open" string="Open" states="pending" type="object" icon="gtk-media-play" />
|
||||
<a name="case_mark_won" string="Mark Won" states="open,pending" type="object" icon="kanban-apply" />
|
||||
</div>
|
||||
-->
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
|
@ -489,11 +477,6 @@
|
|||
</group>
|
||||
</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" />-->
|
||||
|
||||
<notebook colspan="4">
|
||||
<page string="Internal Notes">
|
||||
<field name="description"/>
|
||||
|
|
|
@ -4,91 +4,80 @@
|
|||
<!--
|
||||
((((((((((( Demo Cases )))))))))))
|
||||
-->
|
||||
<record id="crm_case_phone01" model="crm.phonecall">
|
||||
<record id="crm_phonecall_1" model="crm.phonecall">
|
||||
<field eval="time.strftime('%Y-%m-04 10:45:36')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_11"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Left the message"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="name">Left the message</field>
|
||||
<field name="state">done</field>
|
||||
<field name="partner_phone">+34 934 340 230</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(726) 782-0636"" name="partner_mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||
<field eval=""(769) 703-274"" name="partner_phone"/>
|
||||
<field eval="2.3" name="duration"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
</record>
|
||||
<record id="crm_case_phone02" model="crm.phonecall">
|
||||
<record id="crm_phonecall_2" model="crm.phonecall">
|
||||
<field eval="time.strftime('%Y-%m-11 11:19:25')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field eval=""4"" name="priority"/>
|
||||
<field name="partner_id" ref="base.res_partner_7"/>
|
||||
<field eval="'4'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Get More information on the proposed deal"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(392) 895-7917"" name="partner_mobile"/>
|
||||
<field name="name">Need more information on the proposed deal</field>
|
||||
<field name="state">done</field>
|
||||
<field name="partner_phone">+44 121 690 4596</field>
|
||||
<field name="section_id" ref="crm.crm_case_section_1"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||
<field eval=""(956) 293-2595"" name="partner_phone"/>
|
||||
<field eval="1.5" name="duration"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
</record>
|
||||
<record id="crm_case_phone03" model="crm.phonecall">
|
||||
<record id="crm_phonecall_3" model="crm.phonecall">
|
||||
<field eval="time.strftime('%Y-%m-15 17:44:12')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_10"/>
|
||||
<field eval=""2"" name="priority"/>
|
||||
<field eval="'2'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""Bad time, will call back"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(820) 167-3208"" name="partner_mobile"/>
|
||||
<field name="name">Ask for convenient time of meeting</field>
|
||||
<field name="state">open</field>
|
||||
<field name="partner_phone">+1 786 525 0724</field>
|
||||
<field name="section_id" ref="crm.crm_case_section_3"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone2"/>
|
||||
<field eval="5.0" name="duration"/>
|
||||
</record>
|
||||
<record id="crm_phonecall_4" model="crm.phonecall">
|
||||
<field eval="time.strftime('%Y-%m-21 14:10:23')" name="date"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="name">Wanted information about pricing of Laptops</field>
|
||||
<field name="state">done</field>
|
||||
<field name="partner_phone">(077) 582-4035</field>
|
||||
<field name="partner_mobile">(077) 341-3591</field>
|
||||
<field name="section_id" ref="crm.crm_case_section_4"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||
<field eval=""(079) 681-2139"" name="partner_phone"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
<field eval="5.0" name="duration"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
<field eval="5.45" name="duration"/>
|
||||
</record>
|
||||
<record id="crm_case_phone04" model="crm.phonecall">
|
||||
<field eval="time.strftime('%Y-%m-21 14:10:23')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Discuss Review Process"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(077) 582-4035"" name="partner_mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone2"/>
|
||||
<field eval=""(514) 698-4118"" name="partner_phone"/>
|
||||
<field eval="3.45" name="duration"/>
|
||||
</record>
|
||||
<record id="crm_case_phone05" model="crm.phonecall">
|
||||
<record id="crm_phonecall_5" model="crm.phonecall">
|
||||
<field eval="time.strftime('%Y-%m-28 16:20:43')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_5"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""More information on the proposed deal"" name="name"/>
|
||||
<field eval=""pending"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(333) 715-1450"" name="partner_mobile"/>
|
||||
<field name="name">More information on the proposed deal</field>
|
||||
<field name="state">pending</field>
|
||||
<field name="partner_phone">+1 312 349 2324</field>
|
||||
<field name="section_id" ref="crm.crm_case_section_1"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone2"/>
|
||||
<field eval=""(855) 924-4364"" name="partner_phone"/>
|
||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||
<field eval="2.08" name="duration"/>
|
||||
</record>
|
||||
<record id="crm_case_phone06" model="crm.phonecall">
|
||||
<field eval=""3"" name="priority"/>
|
||||
<record id="crm_phonecall_6" model="crm.phonecall">
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Bad time"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(468) 017-2684"" name="partner_mobile"/>
|
||||
<field name="name">Proposal for discount offer</field>
|
||||
<field name="state">open</field>
|
||||
<field name="partner_phone">+34 230 953 485</field>
|
||||
<field name="section_id" ref="crm.crm_case_section_3"/>
|
||||
<field eval="time.strftime('%Y-%m-28 14:15:30')" name="date"/>
|
||||
<field name="categ_id" ref="crm.categ_phone2"/>
|
||||
<field eval=""(373) 907-1009"" name="partner_phone"/>
|
||||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
<field eval="8.56" name="duration"/>
|
||||
</record>
|
||||
</data>
|
||||
|
|
|
@ -7,14 +7,15 @@ 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: 2011-01-23 16:46+0000\n"
|
||||
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.com>\n"
|
||||
"PO-Revision-Date: 2012-08-10 16:25+0000\n"
|
||||
"Last-Translator: Leonardo Pistone - Agile BG - Domsense "
|
||||
"<leonardo.pistone@domsense.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-07 04:58+0000\n"
|
||||
"X-Generator: Launchpad (build 15745)\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-11 05:45+0000\n"
|
||||
"X-Generator: Launchpad (build 15780)\n"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
|
@ -213,7 +214,7 @@ msgstr "Telefonata"
|
|||
#. module: crm
|
||||
#: field:crm.lead,optout:0
|
||||
msgid "Opt-Out"
|
||||
msgstr "Opz-out"
|
||||
msgstr "Opt-Out"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,end_type:0
|
||||
|
@ -308,8 +309,8 @@ msgid ""
|
|||
"If opt-out is checked, this contact has refused to receive emails or "
|
||||
"unsubscribed to a campaign."
|
||||
msgstr ""
|
||||
"Se il campo opt.out è selezionato allora il conttatto ha rifiutato di "
|
||||
"ricevere email o si è cancellato da una campagna."
|
||||
"L'Opt-Out indica che il contatto ha rifiutato di ricevere email o si è "
|
||||
"disiscritto da una campagna."
|
||||
|
||||
#. module: crm
|
||||
#: model:process.transition,name:crm.process_transition_leadpartner0
|
||||
|
@ -984,7 +985,7 @@ msgstr "Riferimento"
|
|||
#. module: crm
|
||||
#: field:crm.lead,optin:0
|
||||
msgid "Opt-In"
|
||||
msgstr "Opz-in"
|
||||
msgstr "Opt-In"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm_lead.py:814 code:addons/crm/crm_phonecall.py:296
|
||||
|
@ -2184,7 +2185,7 @@ msgstr ""
|
|||
#. module: crm
|
||||
#: help:crm.lead,optin:0
|
||||
msgid "If opt-in is checked, this contact has accepted to receive emails."
|
||||
msgstr "Se opz-in è spuntato, il contatto ha accettato di ricevere email."
|
||||
msgstr "L'Opt-In indica che il contatto ha accettato di ricevere email."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
|
|
|
@ -38,9 +38,6 @@ class crm_configuration(osv.osv_memory):
|
|||
'module_import_google': fields.boolean("Google (Contacts and Calendar)",
|
||||
help="""Import google contact in partner address and add google calendar events details in Meeting.
|
||||
This installs the module import_google."""),
|
||||
'module_wiki_sale_faq': fields.boolean("share information with sales FAQ",
|
||||
help="""This provides demo data, thereby creating a Wiki Group and a Wiki Page for Wiki Sale FAQ.
|
||||
This installs the module wiki_sale_faq."""),
|
||||
'module_google_map': fields.boolean("add google maps on customer",
|
||||
help="""Locate customers on Google Map.
|
||||
This installs the module google_map."""),
|
||||
|
|
|
@ -39,12 +39,6 @@
|
|||
<label for="module_google_map"/>
|
||||
</div>
|
||||
</div>
|
||||
<div name="Sale Features" position="inside">
|
||||
<div>
|
||||
<field name="module_wiki_sale_faq"/>
|
||||
<label for="module_wiki_sale_faq"/>
|
||||
</div>
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
!python {model: base.action.rule}: |
|
||||
model_ids = self.pool.get("ir.model").search(cr, uid, [('model', '=', 'crm.lead')])
|
||||
from datetime import datetime
|
||||
new_id = self.create(cr, uid, {'name': 'New Rule', 'model_id': model_ids[0], 'trg_user_id': ref('base.user_root'), 'trg_partner_id': ref('base.res_partner_asus'), 'act_user_id': ref('base.user_demo') })
|
||||
new_id = self.create(cr, uid, {'name': 'New Rule', 'model_id': model_ids[0], 'trg_user_id': ref('base.user_root'), 'trg_partner_id': ref('base.res_partner_1'), 'act_user_id': ref('base.user_demo') })
|
||||
self._check(cr, uid)
|
||||
-
|
||||
I create new lead to check record rule.
|
||||
-
|
||||
!record {model: crm.lead, id: crm_lead_test_rules_id}:
|
||||
name: 'Test lead rules'
|
||||
partner_id: base.res_partner_asus
|
||||
partner_id: base.res_partner_1
|
||||
-
|
||||
I check record rule is apply and responsible is changed.
|
||||
-
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
I cancel unqualified lead.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_cancel(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
self.case_cancel(cr, uid, [ref("crm_case_1")])
|
||||
-
|
||||
I check cancelled lead.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0'))
|
||||
lead = self.browse(cr, uid, ref('crm_case_1'))
|
||||
assert lead.stage_id.id == ref('crm.stage_lead7'), "Stage should be 'Dead' and is %s." % (lead.stage_id.name)
|
||||
assert lead.state == 'cancel', "Opportunity is not in 'cancel' state."
|
||||
assert lead.probability == 0.0, 'Opportunity probability is wrong and should be 0.0.'
|
||||
|
@ -15,31 +15,31 @@
|
|||
I reset cancelled lead into unqualified lead.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_reset(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
self.case_reset(cr, uid, [ref("crm_case_1")])
|
||||
-
|
||||
I check unqualified lead after reset.
|
||||
-
|
||||
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in draft state}:
|
||||
!assert {model: crm.lead, id: crm.crm_case_1, string: Lead is in draft state}:
|
||||
- state == "draft"
|
||||
-
|
||||
I re-open the lead
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_open(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
self.case_open(cr, uid, [ref("crm_case_1")])
|
||||
-
|
||||
I check stage and state of the re-opened lead
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm.crm_case_itisatelesalescampaign0'))
|
||||
lead = self.browse(cr, uid, ref('crm.crm_case_1'))
|
||||
assert lead.stage_id.id == ref('crm.stage_lead2'), "Opportunity stage should be 'Qualification'."
|
||||
assert lead.state == 'open', "Opportunity should be in 'open' state."
|
||||
-
|
||||
I escalate the lead to parent team.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_escalate(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
self.case_escalate(cr, uid, [ref("crm_case_1")])
|
||||
-
|
||||
I check the lead is correctly escalated to the parent team.
|
||||
-
|
||||
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Escalate lead to parent team}:
|
||||
- section_id.name == "Sales Department"
|
||||
!assert {model: crm.lead, id: crm.crm_case_1, string: Escalate lead to parent team}:
|
||||
- section_id.name == "Support Department"
|
||||
|
|
|
@ -44,15 +44,15 @@
|
|||
I convert one phonecall request as a customer and put into regular customer list.
|
||||
-
|
||||
!python {model: crm.phonecall2partner}: |
|
||||
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")], 'active_id': ref("crm.crm_case_phone06")})
|
||||
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_phonecall_4")], 'active_id': ref("crm.crm_phonecall_4")})
|
||||
new_id = self.create(cr, uid, {}, context=context)
|
||||
self.make_partner(cr, uid, [new_id], context=context)
|
||||
-
|
||||
I check converted phonecall to partner.
|
||||
-
|
||||
!python {model: res.partner}: |
|
||||
partner_id = self.search(cr, uid, [('phonecall_ids', '=', ref('crm.crm_case_phone06'))])
|
||||
partner_id = self.search(cr, uid, [('phonecall_ids', '=', ref('crm.crm_phonecall_4'))])
|
||||
assert partner_id, "Customer is not found in regular customer list."
|
||||
data = self.browse(cr, uid, partner_id, context=context)[0]
|
||||
assert data.user_id.id == ref("base.user_root"), "User not assign properly"
|
||||
assert data.name == "Bad time", "Bad partner name"
|
||||
assert data.name == "Wanted information about pricing of Laptops", "Bad partner name"
|
||||
|
|
|
@ -4,39 +4,39 @@
|
|||
I open customer lead.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_open(cr, uid, [ref("crm_case_qrecorp0")])
|
||||
self.case_open(cr, uid, [ref("crm_case_4")])
|
||||
-
|
||||
I check lead state is "Open".
|
||||
-
|
||||
!assert {model: crm.lead, id: crm.crm_case_qrecorp0, string: Lead in open state}:
|
||||
!assert {model: crm.lead, id: crm.crm_case_4, string: Lead in open state}:
|
||||
- state == "open"
|
||||
-
|
||||
I create partner from lead.
|
||||
-
|
||||
!record {model: crm.lead2partner, id: crm_lead2partner_id1, context: '{"active_model": "crm.lead", "active_ids": [ref("crm_case_qrecorp0")]}'}:
|
||||
!record {model: crm.lead2partner, id: crm_lead2partner_id1, context: '{"active_model": "crm.lead", "active_ids": [ref("crm_case_4")]}'}:
|
||||
-
|
||||
!python {model: crm.lead2partner}: |
|
||||
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_qrecorp0')], 'active_id': ref('crm_case_qrecorp0')})
|
||||
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_4')], 'active_id': ref('crm_case_4')})
|
||||
self.make_partner(cr, uid ,[ref("crm_lead2partner_id1")], context=context)
|
||||
-
|
||||
I convert lead into opportunity for exiting customer.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.convert_opportunity(cr, uid ,[ref("crm_case_qrecorp0")], ref("base.res_partner_agrolait"))
|
||||
self.convert_opportunity(cr, uid ,[ref("crm_case_4")], ref("base.res_partner_2"))
|
||||
-
|
||||
I check details of converted opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_qrecorp0'))
|
||||
lead = self.browse(cr, uid, ref('crm_case_4'))
|
||||
assert lead.type == 'opportunity', 'Lead is not converted to opportunity!'
|
||||
assert lead.partner_id.id == ref("base.res_partner_agrolait"), 'Partner missmatch!'
|
||||
assert lead.partner_id.id == ref("base.res_partner_2"), 'Partner mismatch!'
|
||||
assert lead.stage_id.id == ref("stage_lead1"), 'Stage of opportunity is incorrect!'
|
||||
-
|
||||
Now I begin communication and schedule a phone call with the customer.
|
||||
-
|
||||
!python {model: crm.opportunity2phonecall}: |
|
||||
import time
|
||||
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_qrecorp0')]})
|
||||
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_4')]})
|
||||
call_id = self.create(cr, uid, {'date': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'name': "Bonjour M. Jean, Comment êtes-vous? J'ai obtenu votre demande. peut-on parler au sujet de ce pour quelques minutes?"}, context=context)
|
||||
self.action_schedule(cr, uid, [call_id], context=context)
|
||||
|
@ -44,28 +44,28 @@
|
|||
I check that phonecall is scheduled for that opportunity.
|
||||
-
|
||||
!python {model: crm.phonecall}: |
|
||||
ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_qrecorp0'))])
|
||||
ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_4'))])
|
||||
assert len(ids), 'phonecall is not scheduled'
|
||||
-
|
||||
Now I schedule meeting with customer.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.action_makeMeeting(cr, uid, [ref('crm_case_qrecorp0')])
|
||||
self.action_makeMeeting(cr, uid, [ref('crm_case_4')])
|
||||
-
|
||||
After communicated with customer, I put some notes with contract details.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.message_append_note(cr, uid, [ref('crm_case_qrecorp0')], subject='Test note', body='ces détails envoyés par le client sur le FAX pour la qualité')
|
||||
self.message_append_note(cr, uid, [ref('crm_case_4')], subject='Test note', body='ces détails envoyés par le client sur le FAX pour la qualité')
|
||||
-
|
||||
I win this opportunity
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_mark_won(cr, uid, [ref("crm_case_qrecorp0")])
|
||||
self.case_mark_won(cr, uid, [ref("crm_case_4")])
|
||||
-
|
||||
I check details of the opportunity after having won the opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_qrecorp0'))
|
||||
lead = self.browse(cr, uid, ref('crm_case_4'))
|
||||
assert lead.stage_id.id == ref('crm.stage_lead6'), "Opportunity stage should be 'Won'."
|
||||
assert lead.state == 'done', "Opportunity is not in 'done' state!"
|
||||
assert lead.probability == 100.0, "Revenue probability should be 100.0!"
|
||||
|
@ -73,36 +73,36 @@
|
|||
I convert mass lead into opportunity customer.
|
||||
-
|
||||
!python {model: crm.lead2opportunity.partner.mass}: |
|
||||
context.update({'active_model': 'crm.lead', 'active_ids': [ref("crm_case_employee0"), ref("crm_case_electonicgoodsdealer0")], 'active_id': ref("crm_case_qrecorp0")})
|
||||
context.update({'active_model': 'crm.lead', 'active_ids': [ref("crm_case_11"), ref("crm_case_2")], 'active_id': ref("crm_case_4")})
|
||||
id = self.create(cr, uid, {'user_ids': [ref('base.user_root')], 'section_id': ref('crm.section_sales_department')}, context=context)
|
||||
self.mass_convert(cr, uid, [id], context=context)
|
||||
-
|
||||
Now I check first lead converted on opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
opp = self.browse(cr, uid, ref('crm_case_employee0'))
|
||||
assert opp.name == "Need Info about Onsite Intervention", "Opportunity name not correct"
|
||||
opp = self.browse(cr, uid, ref('crm_case_11'))
|
||||
assert opp.name == "Need estimated cost for new project", "Opportunity name not correct"
|
||||
assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
|
||||
assert opp.partner_id.name == "Agrolait", 'Partner missmatch!'
|
||||
assert opp.partner_id.name == "Thomas Passot", 'Partner mismatch!'
|
||||
assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
|
||||
-
|
||||
Then check for second lead converted on opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
opp = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0'))
|
||||
assert opp.name == "Interest in Your New Product", "Opportunity name not correct"
|
||||
opp = self.browse(cr, uid, ref('crm_case_2'))
|
||||
assert opp.name == "Interest in Your New Software", "Opportunity name not correct"
|
||||
assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
|
||||
assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
|
||||
-
|
||||
I loose the second opportunity
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_mark_lost(cr, uid, [ref("crm_case_electonicgoodsdealer0")])
|
||||
self.case_mark_lost(cr, uid, [ref("crm_case_2")])
|
||||
-
|
||||
I check details of the opportunity after the loose
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0'))
|
||||
lead = self.browse(cr, uid, ref('crm_case_2'))
|
||||
assert lead.stage_id.id == ref('crm.stage_lead8'), "Opportunity stage should be 'Lost'."
|
||||
assert lead.state == 'cancel', "Lost opportunity is not in 'cancel' state!"
|
||||
assert lead.probability == 0.0, "Revenue probability should be 0.0!"
|
||||
|
@ -111,7 +111,7 @@
|
|||
-
|
||||
!python {model: crm.meeting}: |
|
||||
context.update({'active_model': 'crm.meeting'})
|
||||
self.case_open(cr, uid, [ref('base_calendar.crm_case_reviewneeds0')])
|
||||
self.case_open(cr, uid, [ref('base_calendar.crm_meeting_4')])
|
||||
-
|
||||
I invite a user for meeting.
|
||||
-
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
I make another opportunity from phonecall for same customer.
|
||||
-
|
||||
!python {model: crm.phonecall2opportunity}: |
|
||||
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")]})
|
||||
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_phonecall_6")]})
|
||||
res_id = self.create(cr, uid, {'name': "Quoi de prix de votre autre service?", 'partner_id': ref("base.res_partner_9")}, context=context)
|
||||
self.make_opportunity(cr, uid, [res_id], context=context)
|
||||
-
|
||||
|
@ -36,51 +36,51 @@
|
|||
Now I schedule another phonecall to customer after merged.
|
||||
-
|
||||
!python {model: crm.phonecall2phonecall}: |
|
||||
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")], 'active_id': ref("crm.crm_case_phone06")})
|
||||
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_phonecall_6")], 'active_id': ref("crm.crm_phonecall_6")})
|
||||
res_id = self.create(cr, uid, {'name': "vos chances sont fusionnés en un seul"}, context=context)
|
||||
self.action_schedule(cr, uid, [res_id], context=context)
|
||||
-
|
||||
I schedule meeting on this phonecall.
|
||||
-
|
||||
!python {model: crm.phonecall}: |
|
||||
self.action_make_meeting(cr, uid, [ref("crm.crm_case_phone06")])
|
||||
self.action_make_meeting(cr, uid, [ref("crm.crm_phonecall_6")])
|
||||
-
|
||||
I set phone call to not held.
|
||||
-
|
||||
!python {model: crm.phonecall}: |
|
||||
self.case_pending(cr, uid, [ref("crm.crm_case_phone06")])
|
||||
self.case_pending(cr, uid, [ref("crm.crm_phonecall_6")])
|
||||
-
|
||||
I check that the phone call is in 'Not Held' state.
|
||||
-
|
||||
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call held.}:
|
||||
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call held.}:
|
||||
- state == "pending"
|
||||
-
|
||||
I cancelled the phone call.
|
||||
-
|
||||
!python {model: crm.phonecall}: |
|
||||
self.case_cancel(cr, uid, [ref("crm.crm_case_phone06")])
|
||||
self.case_cancel(cr, uid, [ref("crm.crm_phonecall_6")])
|
||||
-
|
||||
I check that the phone call is in 'Cancelled' state.
|
||||
-
|
||||
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call is not cancelled.}:
|
||||
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call is not cancelled.}:
|
||||
- state == "cancel"
|
||||
-
|
||||
I reset the phone call.
|
||||
-
|
||||
!python {model: crm.phonecall}: |
|
||||
self.case_reset(cr, uid, [ref("crm.crm_case_phone06")])
|
||||
self.case_reset(cr, uid, [ref("crm.crm_phonecall_6")])
|
||||
-
|
||||
I check that the phone call is reset or not.
|
||||
-
|
||||
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call is not reset.}:
|
||||
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call is not reset.}:
|
||||
- state == "open"
|
||||
-
|
||||
I set phone call to held (done).
|
||||
-
|
||||
!python {model: crm.phonecall}: |
|
||||
self.case_close(cr, uid, [ref("crm.crm_case_phone06")])
|
||||
self.case_close(cr, uid, [ref("crm.crm_phonecall_6")])
|
||||
-
|
||||
I check that the phone call is in 'Held' state.
|
||||
-
|
||||
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call is not held.}:
|
||||
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call is not held.}:
|
||||
- state == "done"
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
-
|
||||
I create lead record to call of partner onchange, stage onchange and Mailing opt-in onchange method.
|
||||
-
|
||||
!record {model: crm.lead, id: crm_case_shelvehouse}:
|
||||
!record {model: crm.lead, id: crm_case_25}:
|
||||
name: 'Need more info about your pc2'
|
||||
partner_id: base.res_partner_theshelvehouse0
|
||||
partner_id: base.res_partner_2
|
||||
type: opportunity
|
||||
stage_id: crm.stage_lead1
|
||||
state: draft
|
||||
-
|
||||
I create lead record to call Mailing opt-out onchange method.
|
||||
-
|
||||
!record {model: crm.lead, id: crm_case_mediapoleunits0}:
|
||||
!record {model: crm.lead, id: crm_case_18}:
|
||||
name: 'Need 20 Days of Consultancy'
|
||||
type: opportunity
|
||||
state: draft
|
||||
|
@ -18,11 +18,11 @@
|
|||
-
|
||||
I create phonecall record to call partner onchange method.
|
||||
-
|
||||
!record {model: crm.phonecall, id: crm_case_phone05}:
|
||||
!record {model: crm.phonecall, id: crm_phonecall_5}:
|
||||
name: 'Bad time'
|
||||
partner_id: base.res_partner_5
|
||||
-
|
||||
I setting next stage "New" for the lead.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.stage_next(cr, uid, [ref("crm_case_qrecorp0")], context={'stage_type': 'lead'})
|
||||
self.stage_next(cr, uid, [ref("crm_case_4")], context={'stage_type': 'lead'})
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
I Unlink the Lead.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.unlink(cr, uid, [ref("crm_case_qrecorp0")])
|
||||
self.unlink(cr, uid, [ref("crm_case_4")])
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
I make duplicate the Lead.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.copy(cr, uid, ref("crm_case_qrecorp0"))
|
||||
self.copy(cr, uid, ref("crm_case_4"))
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_crm_lead2opportunity_partner" model="ir.ui.view">
|
||||
<field name="name">crm.lead2opportunity.partner.form</field>
|
||||
<field name="model">crm.lead2opportunity.partner</field>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
((((((((((( Demo Cases )))))))))))
|
||||
-->
|
||||
|
||||
<record id="crm_case_claim01" model="crm.claim">
|
||||
<record id="crm_claim_1" model="crm.claim">
|
||||
<field eval="time.strftime('%Y-%m-04 10:45:36')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_11"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<field eval=""(769) 703-274"" name="partner_phone"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_claim02" model="crm.claim">
|
||||
<record id="crm_claim_2" model="crm.claim">
|
||||
<field eval="time.strftime('%Y-%m-11 11:19:25')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field eval=""4"" name="priority"/>
|
||||
|
@ -30,7 +30,7 @@
|
|||
<field eval=""(956) 293-2595"" name="partner_phone"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_claim03" model="crm.claim">
|
||||
<record id="crm_claim_3" model="crm.claim">
|
||||
<field eval="time.strftime('%Y-%m-15 17:44:12')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_10"/>
|
||||
<field eval=""2"" name="priority"/>
|
||||
|
@ -43,9 +43,9 @@
|
|||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_claim04" model="crm.claim">
|
||||
<record id="crm_claim_4" model="crm.claim">
|
||||
<field eval="time.strftime('%Y-%m-21 14:10:23')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
|
||||
<field name="partner_id" ref="base.res_partner_18"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Product quality not maintained"" name="name"/>
|
||||
|
@ -55,7 +55,7 @@
|
|||
<field eval=""(514) 698-4118"" name="partner_phone"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_claim05" model="crm.claim">
|
||||
<record id="crm_claim_5" model="crm.claim">
|
||||
<field eval="time.strftime('%Y-%m-28 16:20:43')" name="date"/>
|
||||
<field name="partner_id" ref="base.res_partner_5"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
|
@ -67,7 +67,7 @@
|
|||
<field eval=""(855) 924-4364"" name="partner_phone"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_claim06" model="crm.claim">
|
||||
<record id="crm_claim_6" model="crm.claim">
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
@ -80,8 +80,8 @@
|
|||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_claims07" model="crm.claim">
|
||||
<field name="partner_id" ref="base.res_partner_seagate"/>
|
||||
<record id="crm_claim_7" model="crm.claim">
|
||||
<field name="partner_id" ref="base.res_partner_19"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Documents unclear"" name="name"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
-
|
||||
I create claim record to call of partner onchange method.
|
||||
-
|
||||
!record {model: crm.claim, id: crm_case_claim04}:
|
||||
!record {model: crm.claim, id: crm_claim_4}:
|
||||
name: 'Damaged Product'
|
||||
partner_id: base.res_partner_6
|
||||
-
|
||||
|
@ -9,7 +9,7 @@
|
|||
-
|
||||
!python {model: crm.claim}: |
|
||||
try:
|
||||
self.message_update(cr, uid,[ref('crm_case_claim04')], {'subject': 'Claim Update record','body_text': 'first training session completed',})
|
||||
self.message_update(cr, uid,[ref('crm_claim_4')], {'subject': 'Claim Update record','body_text': 'first training session completed',})
|
||||
except:
|
||||
pass
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="crm_helpdesk_wheretodownloadopenerp0" model="crm.helpdesk">
|
||||
<record id="crm_helpdesk_1" model="crm.helpdesk">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
|
@ -13,7 +13,7 @@
|
|||
<field eval=""Is there any link to download old versions of OpenERP?"" name="description"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_helpdesk_cannotabletoconnecttoserver0" model="crm.helpdesk">
|
||||
<record id="crm_helpdesk_2" model="crm.helpdesk">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
|
@ -25,7 +25,7 @@
|
|||
<field eval=""I am not able to connect Server, Can anyone help?"" name="description"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_helpdesk_documentationforcrm0" model="crm.helpdesk">
|
||||
<record id="crm_helpdesk_3" model="crm.helpdesk">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
|
@ -37,7 +37,7 @@
|
|||
<field eval=""Can anyone give link of document for CRM"" name="description"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_helpdesk_howtocreateanewmodule0" model="crm.helpdesk">
|
||||
<record id="crm_helpdesk_4" model="crm.helpdesk">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="partner_id" ref="base.res_partner_2"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
|
|
@ -49,7 +49,7 @@ You can also use the geolocalization without using the GPS coordinates.
|
|||
'report/crm_partner_report_view.xml',
|
||||
],
|
||||
'test': [
|
||||
'test/process/partner_assign.yml',
|
||||
'test/partner_assign.yml'
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<field name="name">First</field>
|
||||
<field name="sequence">1</field>
|
||||
</record>
|
||||
<record id="base.res_partner_ericdubois0" model="res.partner">
|
||||
<record id="base.res_partner_15" model="res.partner">
|
||||
<field name="grade_id" ref="res_partner_grade_first"/>
|
||||
<field name="partner_weight">10</field>
|
||||
</record>
|
||||
|
|
|
@ -4,32 +4,32 @@
|
|||
I Set Geo Lattitude and Longitude according to partner address.
|
||||
-
|
||||
!python {model: res.partner}: |
|
||||
self.geo_localize(cr, uid, [ref('base.res_partner_ericdubois0')], context)
|
||||
self.geo_localize(cr, uid, [ref('base.res_partner_2')], context)
|
||||
-
|
||||
I check Geo Latitude and Longitude of partner after set
|
||||
-
|
||||
!python {model: res.partner}: |
|
||||
partner = self.browse(cr, uid, ref('base.res_partner_ericdubois0'))
|
||||
partner = self.browse(cr, uid, ref('base.res_partner_2'))
|
||||
assert 50 < partner.partner_latitude < 51 , "Latitude is wrong"
|
||||
assert 3 < partner.partner_longitude < 5 , "Longitude is wrong"
|
||||
-
|
||||
I assign nearest partner to opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.assign_partner(cr, uid, [ref('crm.crm_case_abcfuelcounits0')], context=context)
|
||||
self.assign_partner(cr, uid, [ref('crm.crm_case_19')], context=context)
|
||||
-
|
||||
I check assigned partner of opportunity who is nearest Geo Latitude and Longitude of opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm.crm_case_abcfuelcounits0'))
|
||||
assert lead.partner_assigned_id.id == ref('base.res_partner_ericdubois0') , "Opportuniy is not assigned nearest partner"
|
||||
assert 50 < lead.partner_latitude < 51 , "Latitude is wrong"
|
||||
assert 3 < lead.partner_longitude < 5, "Longitude is wrong"
|
||||
lead = self.browse(cr, uid, ref('crm.crm_case_19'))
|
||||
assert lead.partner_assigned_id.id == ref('base.res_partner_15') , "Opportuniy is not assigned nearest partner"
|
||||
assert 50 < lead.partner_latitude < 55 , "Latitude is wrong"
|
||||
assert -5 < lead.partner_longitude < 0, "Longitude is wrong"
|
||||
-
|
||||
I forward this opportunity to its nearest partner.
|
||||
-
|
||||
!python {model: crm.lead.forward.to.partner}: |
|
||||
context.update({'active_model': 'crm.lead', 'active_id': ref('crm.crm_case_abcfuelcounits0'), 'active_ids': [ref('crm.crm_case_abcfuelcounits0')]})
|
||||
context.update({'active_model': 'crm.lead', 'active_id': ref('crm.crm_case_19'), 'active_ids': [ref('crm.crm_case_19')]})
|
||||
forward_id = self.create(cr, uid, {'email_from': 'test@openerp.com', 'send_to': 'partner'}, context=context)
|
||||
try:
|
||||
self.action_forward(cr, uid, [forward_id], context=context)
|
|
@ -2,7 +2,6 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="crm_lead_forward_to_partner_form">
|
||||
<field name="name">crm_lead_forward_to_partner</field>
|
||||
<field name="model">crm.lead.forward.to.partner</field>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
-->
|
||||
|
||||
<record model="crm_profiling.answer" id="sector1">
|
||||
<field name="name">HR</field>
|
||||
<field name="name">Services</field>
|
||||
<field name="question_id" ref="activity_sector"/>
|
||||
</record>
|
||||
<record model="crm_profiling.answer" id="sector2">
|
||||
|
@ -59,7 +59,7 @@
|
|||
<field name="question_id" ref="nb_employees"/>
|
||||
</record>
|
||||
<record model="crm_profiling.answer" id="partner_quality1">
|
||||
<field name="name">bronze</field>
|
||||
<field name="name">ready</field>
|
||||
<field name="question_id" ref="partner_level"/>
|
||||
</record>
|
||||
<record model="crm_profiling.answer" id="partner_quality2">
|
||||
|
@ -84,17 +84,9 @@
|
|||
Resource: res.partner.category
|
||||
-->
|
||||
|
||||
<record id="base.res_partner_category_15" model="res.partner.category">
|
||||
<field name="name">IT sector</field>
|
||||
<field name="parent_id" ref="base.res_partner_category_12"/>
|
||||
</record>
|
||||
<record id="base.res_partner_category_16" model="res.partner.category">
|
||||
<field name="name">Telecom sector</field>
|
||||
<field name="parent_id" ref="base.res_partner_category_12"/>
|
||||
</record>
|
||||
<record id="base.res_partner_category_17" model="res.partner.category">
|
||||
<field name="name">HR sector</field>
|
||||
<field name="parent_id" ref="base.res_partner_category_12"/>
|
||||
<field name="name">Telecom sector</field>
|
||||
<field name="parent_id" ref="base.res_partner_category_0"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
@ -109,43 +101,43 @@
|
|||
<field name="profiling_active">True</field>
|
||||
</record>
|
||||
<record model="crm.segmentation" id="crm_segmentation1">
|
||||
<field name="name">Bronze partners</field>
|
||||
<field name="name">Ready partners</field>
|
||||
<field name="answer_yes" eval="[(6,0,[partner_quality1])]" />
|
||||
<field name="parent_id" ref="crm.crm_segmentation0"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_3"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_6"/>
|
||||
<field name="profiling_active">True</field>
|
||||
</record>
|
||||
<record model="crm.segmentation" id="crm_segmentation2">
|
||||
<field name="name">Silver partners</field>
|
||||
<field name="answer_yes" eval="[(6,0,[partner_quality2])]" />
|
||||
<field name="parent_id" ref="crm.crm_segmentation0"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_4"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_5"/>
|
||||
<field name="profiling_active">True</field>
|
||||
</record>
|
||||
<record model="crm.segmentation" id="crm_segmentation3">
|
||||
<field name="name">Gold partners</field>
|
||||
<field name="answer_yes" eval="[(6,0,[partner_quality3])]" />
|
||||
<field name="parent_id" ref="crm.crm_segmentation0"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_5"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_4"/>
|
||||
<field name="exclusif">True</field>
|
||||
<field name="profiling_active">True</field>
|
||||
</record>
|
||||
<record model="crm.segmentation" id="crm_segmentation4">
|
||||
<field name="name">HR partners</field>
|
||||
<field name="name">Service partners</field>
|
||||
<field name="answer_yes" eval="[(6,0,[sector1])]" />
|
||||
<field name="categ_id" ref="base.res_partner_category_17"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_8"/>
|
||||
<field name="profiling_active">True</field>
|
||||
</record>
|
||||
<record model="crm.segmentation" id="crm_segmentation5">
|
||||
<field name="name">Telecom partners</field>
|
||||
<field name="answer_yes" eval="[(6,0,[sector2])]" />
|
||||
<field name="categ_id" ref="base.res_partner_category_16"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_17"/>
|
||||
<field name="profiling_active">True</field>
|
||||
</record>
|
||||
<record model="crm.segmentation" id="crm_segmentation6">
|
||||
<field name="name">IT partners</field>
|
||||
<field name="answer_yes" eval="[(6,0,[sector3])]" />
|
||||
<field name="categ_id" ref="base.res_partner_category_15"/>
|
||||
<field name="categ_id" ref="base.res_partner_category_7"/>
|
||||
<field name="profiling_active">True</field>
|
||||
</record>
|
||||
|
||||
|
@ -153,57 +145,29 @@
|
|||
Partners
|
||||
-->
|
||||
|
||||
<record model="res.partner" id="base.res_partner_asus">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees2'), ref('sector2'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_16')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_agrolait">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees1'), ref('sector1'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_17')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_c2c">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector3'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_5'), ref('base.res_partner_category_15')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_sednacom">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees1'), ref('sector2'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_4'), ref('base.res_partner_category_16')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_thymbra">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector3'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_5'), ref('base.res_partner_category_15')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_desertic_hispafuentes">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees2'), ref('sector2'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_4'), ref('base.res_partner_category_16')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_tinyatwork">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees1'), ref('sector1'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_17')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_2">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees2'), ref('sector3'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_15')])]"/>
|
||||
<field name="answers_ids" eval="[(6,0,[ref('nb_employees1'), ref('sector3'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_3">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees1'), ref('sector3'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_4'), ref('base.res_partner_category_15')])]"/>
|
||||
<record model="res.partner" id="base.res_partner_12">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector1'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_9">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees1'), ref('sector3'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_17">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_18">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees2'), ref('sector1'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_15">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('nb_employees2'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_4">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees1'), ref('sector2'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_16')])]"/>
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees1'), ref('sector2'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_5">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees2'), ref('sector1'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_17')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_6">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector2'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_16')])]"/>
|
||||
</record>
|
||||
<record model="res.partner" id="base.res_partner_maxtor">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees1'), ref('sector3'), ref('partner_tiny1')])]" />
|
||||
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_15')])]"/>
|
||||
<record model="res.partner" id="base.res_partner_10">
|
||||
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees2'), ref('sector3'), ref('partner_tiny2')])]" />
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="project.project_task_188" model="project.task">
|
||||
<field name="lead_id" ref="crm.crm_case_fabiendupont"/>
|
||||
<record id="project.project_task_24" model="project.task">
|
||||
<field name="lead_id" ref="crm.crm_case_24"/>
|
||||
</record>
|
||||
<record id="project.project_task_186" model="project.task">
|
||||
<field name="lead_id" ref="crm.crm_case_fabiendupont"/>
|
||||
<record id="project.project_task_23" model="project.task">
|
||||
<field name="lead_id" ref="crm.crm_case_24"/>
|
||||
</record>
|
||||
<record id="project.project_task_184" model="project.task">
|
||||
<field name="lead_id" ref="crm.crm_case_dirtminingltdunits25"/>
|
||||
<record id="project.project_task_22" model="project.task">
|
||||
<field name="lead_id" ref="crm.crm_case_20"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -4,25 +4,25 @@
|
|||
I add delivery cost in Sale order.
|
||||
-
|
||||
!python {model: sale.order}: |
|
||||
self.delivery_set(cr, uid, [ref("sale.order")], context=context)
|
||||
self.delivery_set(cr, uid, [ref("sale.sale_order_6")], context=context)
|
||||
-
|
||||
I check sale order after added delivery cost.
|
||||
-
|
||||
!python {model: sale.order.line}: |
|
||||
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.order')), ('product_id','=', ref('delivery_product'))])
|
||||
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.sale_order_6')), ('product_id','=', ref('product_product_delivery'))])
|
||||
assert len(line_ids), "Delivery cost is not Added"
|
||||
line_data = self.browse(cr ,uid ,line_ids[0] ,context)
|
||||
assert line_data.price_subtotal == 10, "Delivey cost is not correspond."
|
||||
-
|
||||
I confirm the sale order.
|
||||
-
|
||||
!workflow {model: sale.order, action: order_confirm, ref: sale.order}
|
||||
!workflow {model: sale.order, action: order_confirm, ref: sale.sale_order_6}
|
||||
-
|
||||
I create Invoice from shipment.
|
||||
-
|
||||
!python {model: stock.invoice.onshipping}: |
|
||||
sale = self.pool.get('sale.order')
|
||||
sale_order = sale.browse(cr, uid, ref("sale.order"))
|
||||
sale_order = sale.browse(cr, uid, ref("sale.sale_order_6"))
|
||||
ship_ids = [x.id for x in sale_order.picking_ids]
|
||||
wiz_id = self.create(cr, uid, {'journal_id': ref('account.sales_journal')},
|
||||
{'active_ids': ship_ids, 'active_model': 'stock.picking'})
|
||||
|
@ -33,7 +33,7 @@
|
|||
!python {model: stock.picking}: |
|
||||
import netsvc, tools, os
|
||||
sale = self.pool.get('sale.order')
|
||||
sale_order = sale.browse(cr, uid, ref("sale.order"))
|
||||
sale_order = sale.browse(cr, uid, ref("sale.sale_order_6"))
|
||||
ship_ids = [x.id for x in sale_order.picking_ids]
|
||||
(data, format) = netsvc.LocalService('report.sale.shipping').create(cr, uid, ship_ids, {}, {})
|
||||
if tools.config['test_report_directory']:
|
||||
|
@ -42,12 +42,12 @@
|
|||
I add free delivery cost in Sale order.
|
||||
-
|
||||
!python {model: sale.order}: |
|
||||
self.delivery_set(cr, uid, [ref("sale.order2")], context=context)
|
||||
self.delivery_set(cr, uid, [ref("sale.sale_order_2")], context=context)
|
||||
-
|
||||
I check sale order after added delivery cost.
|
||||
-
|
||||
!python {model: sale.order.line}: |
|
||||
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.order2')), ('product_id','=', ref('delivery_product'))])
|
||||
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.sale_order_2')), ('product_id','=', ref('product_product_delivery'))])
|
||||
assert len(line_ids), "Delivery cost is not Added"
|
||||
line_data = self.browse(cr ,uid ,line_ids[0] ,context)
|
||||
assert line_data.price_subtotal == 0, "Delivey cost is not correspond."
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem name="Document Management" id="menu_document_management_configuration" parent="knowledge.menu_document_configuration" sequence="1"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import wiki
|
||||
import document_page
|
||||
import wizard
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -20,38 +20,41 @@
|
|||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'Wiki',
|
||||
'name': 'Document Page',
|
||||
'version': '1.0.1',
|
||||
'category': 'Knowledge Management',
|
||||
'description': """
|
||||
The base module to manage documents(wiki).
|
||||
==========================================
|
||||
|
||||
Keep track of Wiki groups, pages, and history.
|
||||
Pages
|
||||
=====
|
||||
Web pages
|
||||
""",
|
||||
'author': ['OpenERP SA', 'Axelor'],
|
||||
'website': 'http://openerp.com',
|
||||
'author': ['OpenERP SA'],
|
||||
'website': 'http://www.openerp.com/',
|
||||
'depends': ['knowledge'],
|
||||
'web_depends': ['widget_wiki'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'wizard/wiki_wiki_page_open_view.xml',
|
||||
'wizard/wiki_create_menu_view.xml',
|
||||
'wizard/wiki_make_index_view.xml',
|
||||
'wizard/wiki_show_diff_view.xml',
|
||||
'wiki_view.xml',
|
||||
'data/wiki_quickstart.xml',
|
||||
'data/wiki_main.xml',
|
||||
'security/wiki_security.xml',
|
||||
'security/ir.model.access.csv'
|
||||
'wizard/document_page_create_menu_view.xml',
|
||||
'wizard/document_page_show_diff_view.xml',
|
||||
'document_page_view.xml',
|
||||
'security/document_page_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
],
|
||||
'demo_xml': [
|
||||
'document_page_demo.xml'
|
||||
],
|
||||
'test': [
|
||||
'test/document_page_test00.yml'
|
||||
],
|
||||
'demo_xml': ['wiki_demo.xml'],
|
||||
'test': ['test/wiki_test00.yml'],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'certificate': '0086363630317',
|
||||
'web': True,
|
||||
'images': ['images/create_index.jpeg','images/page_history.jpeg','images/wiki_groups.jpeg','images/wiki_pages.jpeg'],
|
||||
'js': ['static/src/lib/wiky/wiky.js', 'static/src/js/wiki.js'],
|
||||
'images': [],
|
||||
'js': [
|
||||
'static/src/lib/wiky/wiky.js',
|
||||
'static/src/js/document_page.js'
|
||||
],
|
||||
'css' : [
|
||||
"static/src/css/document_page.css"
|
||||
],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,131 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
import difflib
|
||||
import tools
|
||||
|
||||
class document_page(osv.osv):
|
||||
_name = "document.page"
|
||||
_description = "Document Page"
|
||||
_order = 'name'
|
||||
|
||||
def _get_page_index(self, cr, uid, page):
|
||||
index = []
|
||||
for subpage in page.child_ids:
|
||||
index += ["<li>"+ self._get_page_index(cr, uid, subpage) +"</li>"]
|
||||
r = '<a href="#id=%s">%s</a>'%(page.id,page.name)
|
||||
if index:
|
||||
r += "<ul>" + "".join(index) + "</ul>"
|
||||
return r
|
||||
|
||||
def _get_display_content(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for page in self.browse(cr, uid, ids, context=context):
|
||||
if page.type == "category":
|
||||
content = self._get_page_index(cr, uid, page)
|
||||
else:
|
||||
content = page.content
|
||||
res[page.id] = content
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Title', required=True),
|
||||
'type':fields.selection([('content','Content'), ('category','Category')], 'Type', help="Page type"),
|
||||
|
||||
'parent_id': fields.many2one('document.page', 'Category', domain=[('type','=','category')]),
|
||||
'child_ids': fields.one2many('document.page', 'parent_id', 'Children'),
|
||||
|
||||
'content': fields.text("Content"),
|
||||
'display_content': fields.function(_get_display_content, string='Displayed Content', type='text'),
|
||||
|
||||
'history_ids': fields.one2many('document.page.history', 'page_id', 'History'),
|
||||
'menu_id': fields.many2one('ir.ui.menu', "Menu", readonly=True),
|
||||
|
||||
'create_date': fields.datetime("Created on", select=True, readonly=True),
|
||||
'create_uid': fields.many2one('res.users', 'Author', select=True, readonly=True),
|
||||
'write_date': fields.datetime("Modification Date", select=True, readonly=True),
|
||||
'write_uid': fields.many2one('res.users', "Last Contributor", select=True),
|
||||
}
|
||||
_defaults = {
|
||||
'type':'content',
|
||||
}
|
||||
|
||||
def onchange_parent_id(self, cr, uid, ids, parent_id, content, context=None):
|
||||
res = {}
|
||||
if parent_id and not content:
|
||||
parent = self.browse(cr, uid, parent_id, context=context)
|
||||
if parent.type == "category":
|
||||
res['value'] = {
|
||||
'content': parent.content,
|
||||
}
|
||||
return res
|
||||
|
||||
def create_history(self, cr, uid, ids, vals, context=None):
|
||||
for i in ids:
|
||||
history = self.pool.get('document.page.history')
|
||||
if vals.get('content'):
|
||||
res = {
|
||||
'content': vals.get('content', ''),
|
||||
'page_id': i,
|
||||
}
|
||||
history.create(cr, uid, res)
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
page_id = super(document_page, self).create(cr, uid, vals, context)
|
||||
self.create_history(cr, uid, [page_id], vals, context)
|
||||
return page_id
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
result = super(document_page, self).write(cr, uid, ids, vals, context)
|
||||
self.create_history(cr, uid, ids, vals, context)
|
||||
return result
|
||||
|
||||
class document_page_history(osv.osv):
|
||||
_name = "document.page.history"
|
||||
_description = "Document Page History"
|
||||
_order = 'id DESC'
|
||||
_rec_name = "create_date"
|
||||
|
||||
_columns = {
|
||||
'page_id': fields.many2one('document.page', 'Page'),
|
||||
'summary': fields.char('Summary', size=256, select=True),
|
||||
'content': fields.text("Content"),
|
||||
'create_date': fields.datetime("Date"),
|
||||
'create_uid': fields.many2one('res.users', "Modified By"),
|
||||
}
|
||||
|
||||
def getDiff(self, cr, uid, v1, v2, context=None):
|
||||
history_pool = self.pool.get('document.page.history')
|
||||
text1 = history_pool.read(cr, uid, [v1], ['content'])[0]['content']
|
||||
text2 = history_pool.read(cr, uid, [v2], ['content'])[0]['content']
|
||||
line1 = line2 = ''
|
||||
if text1:
|
||||
line1 = tools.ustr(text1.splitlines(1))
|
||||
if text2:
|
||||
line2=tools.ustr(text2.splitlines(1))
|
||||
if (not line1 and not line2) or (line1 == line2):
|
||||
raise osv.except_osv(_('Warning!'), _('There are no changes in revisions.'))
|
||||
diff = difflib.HtmlDiff()
|
||||
return diff.make_file(line1, line2, "Revision-%s" % (v1), "Revision-%s" % (v2), context=False)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="wiki_wiki_main" model="document.page">
|
||||
<field name="name">The OpenERP wiki</field>
|
||||
<field name="tags">help, quick start, wiki, formatting</field>
|
||||
<field name="minor_edit">0</field>
|
||||
<field name="index">1</field>
|
||||
<field name="summary">Initial Page</field>
|
||||
<field name="content">==The OpenERP wiki==
|
||||
|
||||
[[File:http://www.openerp.com/sites/all/themes/openerp/logo.png OpenERP]]
|
||||
|
||||
The OpenERP wiki allows you to manage your enterprise's contents using wiki
|
||||
restructured texts. This module provides a collaborative way to manage internal
|
||||
FAQs, quality manuals, technical references, etc.
|
||||
|
||||
==Keypoints==
|
||||
* Same formating style than MediaWiki,
|
||||
* Any number of wiki group for different purposes,
|
||||
* Detailed history on all pages,
|
||||
* Integrated with the document management system.
|
||||
|
||||
==Why you should use the OpenERP integrated wiki than a separate wiki system ?==
|
||||
* Allows links to any document of the system,
|
||||
* Uses the access controls of OpenERP for uniq access rights management,
|
||||
* Use it to describe projects, tasks, products,
|
||||
* Integrated with customer portal to provide restricted external accesses,
|
||||
* Linked to users processes for quality manuals.
|
||||
|
||||
==To get more information==
|
||||
* [[Basic Wiki Editing]]
|
||||
* [[Wiki Documentation]]
|
||||
* [http://openerp.com The OpenERP website]
|
||||
|
||||
|
||||
</field>
|
||||
<field name="parent_id" ref="wiki_groups_wikiformatting0"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="base.user_demo" model="res.users">
|
||||
<field eval="[(4, ref('base.group_sale_salesman')),(4, ref('base.group_document_user'))]" name="groups_id"/>
|
||||
</record>
|
||||
<record id="demo_category1" model="document.page">
|
||||
<field name="name">OpenERP Features</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="type">category</field>
|
||||
<field name="content">
|
||||
Summary of the feature
|
||||
|
||||
Long explanation
|
||||
|
||||
Conclusion
|
||||
|
||||
Additional ressources
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_page1" model="document.page">
|
||||
<field name="name">OpenERP 6.1. Functional Demo</field>
|
||||
<field name="parent_id" ref="demo_category1"/>
|
||||
<field name="content">
|
||||
|
||||
The news is out, OpenERP's latest version 6.1. is here. It's more
|
||||
user-friendly, even more business oriented and efficient to manage your company
|
||||
|
||||
How to discover the latest version 6.1.?
|
||||
|
||||
Demo : [http://demo.openerp.com]
|
||||
Online: [http://openerp.com/online]
|
||||
Download: [http://openerp.com/downloads]
|
||||
|
||||
We have also put together a functional demo that presents 6.1. Watch this video
|
||||
to learn directly from us what OpenERP 6.1. can do for you. Share it in your
|
||||
company, with your clients and implement it now for your business.
|
||||
|
||||
==Watch on Youtube!==
|
||||
|
||||
[[Video:http://www.youtube.com/embed/7jES2jxKMso ]]
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_page2" model="document.page">
|
||||
<field name="name">Personalise Dashboards</field>
|
||||
<field name="parent_id" ref="demo_category1"/>
|
||||
<field name="content">
|
||||
You like OpenERP, but feel like you want to personalise it more? Now, OpenERP
|
||||
goes a step further and lets you customize your dashboard. Thanks to a new
|
||||
feature that allows you to customize your dashboard by adding new boards of any
|
||||
search view.
|
||||
|
||||
==How is it done?==
|
||||
|
||||
Step 1: access one search view
|
||||
|
||||
Step 2: apply the filter you want to see at each connection to the application
|
||||
(eg. on sales, manufacturing, etc)
|
||||
|
||||
Step 3: add it into the dashboard in the same space where you can save the filter
|
||||
|
||||
Step 4: choose the application you want it visible on and the name of the array
|
||||
|
||||
Look at this simple example below from Purchase, where I want to put on the
|
||||
application's dashboard "Purchases to Approve". After I access the search view
|
||||
and apply the filter for "Purchases to Approve", I can add it immediately to my
|
||||
Purchase dashboard.
|
||||
|
||||
[[File:http://www.openerp.com/sites/default/files/fileattach/dashboard2_1(1).png ]]
|
||||
|
||||
In less than a minute, the search view is visible on the dashboard
|
||||
|
||||
[[File:http://www.openerp.com/sites/default/files/fileattach/dashboard2_2.png ]]
|
||||
|
||||
Of course, you are free to delete what you don't need or like, but just in case
|
||||
you change your mind there is a reset button to return to the default view.
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_page3" model="document.page">
|
||||
<field name="name">Touchscreen Point of Sale</field>
|
||||
<field name="parent_id" ref="demo_category1"/>
|
||||
<field name="content">
|
||||
The brand new OpenERP touchscreen point of sale available with 6.1 allows you
|
||||
to manage your shop sales very easily. It's fully web based so that you don't
|
||||
have to install or deploy any software and all the sales shops can be easily
|
||||
consolidated. It works in connected and disconnected modes so that you can
|
||||
continue to sell if you lose your internet connection.
|
||||
|
||||
[[File:http://www.openerp.com/sites/default/files/fileattach/POS(2).png ]]
|
||||
|
||||
==Here's a summary of its main features and benefits:==
|
||||
|
||||
100% WEB based
|
||||
|
||||
* available for any touchscreen device (ipod, ipad, any tablet)mobile (with portable devices)
|
||||
* no installation required
|
||||
* no synchronization needed, completely integrated
|
||||
* continue working even when your connection is down if you close your browser, data won't be lost
|
||||
* fully web based with a clean interface smart interface
|
||||
|
||||
You have different options to select your products. You can do it through the
|
||||
barcode reader, just browse through the categories you have put in place (ie.
|
||||
drinks, snacks, meals, etc.), or text search in case neither of the other
|
||||
options work for you. If you need to use the POS for your restaurant, for
|
||||
example, your employees can record at the same time multiple tickets without
|
||||
having to wait to do one transaction at a time. Along, to facilitate payment,
|
||||
the application allows multiple payment methods.
|
||||
|
||||
The POS application is so simple and accessible to use that your shop or
|
||||
restaurant will never need any other tool to manage orders. Due to its smart
|
||||
and user-friendly interface you don't need any training to learn how to use it.
|
||||
Think of it as an out-of-the-box solution to boost your business' productivity.
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,163 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem name="Knowledge" id="knowledge.menu_document"/>
|
||||
<menuitem name="Pages" id="menu_wiki" parent="knowledge.menu_document" sequence="20" />
|
||||
|
||||
<!-- wiki tree view -->
|
||||
<record id="view_wiki_tree_children" model="ir.ui.view">
|
||||
<field name="name">document.page.tree</field>
|
||||
<field name="model">document.page</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="field_parent">child_ids</field>
|
||||
<field name="priority">100</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Document Page">
|
||||
<field name="name"/>
|
||||
<field name="write_uid"/>
|
||||
<field name="write_date"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- wiki list view -->
|
||||
<record id="view_wiki_tree" model="ir.ui.view">
|
||||
<field name="name">document.page.list</field>
|
||||
<field name="model">document.page</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Document Page">
|
||||
<field name="name"/>
|
||||
<field name="parent_id"/>
|
||||
<field name="write_uid"/>
|
||||
<field name="write_date"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- wiki Form view -->
|
||||
<record id="view_wiki_form" model="ir.ui.view">
|
||||
<field name="name">document.page.form</field>
|
||||
<field name="model">document.page</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Document Page" version="7.0">
|
||||
<field name="type" invisible="1"/>
|
||||
<h1><field name="name" placeholder="Name"/></h1>
|
||||
<group class="oe_edit_only">
|
||||
<group>
|
||||
<field name="parent_id" on_change="onchange_parent_id(parent_id,content)" string="Category"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="write_uid" groups="base.group_no_one"/>
|
||||
<field name="write_date" groups="base.group_no_one"/>
|
||||
<field name="menu_id" groups="base.group_no_one"/>
|
||||
</group>
|
||||
</group>
|
||||
<div class="oe_edit_only" attrs="{'invisible':[('type','=','content')]}">
|
||||
<label for="content" string="Template"/>
|
||||
that will be used as a content template for all new page of this category.
|
||||
</div>
|
||||
<field name="content" placeholder="e.g. Once upon a time..." class="oe_edit_only"/>
|
||||
<div class="oe_document_page">
|
||||
<field name="display_content" widget="text_wiki" class="oe_view_only"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- page Search view -->
|
||||
<record id="view_wiki_filter" model="ir.ui.view">
|
||||
<field name="name">document.page.search</field>
|
||||
<field name="model">document.page</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Document Page">
|
||||
<field name="name" string="Content" filter_domain="['|', ('name','ilike',self), ('content','ilike',self)]"/>
|
||||
<field name="write_uid"/>
|
||||
<field name="parent_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Document Type" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Author" domain="[]" context="{'group_by':'create_uid'}"/>
|
||||
<filter string="Last Contributor" domain="[]" context="{'group_by':'write_uid'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- page action -->
|
||||
<record id="action_category" model="ir.actions.act_window">
|
||||
<field name="name">Category</field>
|
||||
<field name="res_model">document.page</field>
|
||||
<field name="domain">[('type','=','category')]</field>
|
||||
<field name="context">{'default_type': 'category'}</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_wiki_tree"/>
|
||||
<field name="search_view_id" ref="view_wiki_filter"/>
|
||||
</record>
|
||||
<menuitem id="menu_category" parent="menu_wiki" name="Categories" action="action_category" sequence="10"/>
|
||||
<record id="action_page" model="ir.actions.act_window">
|
||||
<field name="name">Pages</field>
|
||||
<field name="res_model">document.page</field>
|
||||
<field name="domain">[('type','=','content')]</field>
|
||||
<field name="context">{'default_type': 'content'}</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_wiki_tree"/>
|
||||
<field name="search_view_id" ref="view_wiki_filter"/>
|
||||
<field name="help">Create web pages</field>
|
||||
</record>
|
||||
<menuitem id="menu_page" parent="menu_wiki" name="Pages" action="action_page" sequence="20"/>
|
||||
|
||||
<!-- History Tree view -->
|
||||
<record model="ir.ui.view" id="view_wiki_history_tree">
|
||||
<field name="name">document.page.history.tree</field>
|
||||
<field name="model">document.page.history</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Document History">
|
||||
<field name="create_date"/>
|
||||
<field name="create_uid"/>
|
||||
<field name="page_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- History Form view -->
|
||||
<record model="ir.ui.view" id="wiki_history_form">
|
||||
<field name="name">document.page.history.form</field>
|
||||
<field name="model">document.page.history</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Document Page History" version="7.0">
|
||||
<label for="page_id" class="oe_edit_only"/>
|
||||
<h1><field name="page_id" select="1" /></h1>
|
||||
<label for="create_date" class="oe_edit_only"/>
|
||||
<field name="create_date" readonly="1"/>
|
||||
<label for="content" class="oe_edit_only"/>
|
||||
<field name="content" colspan="4"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- History Action -->
|
||||
<record model="ir.actions.act_window" id="action_history">
|
||||
<field name="name">Page history</field>
|
||||
<field name="res_model">document.page.history</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<menuitem id="menu_page_history" parent="menu_wiki" name="Pages history" action="action_history" sequence="30" groups="base.group_no_one"/>
|
||||
<act_window
|
||||
id="action_related_page_history"
|
||||
context="{'search_default_page_id': [active_id], 'default_page_id': active_id}"
|
||||
domain="[('page_id','=',active_id)]"
|
||||
name="Page History"
|
||||
res_model="document.page.history"
|
||||
src_model="document.page"/>
|
||||
<act_window
|
||||
id="action_related_page_create_menu"
|
||||
name="Create Menu"
|
||||
res_model="document.page.create.menu"
|
||||
target="new"
|
||||
view_type="form"
|
||||
view_mode="form"
|
||||
src_model="document.page"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,398 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * document_page
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-03-19 10:19+0000\n"
|
||||
"Last-Translator: kifcaliph <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-03-20 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 14969)\n"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,template:0
|
||||
msgid "Document Page Template"
|
||||
msgstr "نموذج ويكي"
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki
|
||||
#: model:ir.ui.menu,name:document_page.menu_action_wiki_wiki
|
||||
msgid "Document Pages"
|
||||
msgstr "صفحات ويكي"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,method:0
|
||||
msgid "Display Method"
|
||||
msgstr "طريقة العرض"
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0 field:document.page,create_uid:0
|
||||
msgid "Author"
|
||||
msgstr "المؤلف"
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_wiki_page_open
|
||||
#: view:document.page.page.open:0
|
||||
msgid "Open Page"
|
||||
msgstr "صفحة عامة"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,menu_id:0
|
||||
msgid "Menu"
|
||||
msgstr "قائمة"
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page
|
||||
msgid "Indicates that this pages have a table of contents or not"
|
||||
msgstr "يوضح ما اذا كانت هذه الصفحات تحتوى على جدول محتويات او لا تحتوى"
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_document_page_history view:document.page.history:0
|
||||
msgid "Document Page History"
|
||||
msgstr "تاريخ ويكي"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,minor_edit:0
|
||||
msgid "Minor edit"
|
||||
msgstr "تحرير ثانوى"
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0 field:document.page,content:0
|
||||
msgid "Content"
|
||||
msgstr "محتوى"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,child_ids:0
|
||||
msgid "Child Pages"
|
||||
msgstr "صفحات فرعية"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,parent_id:0
|
||||
msgid "Parent Page"
|
||||
msgstr "صفحة رئيسية"
|
||||
|
||||
#. module: wiki
|
||||
#: view:wiki.wiki:0 field:wiki.wiki,write_uid:0
|
||||
msgid "Last Contributor"
|
||||
msgstr "المشارك الاخير"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.create.menu,menu_parent_id:0
|
||||
msgid "Parent Menu"
|
||||
msgstr "القائمة الرئيسية"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,name:0
|
||||
msgid "Title"
|
||||
msgstr "العنوان"
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wiki_create_menu
|
||||
msgid "Wizard Create Menu"
|
||||
msgstr "إنشائ قائمة بالمعالج"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,history_id:0
|
||||
msgid "History Lines"
|
||||
msgstr "سطور التاريخ"
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Page Content"
|
||||
msgstr "محتوى الصفحة"
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/document_page.py:237
|
||||
#, python-format
|
||||
msgid "There are no changes in revisions"
|
||||
msgstr "لا يوجد تغيير فى المراجعات"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.create.menu,menu_name:0
|
||||
msgid "Menu Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,notes:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,review:0
|
||||
msgid "Needs Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page,review:0
|
||||
msgid ""
|
||||
"Indicates that this page should be reviewed, raising the attention of other "
|
||||
"contributors"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.create.menu:0 view:document.page.make.index:0
|
||||
msgid "Menu Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.act_wiki_wiki_history
|
||||
msgid "Page History"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: selection:document.page.type,method:0
|
||||
msgid "Tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0
|
||||
msgid "Page Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,tags:0
|
||||
msgid "Keywords"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,help:document_page.action_wiki
|
||||
msgid ""
|
||||
"With Wiki Pages you can share ideas and questions with your coworkers. You "
|
||||
"can create a new document that can be linked to one or several applications "
|
||||
"(CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. "
|
||||
"There is a basic wiki editing for text format."
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/wizard/document_page_show_diff.py:54
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page.type,home:0
|
||||
msgid "Required to select home page if display method is Home Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,create_date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.make.index:0
|
||||
msgid "Want to create a Index on Selected Pages ? "
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
|
||||
#: view:wizard.document.page.history.show_diff:0
|
||||
msgid "Difference"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,page_ids:0
|
||||
msgid "Pages"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0
|
||||
msgid "Group Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.page.open:0
|
||||
msgid "Want to open a wiki page? "
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,content:0
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Meta Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0 view:wizard.document.page.history.show_diff:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: selection:document.page.type,method:0
|
||||
msgid "List"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,edit_summary:0 field:document.page.history,edit_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,create_date:0
|
||||
msgid "Created Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_history
|
||||
msgid "All Page Histories"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wiki_wiki
|
||||
msgid "document.page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page.type,method:0
|
||||
msgid "Define the default behaviour of the menu created on this group"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:wizard.document.page.history.show_diff:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wizard_wiki_history_show_diff
|
||||
msgid "wizard.document.page.history.show_diff"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,wiki_id:0
|
||||
msgid "Wiki Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,home:0 selection:document.page.type,method:0
|
||||
msgid "Home Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page,parent_id:0
|
||||
msgid "Allows you to link with the other page with in the current topic"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Modification Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.ui.menu,name:document_page.menu_wiki_configuration view:document.page:0
|
||||
msgid "Wiki"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,write_date:0
|
||||
msgid "Modification Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_make_index
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_make_index_values
|
||||
#: model:ir.model,name:document_page.model_wiki_make_index view:document.page.make.index:0
|
||||
msgid "Create Index"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/wizard/document_page_show_diff.py:54
|
||||
#, python-format
|
||||
msgid "You need to select minimum 1 or maximum 2 history revision!"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
|
||||
#: view:document_page.create.menu:0 view:document.page.type:0 view:document.page.make.index:0
|
||||
msgid "Create Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,minor_edit:0
|
||||
msgid "This is a major edit ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_groups
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_groups_browse
|
||||
#: model:ir.model,name:document_page.model_wiki_groups
|
||||
#: model:ir.ui.menu,name:document_page.menu_action_wiki_groups view:document.page.type:0
|
||||
msgid "Wiki Groups"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Topic"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,write_uid:0
|
||||
msgid "Modify By"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/web/widgets/wikimarkup/__init__.py:1981
|
||||
#: field:document.page,type:0
|
||||
#, python-format
|
||||
msgid "Table of Contents"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0 view:document.page.page.open:0
|
||||
msgid "Open Wiki Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wiki_wiki_page_open
|
||||
msgid "wiz open page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.create.menu:0 view:document.page.make.index:0 view:document.page.page.open:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:wizard.document.page.history.show_diff,file_path:0
|
||||
msgid "Diff"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Need Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_review
|
||||
msgid "Pages Waiting Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.act_wiki_group_open
|
||||
msgid "Search Page"
|
||||
msgstr ""
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: wiki
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
||||
|
@ -392,7 +392,7 @@ msgstr "Wiki Gruppen"
|
|||
#. module: wiki
|
||||
#: view:wiki.wiki:0
|
||||
msgid "Topic"
|
||||
msgstr "Thema"
|
||||
msgstr "THema"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.wiki.history,write_uid:0
|
|
@ -0,0 +1,423 @@
|
|||
# #-#-#-#-# document_page.pot (OpenERP Server 6.1rc1) #-#-#-#-#
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * document_page
|
||||
#
|
||||
# #-#-#-#-# document_page.pot.web (PROJECT VERSION) #-#-#-#-#
|
||||
# Translations template for PROJECT.
|
||||
# Copyright (C) 2012 ORGANIZATION
|
||||
# This file is distributed under the same license as the PROJECT project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"#-#-#-#-# document_page.pot (OpenERP Server 6.1rc1) #-#-#-#-#\n"
|
||||
"Project-Id-Version: OpenERP Server 6.1rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-02-08 00:37+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
"#-#-#-#-# document_page.pot.web (PROJECT VERSION) #-#-#-#-#\n"
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 0.9.6\n"
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,template:0
|
||||
msgid "Document page Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki
|
||||
#: model:ir.ui.menu,name:document_page.menu_action_wiki_wiki
|
||||
msgid "Document Pages"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,method:0
|
||||
msgid "Display Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0 field:document.page,create_uid:0
|
||||
msgid "Author"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_wiki_page_open
|
||||
#: view:document.page.page.open:0
|
||||
msgid "Open Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,menu_id:0
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page,type:0
|
||||
msgid "Indicates that this pages have a table of contents or not"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wiki_wiki_history view:document.page.history:0
|
||||
msgid "Document page History"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,minor_edit:0
|
||||
msgid "Minor edit"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0 field:document.page,content:0
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,child_ids:0
|
||||
msgid "Child Pages"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,parent_id:0
|
||||
msgid "Parent Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0 field:document.page,write_uid:0
|
||||
msgid "Last Contributor"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.create.menu,menu_parent_id:0
|
||||
msgid "Parent Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,name:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wiki_create_menu
|
||||
msgid "Wizard Create Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,history_id:0
|
||||
msgid "History Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Page Content"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/document_page.py:237 code:addons/wiki/wizard/wiki_make_index.py:52
|
||||
#, python-format
|
||||
msgid "Warning !"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/document_page.py:237
|
||||
#, python-format
|
||||
msgid "There are no changes in revisions"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.create.menu,menu_name:0
|
||||
msgid "Menu Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,notes:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,review:0
|
||||
msgid "Needs Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page,review:0
|
||||
msgid ""
|
||||
"Indicates that this page should be reviewed, raising the attention of other "
|
||||
"contributors"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.create.menu:0 view:document.page.make.index:0
|
||||
msgid "Menu Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.act_wiki_wiki_history
|
||||
msgid "Page History"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: selection:document.page.type,method:0
|
||||
msgid "Tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0
|
||||
msgid "Page Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,tags:0
|
||||
msgid "Keywords"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,help:document_page.action_wiki
|
||||
msgid ""
|
||||
"With Wiki Pages you can share ideas and questions with your coworkers. You "
|
||||
"can create a new document that can be linked to one or several applications "
|
||||
"(CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. "
|
||||
"There is a basic wiki editing for text format."
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/wizard/document_page_show_diff.py:54
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page.type,home:0
|
||||
msgid "Required to select home page if display method is Home Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,create_date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.make.index:0
|
||||
msgid "Want to create a Index on Selected Pages ? "
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
|
||||
#: view:wizard.document.page.history.show_diff:0
|
||||
msgid "Difference"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,page_ids:0
|
||||
msgid "Pages"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0
|
||||
msgid "Group Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.page.open:0
|
||||
msgid "Want to open a wiki page? "
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,content:0
|
||||
msgid "Text area"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Meta Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0 view:wizard.document.page.history.show_diff:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: selection:document.page.type,method:0
|
||||
msgid "List"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,summary:0 field:document.page.history,edit_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.groups,create_date:0
|
||||
msgid "Created Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_history
|
||||
msgid "All Page Histories"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wiki_wiki
|
||||
msgid "document.page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page.type,method:0
|
||||
msgid "Define the default behaviour of the menu created on this group"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:wizard.document.page.history.show_diff:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wizard_wiki_history_show_diff
|
||||
msgid "wizard.document.page.history.show_diff"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,wiki_id:0
|
||||
msgid "Wiki Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.type,home:0 selection:document.page.type,method:0
|
||||
msgid "Home Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: help:document.page,parent_id:0
|
||||
msgid "Allows you to link with the other page with in the current topic"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Modification Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.ui.menu,name:document_page.menu_wiki_configuration view:document.page:0
|
||||
msgid "Wiki"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page,write_date:0
|
||||
msgid "Modification Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_make_index
|
||||
#: model:ir.actions.act_window,name:document_page.action_view_wiki_make_index_values
|
||||
#: model:ir.model,name:document_page.model_wiki_make_index view:document.page.make.index:0
|
||||
msgid "Create Index"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/wizard/document_page_show_diff.py:54
|
||||
#, python-format
|
||||
msgid "You need to select minimum 1 or maximum 2 history revision!"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
|
||||
#: view:document.page.create.menu:0 view:document.page.type:0 view:document.page.make.index:0
|
||||
msgid "Create Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,minor_edit:0
|
||||
msgid "This is a major edit ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_groups
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_groups_browse
|
||||
#: model:ir.model,name:document_page.model_wiki_groups
|
||||
#: model:ir.ui.menu,name:document_page.menu_action_wiki_groups view:document.page.type:0
|
||||
msgid "Document Types"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Topic"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:document.page.history,write_uid:0
|
||||
msgid "Modify By"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: code:addons/document_page/web/widgets/wikimarkup/__init__.py:1981
|
||||
#: field:document.page,type:0
|
||||
#, python-format
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.type:0 view:document.page.page.open:0
|
||||
msgid "Open Document Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.model,name:document_page.model_wiki_wiki_page_open
|
||||
msgid "wiz open page"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page.create.menu:0 view:document.page.make.index:0 view:document.page.page.open:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: field:wizard.document.page.history.show_diff,file_path:0
|
||||
msgid "Diff"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: view:document.page:0
|
||||
msgid "Need Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.action_wiki_review
|
||||
msgid "Pages Waiting Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: document_page
|
||||
#: model:ir.actions.act_window,name:document_page.act_wiki_group_open
|
||||
msgid "Search Page"
|
||||
msgstr ""
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-11 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 14771)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-02-20 01:10+0000\n"
|
||||
"Last-Translator: Freddy Gonzalez <freddy.gonzalez.contreras@gmail.com>\n"
|
||||
"Last-Translator: Freddy Gonzalez <freddy.gonzalez@clearcorp.co.cr>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-21 05:55+0000\n"
|
||||
"X-Generator: Launchpad (build 14838)\n"
|
||||
"Language: \n"
|
||||
|
||||
#. module: wiki
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
||||
|
@ -97,7 +97,7 @@ msgstr "Menu Parent"
|
|||
#: code:addons/wiki/wizard/wiki_make_index.py:52
|
||||
#, python-format
|
||||
msgid "There is no section in this Page"
|
||||
msgstr "Il n'y a pas de section dans cette page"
|
||||
msgstr ""
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,name:0 view:wiki.wiki:0 field:wiki.wiki,group_id:0
|
|
@ -15,8 +15,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -13,8 +13,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
|
@ -14,8 +14,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-09 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15761)\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
|
||||
#. module: wiki
|
||||
#: field:wiki.groups,template:0
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue