From: Ludovic CHEVALIER Date: Thu, 15 Nov 2012 14:55:12 +0000 (+0100) Subject: [membership] transfert du wizard depuis bikecoop X-Git-Url: http://git.cyclocoop.org/?p=burette%2Fbikecoop_l10n_fr.git;a=commitdiff_plain;h=55dba608306d71e432857185b6dfeecc93505db2 [membership] transfert du wizard depuis bikecoop --- diff --git a/__init__.py b/__init__.py index bd51724..6081a99 100644 --- a/__init__.py +++ b/__init__.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import bikecoop_l10n_fr +import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/__openerp__.py b/__openerp__.py index 5fd8edf..796422c 100644 --- a/__openerp__.py +++ b/__openerp__.py @@ -16,11 +16,12 @@ This module is to configure add french spepcifitities to modules related to a bi """, 'author': 'L\'Heureux Cyclage', 'website': 'http://www.heureux-cyclage.org', - 'depends': ['bikecoop','l10n_fr'], + 'depends': ['bikecoop','l10n_fr', 'remembership'], 'update_xml': [ 'data/bikecoop_l10n_fr.xml', 'data/plan_comptable_general.xml', 'view/bikecoop.xml', + 'wizard/create_member_view.xml', 'demo/res_users.xml', 'demo/membership.xml', ], diff --git a/wizard/__init__.py b/wizard/__init__.py new file mode 100644 index 0000000..2a69bb5 --- /dev/null +++ b/wizard/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- + +import create_member + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/wizard/create_member.py b/wizard/create_member.py new file mode 100644 index 0000000..2ffc749 --- /dev/null +++ b/wizard/create_member.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- + +from osv import osv +from osv import fields + +class CreateMember(osv.osv_memory): + _name = 'bikecoop.create.member.wizard' + _description = 'Wizard to create a new bikecoop member or update the membership' + + _columns = { + 'member_ident': fields.char('Member identifier', size=64, help='Unique identifier for this member'), + 'membership_state': fields.char('Membership state', size=64), + 'membership_start': fields.date('Membership start date'), + 'membership_stop': fields.date('Membership end date'), + 'partner_id': fields.many2one('res.partner', 'Main partner', help='The partner to invoice in'), + 'street': fields.char('Street', size=128), + 'street2': fields.char('Street ...', size=128), + 'zip': fields.char('ZIP code', size=24), + 'city': fields.char('City', size=128), + 'country_id': fields.many2one('res.country', 'Country'), + 'birthdate': fields.date('Birthdate'), + 'gender_id': fields.many2one('bikecoop.partner.theme', 'Gender', domain=[('domain', '=', 'gender')]), + 'occupation_id': fields.many2one('bikecoop.partner.theme', 'Main occupation', domain=[('domain', '=', 'occupation')]), + 'nationality_id': fields.many2one('res.country', 'Nationality'), + 'volunteer_com': fields.boolean('Communication workgroup', help='Check this box if you want to be volunteer for communication subjects'), + 'volunteer_anim': fields.boolean('Animation workgroup', help='Check this box if you want to be volunteer for animation subjects'), + 'volunteer_admin': fields.boolean('Adminstration workgroup', help='Check this box if you want to be volunteer for administration subjects'), + 'volunteer_workshop': fields.boolean('Workshop workgroup', help='Check this box if you want to be volunteer for bike workshop subjects'), + 'associate_members': fields.one2many('res.partner', 'associate_member', 'Associate members', help='Partners to associate to main partner for this membership.'), + 'comment': fields.text('Others volunteer activities', help='If you want being volunteer in other workshop activities that are not mentionned behind.'), + } + + def onchange_partner_id(self, cr, uid, ids, partner_id, context=None): + """ + Found already associates members of the partner who is selected in the + wizard and load default address datas + #TODO + - Update volunters activities + """ + if not partner_id: + res = { + 'member_ident': False, + 'membership_state': False, + 'membership_start': False, + 'membership_stop': False, + 'street': False, + 'street2': False, + 'zip': False, + 'city': False, + 'country_id': False, + 'birthdate': False, + 'gender_id': False, + 'occupation_id': False, + 'nationality_id': False, + 'volunteer_com': False, + 'comment': False, + 'associate_members': False, + } + return {'value': res} + + part_obj = self.pool.get('res.partner') + address_obj = self.pool.get('res.partner.address') + + partner_fields_name = [ + 'member_ident', + 'membership_state', + 'membership_start', + 'membership_stop', + 'date', + 'gender_id', + 'occupation_id', + 'nationality_id', + 'volunteer_ids', + 'comment', + ] + part = part_obj.read(cr, uid, partner_id, partner_fields_name, context=context) + + address_data = part_obj.address_get(cr, uid, [partner_id], ['default']) + address_fields_name = [ + 'street', + 'street2', + 'zip', + 'city', + 'country_id' + ] + if address_data['default']: + address = address_obj.read(cr, uid, address_data['default'], address_fields_name, context=context) + + associate_members_ids = part_obj.browse(cr, uid, partner_id, context=context).associate_members + associate_members = [] + for i in associate_members_ids: + associate_members.append(i.id) + + res = { + 'member_ident': part['member_ident'], + 'membership_state': part['membership_state'], + 'membership_start': part['membership_start'], + 'membership_stop': part['membership_stop'], + 'street': address['street'], + 'street2': address['street2'], + 'zip': address['zip'], + 'city': address['city'], + 'country_id': address['country_id'], + 'birthdate': part['date'], + 'gender_id': part['gender_id'], + 'occupation_id': part['occupation_id'], + 'nationality_id': part['nationality_id'], + 'comment': part['comment'], + 'associate_members': associate_members, + } + + return { + 'value' : res + } + + + def confirm_members(self, cr, uid, ids, context=None): + """ + This function should create or update partner informations into the database. + """ + + return {'type': 'ir.actions.act_window_close'} + +CreateMember() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/wizard/create_member_view.xml b/wizard/create_member_view.xml new file mode 100644 index 0000000..d6e474e --- /dev/null +++ b/wizard/create_member_view.xml @@ -0,0 +1,72 @@ + + + + + bikecoop.create.member.wizard.form + bikecoop.create.member.wizard + form + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +