Browse Source

[MERGE][S0010 CR]

pull/14/head
Thibault Francois 8 years ago
parent
commit
9abf6051f2
  1. 1
      beesdoo_base/__openerp__.py
  2. 17
      beesdoo_base/models/partner.py
  3. 140
      beesdoo_base/views/partner.xml
  4. 2
      beesdoo_base/wizard/__init__.py
  5. 21
      beesdoo_base/wizard/partner.py
  6. 2
      beesdoo_base/wizard/views/member_card.xml
  7. 22
      beesdoo_base/wizard/views/partner.xml

1
beesdoo_base/__openerp__.py

@ -22,5 +22,6 @@
'security/ir.model.access.csv',
'views/partner.xml',
'wizard/views/member_card.xml',
'wizard/views/partner.xml'
],
}

17
beesdoo_base/models/partner.py

@ -45,7 +45,7 @@ class Partner(models.Model):
def write(self, values):
if values.get('parent_eater_id') and self.parent_eater_id:
raise ValidationError(_('You try to assign a eater to a worker but this easer is alread assign to %s please remove it before') % self.parent_eater_id.name)
#replace many2many command when writing on child_eater_ids to just remove the link
# replace many2many command when writing on child_eater_ids to just remove the link
if 'child_eater_ids' in values:
for command in values['child_eater_ids']:
if command[0] == 2:
@ -75,4 +75,17 @@ class Partner(models.Model):
cr.execute("UPDATE res_partner set last_name = name where last_name IS NULL")
return res
@api.multi
def _new_eater(self, surname, name, email):
partner_data = {
'name' : surname + " "+ name,
'last_name' : name,
'first_name' : surname,
'is_customer' : True,
'eater' : 'eater',
'parent_eater_id' : self.id,
'parent_id' : self.id,
'email' : email,
'country_id' : self.country_id.id
}
return self.env['res.partner'].create(partner_data)

140
beesdoo_base/views/partner.xml

@ -1,72 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.actions.act_window" id="action_membercard_wizard">
<field name="name">New Member Card</field>
<field name="res_model">membercard.new.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record model="ir.actions.act_window" id="action_membercard_wizard">
<field name="name">New Member Card</field>
<field name="res_model">membercard.new.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record model="ir.actions.act_window" id="action_eater_wizard">
<field name="name">New Eater</field>
<field name="res_model">eater.new.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record model="ir.ui.view" id="beesdoo_partner_form_view">
<field name="name">beesdoo.partner.form.view</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="point_of_sale.view_partner_property_form" />
<field name="arch" type="xml">
<field name="name" position="replace">
<field name="name" class="oe_read_only" />
<field name="first_name" placeholder="First Name" class="oe_edit_only"
attrs="{'invisible' : [('company_type', '=', 'company')]}" />
<field name="last_name" placeholder="Last Name" class="oe_edit_only"
default_focus="1" />
</field>
<field name="website" position="after">
<field name="eater"
attrs="{'invisible': [('company_type', '=', 'company')]}" />
<field name="parent_eater_id" attrs="{'invisible' : [('eater', '!=', 'eater')]}" />
</field>
<xpath expr="//notebook" position="inside">
<page string="Member Cards"
attrs="{'invisible': ['|', ('customer', '=', False), ('eater', '!=', 'worker_eater')]}">
<separator string="Printing" />
<group>
<field name="member_card_to_be_printed" />
<field name="last_printed" />
</group>
<separator string="Eaters" />
<field name="child_eater_ids" widget="many2many_tags" />
<separator string="Cards" />
<field string="Cards" name="member_card_ids">
<tree editable="bottom">
<field name="barcode" />
<field name="create_date" />
<field name="end_date" />
<field name="responsible_id" />
<field name="comment" />
<field name="valid" />
</tree>
</field>
<group>
<button string="New Card" name="%(action_membercard_wizard)d"
type="action" />
</group>
</page>
</xpath>
<field name="barcode" position="attributes">
<attribute name="attrs">{'invisible' : [('eater', '!=', 'worker_eater')]}</attribute>
</field>
<field name="barcode" position="after">
<field name="parent_barcode" attrs="{'invisible' : [('eater', '!=', 'eater')]}" />
</field>
</field>
</record>
<record model="ir.ui.view" id="beesdoo_partner_form_view">
<field name="name">beesdoo.partner.form.view</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="point_of_sale.view_partner_property_form" />
<field name="arch" type="xml">
<field name="name" position="replace">
<field name="name" class="oe_read_only" />
<field name="first_name" placeholder="First Name" class="oe_edit_only"
attrs="{'invisible' : [('company_type', '=', 'company')]}" />
<field name="last_name" placeholder="Last Name" class="oe_edit_only"
default_focus="1" />
</field>
<field name="website" position="after">
<field name="eater" attrs="{'invisible': [('customer', '=', False)]}" />
<field name="parent_eater_id" attrs="{'invisible' : [('eater', '!=', 'eater')]}" />
</field>
<xpath expr="//notebook" position="inside">
<page string="Member Card"
attrs="{'invisible': ['|', ('customer', '=', False), ('eater', '!=', 'worker_eater')]}">
<separator string="Printing" />
<group>
<field name="member_card_to_be_printed" />
<field name="last_printed" />
</group>
<separator string="Eaters" />
<field name="child_eater_ids" widget="many2many_tags" />
<group>
<button string="New Eater" name="%(action_eater_wizard)d"
type="action" />
</group>
<separator string="Cards" />
<field string="Cards" name="member_card_ids">
<tree editable="bottom">
<field name="barcode" />
<field name="create_date" />
<field name="end_date" />
<field name="responsible_id" />
<field name="comment" />
<field name="valid" />
</tree>
</field>
<group>
<button string="New Card" name="%(action_membercard_wizard)d"
type="action" />
</group>
</page>
</xpath>
<field name="barcode" position="attributes">
<attribute name="attrs">{'invisible' : [('eater', '!=',
'worker_eater')]}
</attribute>
</field>
<field name="barcode" position="after">
<field name="parent_barcode" attrs="{'invisible' : [('eater', '!=', 'eater')]}" />
</field>
</field>
</record>
<!-- S022 : By default a supplier should be a company -->
<record id="base.action_partner_supplier_form" model="ir.actions.act_window">
<field name="context">{ 'search_default_supplier': 1,
'default_customer': 0,
'default_supplier': 1,
'default_is_company' : True,
'default_company_type' : 'company', }
<field name="context">{
'search_default_supplier': 1,
'default_customer': 0,
'default_supplier': 1,
'default_is_company' : True,
'default_company_type' : 'company',
}
</field>
</record>
</odoo>

2
beesdoo_base/wizard/__init__.py

@ -1,2 +1,2 @@
import member_card
import member_card, partner

21
beesdoo_base/wizard/partner.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
from openerp import models, fields, api
class NewEaterWizard(models.TransientModel):
"""
A transient model for the creation of a eater related to a worker.
"""
_name = 'eater.new.wizard'
def _get_default_partner(self):
return self.env.context['active_id']
first_name = fields.Char('First Name', required=True)
last_name = fields.Char('Last Name', required=True)
email = fields.Char('Email')
partner_id = fields.Many2one('res.partner', default=_get_default_partner)
@api.one
def create_new_eater(self):
self.partner_id._new_eater(self.first_name, self.last_name, self.email)

2
beesdoo_base/wizard/views/member_card.xml

@ -10,7 +10,7 @@
<field name="force_barcode" />
</group>
<separator string="Reason" />
<field name="new_comment" string="Raison" editable="True" />
<field name="new_comment" string="Reason" editable="True" />
<field name="partner_id" invisible="1" />
<footer>
<button type="object" name="create_new_card" string="Create"

22
beesdoo_base/wizard/views/partner.xml

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- New eater generation wizard -->
<record id="Eater Wizard" model="ir.ui.view">
<field name="name">New Eater Wizard</field>
<field name="model">eater.new.wizard</field>
<field name="arch" type="xml">
<form string="Create a new eater">
<group>
<field name="first_name" />
<field name="last_name" />
<field name="email" />
</group>
<footer>
<button type="object" name="create_new_eater" string="Create"
class="oe_highlight" />
<button special="cancel" string="Cancel" />
</footer>
</form>
</field>
</record>
</odoo>
Loading…
Cancel
Save