From a6c3e9256d7255a68d29510cb8df4e85bda99820 Mon Sep 17 00:00:00 2001 From: EliseDup Date: Tue, 8 Mar 2016 15:11:27 +0100 Subject: [PATCH 1/5] S003 : add member card and member card wizard --- beesdoo_base/models/__init__.py | 2 +- beesdoo_base/models/membercard.py | 46 +++++++++++++++++++++++++++++++ beesdoo_base/models/partner.py | 16 ----------- 3 files changed, 47 insertions(+), 17 deletions(-) create mode 100644 beesdoo_base/models/membercard.py diff --git a/beesdoo_base/models/__init__.py b/beesdoo_base/models/__init__.py index 751e194..f95b336 100644 --- a/beesdoo_base/models/__init__.py +++ b/beesdoo_base/models/__init__.py @@ -1 +1 @@ -import partner \ No newline at end of file +import partner, membercard \ No newline at end of file diff --git a/beesdoo_base/models/membercard.py b/beesdoo_base/models/membercard.py new file mode 100644 index 0000000..e5c0217 --- /dev/null +++ b/beesdoo_base/models/membercard.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +from openerp import models, fields, api +from random import randint + +class MemberCard(models.Model): + + def _get_current_user(self): + return self.env.uid + + def _get_current_client(self): + # TODO : this does not work + return self.env['res.partner'].search([('id', '=',self.env.context['active_id'])]) + + def _compute_bar_code(self): + rule = self.env['barcode.rule'].search([('name', '=', 'Customer Barcodes')])[0] + nomenclature = self.env['barcode.nomenclature'] + size = 13-len(rule.pattern) + ean = rule.pattern + str(randint(10**(size-1), 10**size-1)) + code = ean[0:12] + str(nomenclature.ean_checksum(ean)) + nomenclature.check_encoding(code,'ean13') + return code + + _name = 'member.card' + _order = 'activation_date desc' + + valid = fields.Boolean(default=True, string="Active") + barcode = fields.Char('Barcode', oldname='ean13', default=_compute_bar_code) + partner_id = fields.Many2one('res.partner') #, default=_get_current_client) + responsible_id = fields.Many2one('res.users', default=_get_current_user) + activation_date = fields.Date(default=fields.Date.today, readonly=True) + end_date = fields.Date(readonly=True) + comment = fields.Char("Raison", required=True) + +# 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. +class BeesMemberCardWizard(models.TransientModel): + _name = 'beesmembercard.wizard' + + new_comment = fields.Char('Raison', required=True) + + @api.multi + def create_new_card(self): + client = self.env['res.partner'].search([('id', '=',self.env.context['active_id'])]) + client._deactivate_active_cards() + client._new_card(self.new_comment) + diff --git a/beesdoo_base/models/partner.py b/beesdoo_base/models/partner.py index 79393fd..0ab56e2 100644 --- a/beesdoo_base/models/partner.py +++ b/beesdoo_base/models/partner.py @@ -49,19 +49,3 @@ class Partner(models.Model): if command[0] == 2: command[0] = 3 return super(Partner, self).write(values) - -class MemberCard(models.Model): - - def _get_current_user(self): - return self.env.user - - _name = 'member.card' - _order = 'activation_date desc' - - active = fields.Boolean(default=True) - barcode = fields.Char('Barcode', oldname='ean13') - partner_id = fields.Many2one('res.partner') - responsible_id = fields.Many2one('res.users', default=_get_current_user) - activation_date = fields.Date(default=fields.Date.today, readonly=True) - end_date = fields.Date() - comment = fields.Char("Reason") From 54106a4c460159f14468329804fe80daf46322f6 Mon Sep 17 00:00:00 2001 From: EliseDup Date: Tue, 8 Mar 2016 15:15:22 +0100 Subject: [PATCH 2/5] S003 : create a wizard to add a new card --- beesdoo_base/models/membercard.py | 4 +- beesdoo_base/views/partner.xml | 108 +++++++++++++++++++----------- 2 files changed, 71 insertions(+), 41 deletions(-) diff --git a/beesdoo_base/models/membercard.py b/beesdoo_base/models/membercard.py index e5c0217..1415b46 100644 --- a/beesdoo_base/models/membercard.py +++ b/beesdoo_base/models/membercard.py @@ -33,8 +33,8 @@ class MemberCard(models.Model): # 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. -class BeesMemberCardWizard(models.TransientModel): - _name = 'beesmembercard.wizard' +class MemberCardWizard(models.TransientModel): + _name = 'membercard.wizard' new_comment = fields.Char('Raison', required=True) diff --git a/beesdoo_base/views/partner.xml b/beesdoo_base/views/partner.xml index ff211a2..60d8b98 100644 --- a/beesdoo_base/views/partner.xml +++ b/beesdoo_base/views/partner.xml @@ -1,43 +1,73 @@ - - beesdoo.partner.form.view - res.partner - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {'invisible' : [('eater', '!=', 'worker_eater')]} - - - - - - + + New MemberCard Wizard + membercard.wizard + +
+ + + +
+
+
+
+
+ + + + + beesdoo.partner.form.view + res.partner + + + + + + + + + + + + + + + + + + + + + + + + + + +