diff --git a/beesdoo_base/__openerp__.py b/beesdoo_base/__openerp__.py index 0c7cc21..6101c91 100644 --- a/beesdoo_base/__openerp__.py +++ b/beesdoo_base/__openerp__.py @@ -21,6 +21,6 @@ 'security/groups.xml', 'security/ir.model.access.csv', 'views/partner.xml', - 'wizard/views/new_member_card.xml', + 'wizard/views/member_card.xml', ], } diff --git a/beesdoo_base/models/partner.py b/beesdoo_base/models/partner.py index a85abbe..baf19b1 100644 --- a/beesdoo_base/models/partner.py +++ b/beesdoo_base/models/partner.py @@ -3,8 +3,6 @@ from openerp import models, fields, api, _ from openerp.exceptions import ValidationError from openerp.addons.beesdoo_base.tools import concat_names - - class Partner(models.Model): _inherit = 'res.partner' @@ -19,6 +17,9 @@ class Partner(models.Model): parent_barcode = fields.Char(compute="_get_bar_code", string='Parent Bar Code', store=True) member_card_ids = fields.One2many('member.card', 'partner_id') + member_card_to_be_printed = fields.Boolean('Print BEES card?') + last_printed = fields.Datetime('Last printed on') + @api.onchange('first_name', 'last_name') def _on_change_name(self): self.name = concat_names(self.first_name, self.last_name) @@ -72,3 +73,5 @@ class Partner(models.Model): res = super(Partner, self)._auto_init(cr, context=context) cr.execute("UPDATE res_partner set last_name = name where last_name IS NULL") return res + + diff --git a/beesdoo_base/views/partner.xml b/beesdoo_base/views/partner.xml index c17325f..127a866 100644 --- a/beesdoo_base/views/partner.xml +++ b/beesdoo_base/views/partner.xml @@ -27,6 +27,11 @@ + + + + + @@ -64,4 +69,4 @@ 'default_company_type' : 'company', } - \ No newline at end of file + diff --git a/beesdoo_base/wizard/__init__.py b/beesdoo_base/wizard/__init__.py index e2aa460..e3dd1fd 100644 --- a/beesdoo_base/wizard/__init__.py +++ b/beesdoo_base/wizard/__init__.py @@ -1 +1,2 @@ -import new_member_card \ No newline at end of file +import member_card + diff --git a/beesdoo_base/wizard/member_card.py b/beesdoo_base/wizard/member_card.py new file mode 100644 index 0000000..47d010f --- /dev/null +++ b/beesdoo_base/wizard/member_card.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +from openerp import models, fields, api + +class NewMemberCardWizard(models.TransientModel): + """ + A transient model for the creation of a new card. + The user can only define the raison why a new card is + needed and the eater/worker that is concerned. + """ + _name = 'membercard.new.wizard' + + def _get_default_partner(self): + return self.env.context['active_id'] + + new_comment = fields.Text('Reason', required=True) + partner_id = fields.Many2one('res.partner', default=_get_default_partner) + force_barcode = fields.Char('Force Barcode', groups="beesdoo_base.group_force_barcode") + + @api.one + def create_new_card(self): + client = self.partner_id.sudo() + client._deactivate_active_cards() + client._new_card(self.new_comment, self.env.uid, barcode=self.force_barcode) + + +class RequestMemberCardPrintingWizard(models.TransientModel): + + _name = 'membercard.requestprinting.wizard' + + def _get_selected_partners(self): + return self.env.context['active_ids'] + + partner_ids = fields.Many2many('res.partner', default=_get_selected_partners) + + + @api.one + def request_printing(self): + self.partner_ids.write({'member_card_to_be_printed' : True}) + +class SetAsPrintedWizard(models.TransientModel): + + _name = 'membercard.set_as_printed.wizard' + + def _get_selected_partners(self): + return self.env.context['active_ids'] + + partner_ids = fields.Many2many('res.partner', default=_get_selected_partners) + + @api.one + def set_as_printed(self): + self.partner_ids.write({'member_card_to_be_printed' : False, + 'last_printed' : fields.Datetime.now()}) diff --git a/beesdoo_base/wizard/new_member_card.py b/beesdoo_base/wizard/new_member_card.py deleted file mode 100644 index 1a003da..0000000 --- a/beesdoo_base/wizard/new_member_card.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from openerp import models, fields, api - -class NewMemberCardWizard(models.TransientModel): - """ - A transient model for the creation of a new card. - The user can only define the raison why a new card is - needed and the eater/worker that is concerned. - """ - _name = 'membercard.new.wizard' - - def _get_default_partner(self): - return self.env.context['active_id'] - - new_comment = fields.Text('Reason', required=True) - partner_id = fields.Many2one('res.partner', default=_get_default_partner) - force_barcode = fields.Char('Force Barcode', groups="beesdoo_base.group_force_barcode") - - @api.one - def create_new_card(self): - client = self.partner_id.sudo() - client._deactivate_active_cards() - client._new_card(self.new_comment, self.env.uid, barcode=self.force_barcode) \ No newline at end of file diff --git a/beesdoo_base/wizard/views/member_card.xml b/beesdoo_base/wizard/views/member_card.xml new file mode 100644 index 0000000..b52ce87 --- /dev/null +++ b/beesdoo_base/wizard/views/member_card.xml @@ -0,0 +1,82 @@ + + + + + New MemberCard Wizard + membercard.new.wizard + +
+ + + + + + +
+
+ +
+
+ + + + Request Membercard Printing Wizard + membercard.requestprinting.wizard + +
+ + +
+
+ + +
+
+ + + + + + Set Membercard as Printed Wizard + membercard.set_as_printed.wizard + +
+ + +
+
+ + +
+
+ +
diff --git a/beesdoo_base/wizard/views/new_member_card.xml b/beesdoo_base/wizard/views/new_member_card.xml deleted file mode 100644 index b7b24ee..0000000 --- a/beesdoo_base/wizard/views/new_member_card.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - New MemberCard Wizard - membercard.new.wizard - -
- - - - - - - - - -
- -