<menuitem name="Configuration" id="base.menu_marketing_config_root" parent="event_main_menu" sequence="30"/>
<menuitem name="Types of Events" id="menu_event_type" action="action_event_type" parent="base.menu_marketing_config_root" groups="base.group_no_one"/>
--
-- <!-- Event Item Tree view-->
-- <record model="ir.ui.view" id="view_event_items_tree">
-- <field name="name">Event Items Tree</field>
-- <field name="model">event.items</field>
-- <field name="type">tree</field>
-- <field name="arch" type="xml">
-- <tree string="Event Items">
-- <field name="product_id" string="Ticket Type" />
-- <field name="uom_id"/>
-- <field name="sales_end_date"/>
-- <field name="price"/>
-- <field name="qty"/>
-- </tree>
-- </field>
-- </record>
-- <!-- Event Item Form View -->
-- <record model="ir.ui.view" id="view_event_items_form">
-- <field name="name">Event Items Form</field>
-- <field name="model">event.items</field>
-- <field name="type">form</field>
-- <field name="arch" type="xml">
-- <form string="Event Items">
-- <field name="product_id" on_change="onchange_product_id(product_id)"/>
-- <field name="price"/>
-- <field name="qty"/>
-- <field name="uom_id"/>
-- <field name="discount"/>
-- <field name="sales_end_date"/>
-- </form>
-- </field>
-- </record>
--
- <!-- Events Organisation/CONFIGURATION/EVENTS -->
+ <!-- Events Organisation/CONFIGURATION/EVENTS -->
<record model="ir.ui.view" id="view_event_form">
<field name="name">Events</field>
</group>
</page>
</notebook>
+ </form>
+ </field>
+ </record>
+
+
+ <!-- Events Organisation/CONFIGURATION/EVENTS PAGE VIEW -->
+
+ <record model="ir.ui.view" id="view_event_page">
+ <field name="name">Events</field>
+ <field name="model">event.event</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Events" layout="manual">
+ <div class="oe_form_topbar" readonly="1">
+ <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"/>
+ <div class="oe_right">
+ <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
+ </div>
+ </div>
+ <sheet string="Event Form" layout="auto">
+ <group col="2">
+ <group col="2">
+ <div class="oe_event_title">
+ <field name="name" nolabel="1" readonly="1"/>
+ </div>
+ <newline/>
+ <group colspan="4" name="venue">
+ <div class="oe_sub1"> Venue : </div> <separator orientation="vertical"/>
+ <field name="location_id" nolabel="1" readonly="1"/>
+ </group>
+ </group>
+ <group>
+ <div id = "oe_mapbox" class="oe_mapbox"> </div><newline/>
+ <table>
+ <tr>
+ <td width="70px" class="oe_td_border">
+ Where
+ </td>
+ <td width="auto">
+ <field name="address_id" widget ="geo_address" nolabel="1"/>
+ </td>
+ <td width="210px">
- <table>
++ <table align="right">
+ <tr>
+ <td class="oe_td_date_border">Start: </td><td><field name="date_begin" nolabel="1" readonly="1"/></td>
+ </tr>
+ <tr>
+ <td class="oe_td_date_border">End</td><td><field name="date_end" nolabel="1" readonly="1"/></td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ </table>
+ </group>
+ </group>
+ <separator string="Event Details" colspan="4"/>
+ <field name="note" colspan="4" nolabel="1" readonly="1"/>
</sheet>
</form>
</field>
_columns = {
'event_item_ids': fields.one2many('event.items','event_id', 'Event Items'),
}
- # def subscribe_to_event(self, cr, uid, ids, context=None):
- # res = {}
- # event_pool = self.pool.get('event.event')
- # register_pool = self.pool.get('event.registration')
- # sale_order_line_pool = self.pool.get('sale.order.line')
- # sale_order = self.pool.get('sale.order')
- # partner_pool = self.pool.get("res.partner")
- # data_obj = self.pool.get("ir.model.data")
- # prod_pricelist_obj = self.pool.get('product.pricelist')
- # user = self.pool.get("res.users").browse(cr, uid, uid, context=context)
- # partner_ids = partner_pool.search(cr, uid, [('name', '=', user.name), ('email', '=', user.user_email)])
- # if not partner_ids:
- # new_partner_id = partner_pool.create(cr, uid, {'name': user.name, 'email': user.user_email})
- # partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice']
- # partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
- # else:
- # new_partner_id = partner_ids[0]
- # partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice']
- # partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
- # for event_id in self.browse(cr, uid, ids, context=context):
- # sale_order_lines = []
- # price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0]
- # new_sale_id = sale_order.create(cr, uid, {
- # 'date_order': event_id.date_begin,
- # 'pricelist_id': price_list,
- # 'partner_id': new_partner_id,
- # 'partner_invoice_id': partner_invoice_id,
- # 'partner_shipping_id': partner_shipping_id
- # })
- # if event_id.event_item_ids:
- # for items in event_id.event_item_ids:
- # product = items.product_id.id
- # sale_order_line = sale_order_line_pool.create(cr, uid, {
- # 'order_id': new_sale_id,
- # 'name': items.product_id.name,
- # 'product_uom_qty': items.qty,
- # 'product_id': items.product_id.id,
- # 'price_unit': items.price,
- # 'date_planned': items.sales_end_date,
- # }, context=context)
- # view_id = data_obj._get_id(cr, uid, 'sale', 'view_order_form')
- # if view_id:
- # res_id = data_obj.browse(cr, uid, view_id, context=context).res_id
- # res = {
- # 'name': _('Quotation'),
- # 'view_type': 'form',
- # 'view_mode': 'form',
- # 'res_model': 'sale.order',
- # 'res_id': new_sale_id,
- # 'views':[(res_id,'form'), (False, 'tree')],
- # 'type': 'ir.actions.act_window',
- # 'nodestroy': True,
- # 'target': 'current',
- # }
- # return res
++
+ def order_now(self, cr, uid, ids, context=None):
+ res = {}
- event_pool = self.pool.get('event.event')
+ register_pool = self.pool.get('event.registration')
+ sale_order_line_pool = self.pool.get('sale.order.line')
+ sale_order = self.pool.get('sale.order')
+ partner_pool = self.pool.get("res.partner")
+ data_obj = self.pool.get("ir.model.data")
+ prod_pricelist_obj = self.pool.get('product.pricelist')
+ user = self.pool.get("res.users").browse(cr, uid, uid, context=context)
+ partner_ids = partner_pool.search(cr, uid, [('name', '=', user.name), ('email', '=', user.user_email)])
+ if not partner_ids:
++ # partner not found create new partner.....
+ new_partner_id = partner_pool.create(cr, uid, {'name': user.name, 'email': user.user_email})
+ partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice']
+ partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
+ else:
+ new_partner_id = partner_ids[0]
+ partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice']
- partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
++ partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
+ for event_id in self.browse(cr, uid, ids, context=context):
- sale_order_lines = []
+ price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0]
+ new_sale_id = sale_order.create(cr, uid, {
+ 'date_order': event_id.date_begin,
+ 'pricelist_id': price_list,
+ 'partner_id': new_partner_id,
+ 'partner_invoice_id': partner_invoice_id,
+ 'partner_shipping_id': partner_shipping_id
+ })
+ if event_id.event_item_ids:
+ for items in event_id.event_item_ids:
+ product = items.product_id.id
+ sale_order_line = sale_order_line_pool.create(cr, uid, {
- 'order_id': new_sale_id,
++ 'order_id': new_sale_id,
+ 'name': items.product_id.name,
+ 'product_uom_qty': items.qty,
+ 'product_id': items.product_id.id,
+ 'price_unit': items.price,
+ 'date_planned': items.sales_end_date,
+ }, context=context)
+ view_id = data_obj._get_id(cr, uid, 'sale', 'view_order_form')
+ if view_id:
+ res_id = data_obj.browse(cr, uid, view_id, context=context).res_id
+ res = {
+ 'name': _('Quotation'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'sale.order',
+ 'res_id': new_sale_id,
+ '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):
+ res = {}
+ data_obj = self.pool.get("ir.model.data")
+ view_id = data_obj._get_id(cr, uid, 'event', 'view_event_page')
+ if view_id:
+ res_id = data_obj.browse(cr, uid, view_id, context=context).res_id
+ res = {
+ 'name': _('Event Page'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'views':[(res_id,'form'), (False, 'tree')],
+ 'res_model': 'event.event',
+ 'res_id': ids[0],
+ 'type': 'ir.actions.act_window',
+ 'nodestroy': True,
+ 'target': 'current',
+ }
+ return res
class event_items(osv.osv):
_name = "event.items"
_columns = {
'product_id': fields.many2one('product.product', 'Product', required=True),
'price': fields.integer('Price'),
- 'qty': fields.integer('QTY'),
- # 'qty': fields.selection(_max_register, 'QTY'),
- 'max_qty': fields.integer('Max Qty'),
- 'qty': fields.integer('QTY', type = 'integer'),
++ 'max_qty': fields.integer('Max.Quantity available'),
++ 'qty': fields.integer('QTY', type ='integer'),
'uom_id': fields.many2one('product.uom', 'UoM'),
'discount': fields.integer('Discount'),
'event_id': fields.many2one('event.event', 'Event'),
</field>
</record>
+ <record model="ir.ui.view" id="view_event_page_inherit">
+ <field name="name">Events Inherit</field>
+ <field name="model">event.event</field>
+ <field name="type">form</field>
+ <field name="inherit_id" ref="event.view_event_page"/>
+ <field name="arch" type="xml">
+ <xpath expr="//group[@name='venue']" position="after">
+ <field name="event_item_ids" nolabel="1">
+ <tree editable="top" string="Event Items">
- <field name="product_id" readonly="1" string="Ticket Type" domain="[('event_ok','=',True)]" on_change="onchange_product_id(product_id)"/>
++ <field name="product_id" readonly="1" />
+ <field name="sales_end_date" readonly="1"/>
+ <field name="price" readonly="1"/>
+ <field name="max_qty" readonly="1" groups="event.group_event_manager"/>
- <field name="qty"/>
++ <field name="qty" attrs="{'readonly':[('product_id','=',False)]}" groups="event.group_event_user"/>
+ </tree>
+ </field>
+ <newline/>
+ <div class="oe_right">
+ <button name="order_now" string="Order Now" type="object" icon="gtk-apply"/>
+ </div>
+ </xpath>
+ </field>
+ </record>
+
+
<record model="ir.ui.view" id="view_event_form_inherit">
<field name="name">Events Inherit</field>
<field name="model">event.event</field>
<field name="type">form</field>
<field name="inherit_id" ref="event.view_event_form"/>
<field name="arch" type="xml">
- <xpath expr="//notebook/page[@string='Extra Info']" position="after">
- <page string="Event Items">
- <field name="event_item_ids" nolabel="1"/>
- </page>
+ <xpath expr="//page[@string='Extra Info']" position="after">
+ <page string="Event Item">
+ <field name="event_item_ids" nolabel="1">
+ <tree editable="top" string="Event Items">
+ <field name="product_id" string="Ticket Type" domain="[('event_ok','=',True)]" on_change="onchange_product_id(product_id)"/>
+ <field name="sales_end_date" />
+ <field name="price"/>
+ <field name="max_qty" groups="event.group_event_manager"/>
- <field name="qty"/>
++ <field name="qty" attrs="{'readonly':[('product_id','=',False)]}" groups="event.group_event_user"/>
+ </tree>
+ </field>
+ <newline/>
+ <div class="oe_right">
+ <button name="order_now" string="Order Now" type="object" icon="gtk-apply"/>
+ </div>
+ </page>
</xpath>
</field>
</record>