[MERGE] misc merge fp-addons

bzr revid: fp@openerp.com-20121025180519-24c6liikb37ho4zx
This commit is contained in:
Fabien Pinckaers 2012-10-25 20:05:19 +02:00
commit 576a4ea90a
14 changed files with 30 additions and 34 deletions

View File

@ -64,7 +64,7 @@
<button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/> <button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
<button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/> <button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" /> <button name="cancel_voucher" string="Cancel" states="draft,proforma" />
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/> <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure you want to cancel this receipt?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/> <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> <field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header> </header>
@ -209,7 +209,7 @@
<button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/> <button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
<button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/> <button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" /> <button name="cancel_voucher" string="Cancel" states="draft,proforma" />
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/> <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure you want to cancel this receipt?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/> <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> <field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header> </header>

View File

@ -170,12 +170,7 @@
</group> </group>
</group> </group>
</page> </page>
<!-- <page string="Invitations" groups="base.group_no_one">
Temporarily removing invitation feature as the implementation
was not clean. Invitation should be trigerred automatically
based on partner_ids.
-->
<page string="Invitations">
<field name="attendee_ids" widget="one2many" mode="tree"> <field name="attendee_ids" widget="one2many" mode="tree">
<tree string="Invitation details" editable="top"> <tree string="Invitation details" editable="top">
<field name="partner_id"/> <field name="partner_id"/>

View File

@ -125,7 +125,7 @@
</div> </div>
<div class="oe_title"> <div class="oe_title">
<div class="oe_edit_only"> <div class="oe_edit_only">
<label for="name" string="Title"/> <label for="name"/>
</div> </div>
<h1><field name="name" required="1"/></h1> <h1><field name="name" required="1"/></h1>
<div class="oe_edit_only"> <div class="oe_edit_only">

View File

@ -112,7 +112,7 @@ class hr_job(osv.osv):
'requirements': fields.text('Requirements'), 'requirements': fields.text('Requirements'),
'department_id': fields.many2one('hr.department', 'Department'), 'department_id': fields.many2one('hr.department', 'Department'),
'company_id': fields.many2one('res.company', 'Company'), 'company_id': fields.many2one('res.company', 'Company'),
'state': fields.selection([('open', 'In Position'), ('recruit', 'In Recruitement')], 'Status', readonly=True, required=True, 'state': fields.selection([('open', 'No Recruitment'), ('recruit', 'Recruitement in Progress')], 'Status', readonly=True, required=True,
help="By default 'In position', set it to 'In Recruitment' if recruitment process is going on for this job position."), help="By default 'In position', set it to 'In Recruitment' if recruitment process is going on for this job position."),
} }
_defaults = { _defaults = {

View File

@ -330,8 +330,8 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Job" version="7.0"> <form string="Job" version="7.0">
<header> <header>
<button name="job_recruitement" string="In Recruitement" states="open" type="object" class="oe_highlight" groups="base.group_user"/> <button name="job_recruitement" string="Launch Recruitement" states="open" type="object" class="oe_highlight" groups="base.group_user"/>
<button name="job_open" string="Recruitment Done" states="recruit" type="object" class="oe_highlight" groups="base.group_user"/> <button name="job_open" string="Stop Recruitment" states="recruit" type="object" class="oe_highlight" groups="base.group_user"/>
<field name="state" widget="statusbar" statusbar_visible="recruit,open"/> <field name="state" widget="statusbar" statusbar_visible="recruit,open"/>
</header> </header>
<sheet> <sheet>

View File

@ -64,15 +64,15 @@ class hr_expense_expense(osv.osv):
_description = "Expense" _description = "Expense"
_order = "id desc" _order = "id desc"
_columns = { _columns = {
'name': fields.char('Description', size=128, required=True), 'name': fields.char('Description', size=128),
'id': fields.integer('Sheet ID', readonly=True), 'id': fields.integer('Sheet ID', readonly=True),
'date': fields.date('Date', select=True), 'date': fields.date('Date', select=True),
'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is done."), 'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is done."),
'employee_id': fields.many2one('hr.employee', "Employee", required=True), 'employee_id': fields.many2one('hr.employee', "Employee", required=True),
'user_id': fields.many2one('res.users', 'User', required=True), 'user_id': fields.many2one('res.users', 'User', required=True),
'date_confirm': fields.date('Confirmation Date', select=True, help = "Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."), 'date_confirm': fields.date('Confirmation Date', select=True, help="Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
'date_valid': fields.date('Validation Date', select=True, help = "Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."), 'date_valid': fields.date('Validation Date', select=True, help="Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
'user_valid': fields.many2one('res.users', 'Validation User'), 'user_valid': fields.many2one('res.users', 'Validation By'),
'account_move_id': fields.many2one('account.move', 'Ledger Posting'), 'account_move_id': fields.many2one('account.move', 'Ledger Posting'),
'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ), 'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ),
'note': fields.text('Note'), 'note': fields.text('Note'),
@ -189,7 +189,7 @@ class hr_expense_expense(osv.osv):
raise osv.except_osv(_('Error!'), _('The employee must have a home address.')) raise osv.except_osv(_('Error!'), _('The employee must have a home address.'))
acc = exp.employee_id.address_home_id.property_account_payable.id acc = exp.employee_id.address_home_id.property_account_payable.id
voucher = { voucher = {
'name': exp.name, 'name': exp.name or '/',
'reference': sequence_obj.get(cr, uid, 'hr.expense.invoice'), 'reference': sequence_obj.get(cr, uid, 'hr.expense.invoice'),
'account_id': acc, 'account_id': acc,
'type': 'purchase', 'type': 'purchase',

View File

@ -79,7 +79,7 @@
</group> </group>
<group> <group>
<field name="name"/> <field name="name"/>
<field name="user_valid"/> <field name="user_valid" attrs="{'invisible': [('state','=','draft')]}"/>
<field name="currency_id" groups="base.group_multi_currency" on_change="onchange_currency_id(currency_id, company_id)"/> <field name="currency_id" groups="base.group_multi_currency" on_change="onchange_currency_id(currency_id, company_id)"/>
</group> </group>
</group> </group>
@ -128,9 +128,9 @@
</group> </group>
</group> </group>
</page> </page>
<page string="Other Info"> <page string="Accounting" groups="account.group_account_user">
<group> <group>
<group string="Accounting Data" groups="account.group_account_user"> <group string="Accounting Data">
<field name="journal_id" widget="selection" domain="[('type', '=', 'purchase')]"/> <field name="journal_id" widget="selection" domain="[('type', '=', 'purchase')]"/>
<field name="voucher_id" context="{'form_view_ref': 'account_voucher.view_purchase_receipt_form'}"/> <field name="voucher_id" context="{'form_view_ref': 'account_voucher.view_purchase_receipt_form'}"/>
</group> </group>

View File

@ -107,7 +107,7 @@
<form string="Jobs - Recruitment Form" version="7.0"> <form string="Jobs - Recruitment Form" version="7.0">
<header> <header>
<button name="case_close_with_emp" string="Hire" type="object" <button name="case_close_with_emp" string="Hire" type="object"
states="draft,open,pending" class="oe_highlight"/> states="draft,open,pending,done" class="oe_highlight"/>
<button name="case_cancel" string="Refuse" type="object" <button name="case_cancel" string="Refuse" type="object"
states="draft,open,pending" class="oe_highlight"/> states="draft,open,pending" class="oe_highlight"/>
<field name="stage_id" widget="statusbar" clickable="True"/> <field name="stage_id" widget="statusbar" clickable="True"/>

View File

@ -620,10 +620,10 @@
<form string="Manufacturing Orders" version="7.0"> <form string="Manufacturing Orders" version="7.0">
<header> <header>
<button name="button_confirm" states="draft" string="Confirm Production" class="oe_highlight"/> <button name="button_confirm" states="draft" string="Confirm Production" class="oe_highlight"/>
<button name="button_produce" states="ready" string="Start Production" class="oe_highlight"/> <button name="%(act_mrp_product_produce)d" states="confirmed,ready,in_production" string="Produce" type="action" class="oe_highlight"/>
<button name="%(act_mrp_product_produce)d" states="in_production" string="Produce" type="action" class="oe_highlight"/> <button name="force_production" states="confirmed" string="Force Reservation" type="object"/>
<button name="force_production" states="confirmed" string="Force Reservation" type="object" class="oe_highlight"/>
<button name="force_production" states="picking_except" string="Force Reservation" type="object"/> <button name="force_production" states="picking_except" string="Force Reservation" type="object"/>
<button name="button_produce" states="confirmed,ready" string="Mark as Started"/>
<button name="button_recreate" states="picking_except" string="Recreate Picking"/> <button name="button_recreate" states="picking_except" string="Recreate Picking"/>
<button name="button_cancel" states="draft,ready,in_production,picking_except" string="Cancel"/> <button name="button_cancel" states="draft,ready,in_production,picking_except" string="Cancel"/>
<button name="action_cancel" type="object" states="confirmed" string="Cancel"/> <button name="action_cancel" type="object" states="confirmed" string="Cancel"/>

View File

@ -86,7 +86,7 @@ class pad_common(osv.osv_memory):
def copy(self, cr, uid, id, default=None, context=None): def copy(self, cr, uid, id, default=None, context=None):
if not default: if not default:
default = {} default = {}
for k,v in self._all_columns: for k, v in self._all_columns.iteritems():
field = v.column field = v.column
if hasattr(field,'pad_content_field'): if hasattr(field,'pad_content_field'):
pad = self.pad_generate_url(cr, uid, context) pad = self.pad_generate_url(cr, uid, context)

View File

@ -115,7 +115,7 @@ class project_work(osv.osv):
if not context.get('no_analytic_entry',False): if not context.get('no_analytic_entry',False):
task_obj = task_obj.browse(cr, uid, vals['task_id']) task_obj = task_obj.browse(cr, uid, vals['task_id'])
result = self.get_user_related_details(cr, uid, vals.get('user_id', uid)) result = self.get_user_related_details(cr, uid, vals.get('user_id', uid))
vals_line['name'] = '%s: %s' % (tools.ustr(task_obj.name), tools.ustr(vals['name']) or '/') vals_line['name'] = '%s: %s' % (tools.ustr(task_obj.name), tools.ustr(vals['name'] or '/'))
vals_line['user_id'] = vals['user_id'] vals_line['user_id'] = vals['user_id']
vals_line['product_id'] = result['product_id'] vals_line['product_id'] = result['product_id']
vals_line['date'] = vals['date'][:10] vals_line['date'] = vals['date'][:10]
@ -172,7 +172,7 @@ class project_work(osv.osv):
vals_line = {} vals_line = {}
if 'name' in vals: if 'name' in vals:
vals_line['name'] = '%s: %s' % (tools.ustr(task.task_id.name), tools.ustr(vals['name']) or '/') vals_line['name'] = '%s: %s' % (tools.ustr(task.task_id.name), tools.ustr(vals['name'] or '/'))
if 'user_id' in vals: if 'user_id' in vals:
vals_line['user_id'] = vals['user_id'] vals_line['user_id'] = vals['user_id']
if 'date' in vals: if 'date' in vals:

View File

@ -152,9 +152,10 @@ class purchase_order(osv.osv):
_columns = { _columns = {
'name': fields.char('Order Reference', size=64, required=True, select=True, help="Unique number of the purchase order, computed automatically when the purchase order is created."), 'name': fields.char('Order Reference', size=64, required=True, select=True, help="Unique number of the purchase order, computed automatically when the purchase order is created."),
'origin': fields.char('Source Document', size=64, 'origin': fields.char('Source Document', size=64,
help="Reference of the document that generated this purchase order request." help="Reference of the document that generated this purchase order request; a sale order or an internal procurement request."
), ),
'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64), 'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64,
help="Reference of the sale order or quotation sent by your supplier. It's mainly used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your supplier."),
'date_order':fields.date('Order Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."), 'date_order':fields.date('Order Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."),
'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"), 'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"),
'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, change_default=True), 'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, change_default=True),
@ -889,10 +890,10 @@ class purchase_order_line(osv.osv):
account_tax = self.pool.get('account.tax') account_tax = self.pool.get('account.tax')
# - check for the presence of partner_id and pricelist_id # - check for the presence of partner_id and pricelist_id
if not pricelist_id:
raise osv.except_osv(_('No Pricelist !'), _('Select a price list for a supplier in the purchase form to choose a product.'))
if not partner_id: if not partner_id:
raise osv.except_osv(_('No Partner!'), _('Select a partner in purchase order to choose a product.')) raise osv.except_osv(_('No Partner!'), _('Select a partner in purchase order to choose a product.'))
if not pricelist_id:
raise osv.except_osv(_('No Pricelist !'), _('Select a price list in the purchase order form before choosing a product.'))
# - determine name and notes based on product in partner lang. # - determine name and notes based on product in partner lang.
lang = res_partner.browse(cr, uid, partner_id).lang lang = res_partner.browse(cr, uid, partner_id).lang

View File

@ -198,7 +198,7 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Purchase Order" version="7.0"> <form string="Purchase Order" version="7.0">
<header> <header>
<button name="wkf_send_rfq" states="draft" string="Send RFQ" type="object" context="{'send_rfq':True}" class="oe_highlight"/> <button name="wkf_send_rfq" states="draft" string="Send Request for Quotation" type="object" context="{'send_rfq':True}" class="oe_highlight"/>
<button name="purchase_confirm" states="draft" string="Confirm Order"/> <button name="purchase_confirm" states="draft" string="Confirm Order"/>
<button name="purchase_confirm" states="sent" string="Confirm Order" class="oe_highlight"/> <button name="purchase_confirm" states="sent" string="Confirm Order" class="oe_highlight"/>
<button name="wkf_send_rfq" states="confirmed" string="Resend Purchase Order" type="object" class="oe_highlight"/> <button name="wkf_send_rfq" states="confirmed" string="Resend Purchase Order" type="object" class="oe_highlight"/>
@ -262,7 +262,7 @@
</group> </group>
<div class="oe_clear"/> <div class="oe_clear"/>
<label for="notes"/> <label for="notes"/>
<field name="notes"/> <field name="notes" class="oe_inline"/>
</page> </page>
<page string="Incoming Shipments &amp; Invoices"> <page string="Incoming Shipments &amp; Invoices">
<group> <group>

View File

@ -56,7 +56,7 @@
<field name="product_id" <field name="product_id"
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
groups="base.group_user" groups="base.group_user"
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order, product_packaging, parent.fiscal_position, False, context)"/> on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, True, parent.date_order, product_packaging, parent.fiscal_position, False, context)"/>
</field> </field>
<field name="product_uom_qty" position="replace"> <field name="product_uom_qty" position="replace">
<field context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" <field context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"