[ADD]: Event page

bzr revid: atp@tinyerp.com-20120517103941-6ngwqfkiow8f4ugq
This commit is contained in:
Atul Patel (OpenERP) 2012-05-17 16:09:41 +05:30
parent 08cd412d78
commit 96fde61acf
2 changed files with 62 additions and 43 deletions

View File

@ -218,7 +218,8 @@ class event_event(osv.osv):
'note': fields.text('Description', readonly=False, states={'done': [('readonly', True)]}),
'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}),
'is_subscribed' : fields.function(_subscribe_fnc, type="boolean", string='Subscribed'),
'location_id': fields.many2one('res.partner','Organization Address', readonly=False, states={'done': [('readonly', True)]}),
'available_qty': fields.integer('Availabel Quantity'),
}
_defaults = {
@ -226,7 +227,41 @@ class event_event(osv.osv):
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'event.event', context=c),
'user_id': lambda obj, cr, uid, context: uid,
}
def order_now(self, cr, uid, ids, context=None):
register_pool = self.pool.get('event.registration')
user_pool = self.pool.get('res.users')
data_obj = self.pool.get('ir.model.data')
user = user_pool.browse(cr, uid, uid, context=context)
for event in self.browse(cr, uid, ids, context):
self.check_registration_limits_before(cr, uid, ids, event.available_qty, context=context)
curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , event.id)])
#the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe
print "event.curre_reg_ids",event.available_qty
if not curr_reg_ids and event.available_qty > 0:
print "cccccccccccc",event.available_qty
curr_reg_ids = [register_pool.create(cr, 1, {'event_id': event.id ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': event.available_qty})]
elif event.available_qty > 0:
print "mmmmmmm",event.available_qty
register_pool.write(cr, uid, curr_reg_ids, {'nb_register': event.available_qty}, context=context)
if event.available_qty > 0:
register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context)
view_id = data_obj._get_id(cr, uid, 'event', 'view_event_registration_form')
if view_id:
res_id = data_obj.browse(cr, uid, view_id, context=context).res_id
res = {
'name': _('Registration'),
'view_type': 'form',
'view_mode': 'form',
'res_model': 'event.registration',
'res_id': curr_reg_ids[0],
'views':[(res_id,'form'), (False, 'tree')],
'type': 'ir.actions.act_window',
'nodestroy': True,
'target': 'current',
}
return res
def subscribe_to_event(self, cr, uid, ids, context=None):
register_pool = self.pool.get('event.registration')
user_pool = self.pool.get('res.users')

View File

@ -152,25 +152,33 @@
</div>
<sheet layout="auto">
<group colspan="4" col="2">
<field name="name" class="oe_form_title" width="60%%" nolabel="1"/>
<field name="name" class="oe_form_title" width="80%%" nolabel="1"/>
</group>
<group colspan="4" col="5" class="oe_form_group_label_border" style="margin-top: 20px;">
<group colspan="2" col="2" class="oe_form_group_label_border">
<field name="address_id" widget ="geo_address" string="Venue"/>
</group>
<group colspan="2" col="2" class="oe-listview-content">
<label string="Ticket Description"/>
<label string="Quantity"/>
<field nolabel="1" name="full_name" />
<field nolabel="1" name="register_max" />
</group>
<newline/>
<group colspan="2">
<button name="order_now" string="Order Now" type="object" icon="gtk-apply" align="Right"/>
</group>
<!-- <notebook colspan="4">
<newline/>
<group colspan="2" col="2" class="oe-listview-content">
<label string="Ticket Description"/>
<label string="Quantity"/>
<field nolabel="1" name="full_name" />
<field nolabel="1" name="available_qty" />
</group>
<newline/>
<group colspan="2" col="2">
<button name="order_now" string="Order Now" type="object" icon="gtk-apply" />
</group>
<notebook colspan="4">
<page string="Event">
<separator string="Description" colspan="4"/>
<field name="note" colspan="4" nolabel="1"/>
<group colspan="2" col="2" class="oe_form_group_label_border">
<field name="register_min"/>
<field name="register_max"/>
</group>
<group colspan="2" col="2" class="oe_form_group_label_border">
<field name="register_current"/>
<field name="register_prospect"/>
<field name="register_attended"/>
</group>
<field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user">
<tree string="Registration" editable="top">
<field name="name" />
@ -204,39 +212,15 @@
</group>
</form>
</field>
<field name="state" select="1" widget="statusbar" statusbar_visible="draft,confirm,done"/>
<group col="4" colspan="2">
<button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object" icon="gtk-cancel"/>
<button string="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
<button string="Event Done" name="button_done" states="confirm" type="object" icon="gtk-jump-to"/>
<button string="Set To Draft" name="button_draft" states="cancel,done" type="object" icon="gtk-convert"/>
</group>
</page>
<page string="Speakers">
<field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
<field name="speaker_confirmed"/>
<separator string="Other Speakers" colspan="4"/>
<field name="speaker_ids" domain="[('speaker','=',True)]" context="{'default_speaker':1}" colspan="4" nolabel="1"/>
</page>
<page string="Extra Info">
<group col="2" colspan="2">
<separator string="Registrations" colspan="2"/>
<field name="register_min"/>
<field name="register_max"/>
<field name="register_prospect"/>
<field name="register_current"/>
<field name="register_attended"/>
<field name="location_id"/>
</group>
<group col="2" colspan="2">
<separator string="Emails" colspan="2"/>
<field name="reply_to"/>
<field name="email_registration_id" domain="[('model_id.model','=','event.registration')]"/>
<field name="email_confirmation_id" domain="[('model_id.model','=','event.registration')]"/>
</group>
</page>
</notebook> -->
</notebook>
<separator colspan="4" string="Details"/>
<field name="note" nolabel="1" colspan="4"/>
</sheet>