[imp] add the event page view for user
bzr revid: nco@tinyerp.com-20120504113136-ws9nxquin9sk95vu
This commit is contained in:
@@ -55,6 +55,7 @@ Note that:
|
||||
'test': ['test/process/event_draft2done.yml'],
|
||||
'css': ['static/src/css/*.css'],
|
||||
'js': ['static/src/js/event.js'],
|
||||
'qweb': ['static/src/xml/event_address.xml'],
|
||||
'installable': True,
|
||||
'application': True,
|
||||
'auto_install': False,
|
||||
|
||||
+80
-51
@@ -78,65 +78,27 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Events Organisation/CONFIGURATION/EVENTS -->
|
||||
<!-- Events Organisation/CONFIGURATION/EVENTS -->
|
||||
|
||||
<record model="ir.ui.view" id="view_event_form">
|
||||
<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">
|
||||
<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"/>
|
||||
</div>
|
||||
<newline/>
|
||||
<group colspan="4" name="venue">
|
||||
<div class="oe_sub1"> Venue : </div> <separator orientation="vertical"/>
|
||||
<field name="location_id" nolabel="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="150px">
|
||||
<field name="address_id" widget = "geo_address" nolabel="1"/>
|
||||
</td>
|
||||
<td width="auto">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="oe_td_date_border">Start: </td><td><field name="date_begin" nolabel="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="oe_td_date_border">End</td><td><field name="date_end" nolabel="1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</group>
|
||||
</group>
|
||||
<form string="Events">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name"/>
|
||||
<field name="date_begin"/>
|
||||
<field name="date_end"/>
|
||||
<field name="type" on_change="onchange_event_type(type,context)"/>
|
||||
<field name="user_id"/>
|
||||
<field name="address_id" />
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Event">
|
||||
<separator string="Description" colspan="4"/>
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
<field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager">
|
||||
<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" />
|
||||
<field name="email" />
|
||||
@@ -169,7 +131,13 @@
|
||||
</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)]"/>
|
||||
@@ -177,7 +145,7 @@
|
||||
<separator string="Other Speakers" colspan="4"/>
|
||||
<field name="speaker_ids" domain="[('speaker','=',True)]" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Extra Info" groups="event.group_event_manager">
|
||||
<page string="Extra Info">
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Registrations" colspan="2"/>
|
||||
<field name="register_min"/>
|
||||
@@ -194,6 +162,67 @@
|
||||
</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>
|
||||
<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>
|
||||
|
||||
@@ -144,4 +144,15 @@ div.oe_fold_column{
|
||||
.oe_td_date_border
|
||||
{
|
||||
border-right:1px solid black;
|
||||
}
|
||||
.oe_pager_group11 {
|
||||
float: left;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
display: inline-block;
|
||||
border: 1px solid #ababab;
|
||||
cursor: pointer;
|
||||
-moz-border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
@@ -14,8 +14,11 @@ openerp.event = function(instance){
|
||||
set_value:function(value){
|
||||
var self = this;
|
||||
this.get_address(value).done(function(value){
|
||||
console.log("value",value,self);
|
||||
self.__parentedParent.$element.find(".oe_td_border").after(instance.web.qweb.render("address",{'record': value}));
|
||||
var address = _.str.sprintf(' %(street)s, %(city)s, %(country_id[1])s', value);
|
||||
return self.list_addresses(address);
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
@@ -49,4 +52,7 @@ openerp.event = function(instance){
|
||||
}
|
||||
|
||||
}));
|
||||
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<template>
|
||||
<td t-name="address">
|
||||
<t t-esc="record.street"/> <br/>
|
||||
<t t-esc="record.city"/> <br/>
|
||||
<t t-esc="record.country_id[1]"/>
|
||||
</td>
|
||||
</template>
|
||||
@@ -99,75 +99,93 @@ class event_event(osv.osv):
|
||||
_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:
|
||||
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 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'),
|
||||
'uom_id': fields.many2one('product.uom', 'UoM'),
|
||||
'discount': fields.integer('Discount'),
|
||||
'event_id': fields.many2one('event.event', 'Event'),
|
||||
'sales_end_date': fields.date('Sales End')
|
||||
}
|
||||
|
||||
|
||||
def onchange_product_id(self, cr, uid, ids, product, context=None):
|
||||
product_obj = self.pool.get('product.product')
|
||||
data = {}
|
||||
|
||||
@@ -30,49 +30,68 @@
|
||||
</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="sales_end_date" readonly="1"/>
|
||||
<field name="price" readonly="1"/>
|
||||
<field name="max_qty" readonly="1" groups="event.group_event_manager"/>
|
||||
<field name="qty"/>
|
||||
</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"/>
|
||||
</tree>
|
||||
</field>
|
||||
<newline/>
|
||||
<div class="oe_right">
|
||||
<button name="order_now" string="Order Now" type="object" icon="gtk-apply"/>
|
||||
</div>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<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 editable="top" string="Event Items">
|
||||
<field name="product_id" domain="[('event_ok','=',True)]" on_change="onchange_product_id(product_id)"/>
|
||||
<field name="price"/>
|
||||
<field name="uom_id" invisible="1"/>
|
||||
<field name="qty"/>
|
||||
<field name="discount"/>
|
||||
<field name="sales_end_date"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_event_kanban_inherit" model="ir.ui.view">
|
||||
<field name="name">event.inherit.kanban</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="type">kanban</field>
|
||||
<field name="inherit_id" ref="event.view_event_kanban"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div/t/t/input[@name='subscribe']" position="replace">
|
||||
<input type="hidden"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<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" domain="[('event_ok','=',True)]" on_change="onchange_product_id(product_id)"/>
|
||||
<field name="price"/>
|
||||
<field name="qty"/>
|
||||
<field name="discount"/>
|
||||
<field name="sales_end_date"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
Reference in New Issue
Block a user