[MERGE]: Merged lp:~openerp-dev/openobject-addons/trunk-event_improvements-atp-event_...
authorAtul Patel (OpenERP) <atp@tinyerp.com>
Fri, 4 May 2012 13:36:32 +0000 (19:06 +0530)
committerAtul Patel (OpenERP) <atp@tinyerp.com>
Fri, 4 May 2012 13:36:32 +0000 (19:06 +0530)
bzr revid: atp@tinyerp.com-20120504133632-qes40ecp3t17zcnv

1  2 
addons/event/event_view.xml
addons/event/static/src/css/event.css
addons/event/static/src/js/event.js
addons/event_sale/event_sale.py
addons/event_sale/event_sale_view.xml

          <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>
@@@ -128,7 -128,7 +128,7 @@@ div.oe_fold_column
  }
  .oe_mapbox
  { 
--    width:380px;
++    width:auto;
      height:200px;
      margin-left:auto; 
      margin-right:auto; 
        padding: 2px;
        border-right: 1px solid black;
        text-align: center;
++      
  }
  .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;
 -}
Simple merge
@@@ -99,69 -99,87 +99,88 @@@ 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:
++            # 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>