1 # -*- coding: utf-8 -*-
6 class CreateMember(osv
.osv_memory
):
7 _name
= 'bikecoop.create.member.wizard'
8 _description
= 'Wizard to create a new bikecoop member or update the membership'
11 'member_ident': fields
.char('Member identifier', size
=64, help='Unique identifier for this member'),
12 'membership_state': fields
.char('Membership state', size
=64),
13 'membership_start': fields
.date('Membership start date'),
14 'membership_stop': fields
.date('Membership end date'),
15 'partner_id': fields
.many2one('res.partner', 'Main partner', help='The partner to invoice in'),
16 'street': fields
.char('Street', size
=128),
17 'street2': fields
.char('Street ...', size
=128),
18 'zip': fields
.char('ZIP code', size
=24),
19 'city': fields
.char('City', size
=128),
20 'country_id': fields
.many2one('res.country', 'Country'),
21 'birthdate': fields
.date('Birthdate'),
22 'gender_id': fields
.many2one('bikecoop.partner.theme', 'Gender', domain
=[('domain', '=', 'gender')]),
23 'occupation_id': fields
.many2one('bikecoop.partner.theme', 'Main occupation', domain
=[('domain', '=', 'occupation')]),
24 'nationality_id': fields
.many2one('res.country', 'Nationality'),
25 'volunteer_com': fields
.boolean('Communication workgroup', help='Check this box if you want to be volunteer for communication subjects'),
26 'volunteer_anim': fields
.boolean('Animation workgroup', help='Check this box if you want to be volunteer for animation subjects'),
27 'volunteer_admin': fields
.boolean('Adminstration workgroup', help='Check this box if you want to be volunteer for administration subjects'),
28 'volunteer_workshop': fields
.boolean('Workshop workgroup', help='Check this box if you want to be volunteer for bike workshop subjects'),
29 'associate_members': fields
.one2many('res.partner', 'associate_member', 'Associate members', help='Partners to associate to main partner for this membership.'),
30 'comment': fields
.text('Others volunteer activities', help='If you want being volunteer in other workshop activities that are not mentionned behind.'),
33 def onchange_partner_id(self
, cr
, uid
, ids
, partner_id
, context
=None):
35 Found already associates members of the partner who is selected in the
36 wizard and load default address datas
38 - Update volunters activities
42 'member_ident': False,
43 'membership_state': False,
44 'membership_start': False,
45 'membership_stop': False,
53 'occupation_id': False,
54 'nationality_id': False,
55 'volunteer_com': False,
57 'associate_members': False,
61 part_obj
= self
.pool
.get('res.partner')
62 address_obj
= self
.pool
.get('res.partner.address')
64 partner_fields_name
= [
76 part
= part_obj
.read(cr
, uid
, partner_id
, partner_fields_name
, context
=context
)
78 address_data
= part_obj
.address_get(cr
, uid
, [partner_id
], ['default'])
79 address_fields_name
= [
86 if address_data
['default']:
87 address
= address_obj
.read(cr
, uid
, address_data
['default'], address_fields_name
, context
=context
)
89 associate_members_ids
= part_obj
.browse(cr
, uid
, partner_id
, context
=context
).associate_members
90 associate_members
= []
91 for i
in associate_members_ids
:
92 associate_members
.append(i
.id)
95 'member_ident': part
['member_ident'],
96 'membership_state': part
['membership_state'],
97 'membership_start': part
['membership_start'],
98 'membership_stop': part
['membership_stop'],
99 'street': address
['street'],
100 'street2': address
['street2'],
101 'zip': address
['zip'],
102 'city': address
['city'],
103 'country_id': address
['country_id'],
104 'birthdate': part
['date'],
105 'gender_id': part
['gender_id'],
106 'occupation_id': part
['occupation_id'],
107 'nationality_id': part
['nationality_id'],
108 'comment': part
['comment'],
109 'associate_members': associate_members
,
117 def confirm_members(self
, cr
, uid
, ids
, context
=None):
119 This function should create or update partner informations into the database.
122 return {'type': 'ir.actions.act_window_close'}
126 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: