Kuldeep Joshi(OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-event-kjo into lp:openobject-addons.
Requested reviews:
OpenERP R&D Team (openerp-dev)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-event-kjo/+merge/112356
Improve view of event and registration form
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-event-kjo/+merge/112356
Your team OpenERP R&D Team is requested to review the proposed merge of
lp:~openerp-dev/openobject-addons/trunk-event-kjo into lp:openobject-addons.
=== modified file 'event/event.py'
--- event/event.py 2012-06-01 11:36:25 +0000
+++ event/event.py 2012-06-27 13:32:22 +0000
@@ -192,8 +192,8 @@
'name': fields.char('Name', size=64, required=True, translate=True, readonly=False, states={'done': [('readonly', True)]}),
'user_id': fields.many2one('res.users', 'Responsible User', readonly=False, states={'done': [('readonly', True)]}),
'type': fields.many2one('event.type', 'Type of Event', readonly=False, states={'done': [('readonly', True)]}),
- 'register_max': fields.integer('Maximum Registrations', help="You can for each event define a maximum registration level. If you have too much registrations you are not able to confirm your event. (put 0 to ignore this rule )", readonly=True, states={'draft': [('readonly', False)]}),
- 'register_min': fields.integer('Minimum Registrations', help="You can for each event define a minimum registration level. If you do not enough registrations you are not able to confirm your event. (put 0 to ignore this rule )", readonly=True, states={'draft': [('readonly', False)]}),
+ 'register_max': fields.integer('Maximum Registration', help="You can for each event define a maximum registration level. If you have too much registrations you are not able to confirm your event. (put 0 to ignore this rule )", readonly=True, states={'draft': [('readonly', False)]}),
+ 'register_min': fields.integer('Minimum Registration', help="You can for each event define a minimum registration level. If you do not enough registrations you are not able to confirm your event. (put 0 to ignore this rule )", readonly=True, states={'draft': [('readonly', False)]}),
'register_current': fields.function(_get_register, string='Confirmed Registrations', multi='register_numbers'),
'register_avail': fields.function(_get_register, string='Available Registrations', multi='register_numbers',type='integer'),
'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', multi='register_numbers'),
@@ -214,6 +214,9 @@
'reply_to': fields.char('Reply-To Email', size=64, readonly=False, states={'done': [('readonly', True)]}, help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."),
'main_speaker_id': fields.many2one('res.partner','Main Speaker', readonly=False, states={'done': [('readonly', True)]}, help="Speaker who will be giving speech at the event."),
'address_id': fields.many2one('res.partner','Location Address', readonly=False, states={'done': [('readonly', True)]}),
+ 'street': fields.related('address_id','street',type='char',string='Street'),
+ 'zip': fields.related('address_id','zip',type='char',string='zip'),
+ 'city': fields.related('address_id','city',type='char',string='city'),
'speaker_confirmed': fields.boolean('Speaker Confirmed', readonly=False, states={'done': [('readonly', True)]}),
'country_id': fields.related('address_id', 'country_id',
type='many2one', relation='res.country', string='Country', readonly=False, states={'done': [('readonly', True)]}),
@@ -323,7 +326,7 @@
'log_ids': fields.one2many('mail.message', 'res_id', 'Logs', domain=[('email_from', '=', False),('model','=',_name)]),
'event_end_date': fields.related('event_id','date_end', type='datetime', string="Event End Date", readonly=True),
'event_begin_date': fields.related('event_id', 'date_begin', type='datetime', string="Event Start Date", readonly=True),
- 'user_id': fields.many2one('res.users', 'Attendee', states={'done': [('readonly', True)]}),
+ 'user_id': fields.many2one('res.users', 'User', states={'done': [('readonly', True)]}),
'company_id': fields.related('event_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True, states={'draft':[('readonly',False)]}),
'state': fields.selection([('draft', 'Unconfirmed'),
('cancel', 'Cancelled'),
=== modified file 'event/event_view.xml'
--- event/event_view.xml 2012-06-22 10:29:59 +0000
+++ event/event_view.xml 2012-06-27 13:32:22 +0000
@@ -1,7 +1,14 @@
<?xml version="1.0"?>
<openerp>
<data>
-
+ <act_window
+ id="act_event_list_register_event"
+ name="Registration"
+ res_model="event.registration"
+ src_model="event.event"
+ view_mode="calendar,tree,form,graph"
+ context="{'search_default_event_id': active_id, 'default_event_id': active_id}"
+ view_type="form"/>
<menuitem name="Events" id="event_main_menu"/>
<menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu" />
@@ -17,10 +24,10 @@
<group col="4">
<field name="name"/>
<field name="default_reply_to"/>
+ <field name="default_registration_min"/>
<field name="default_email_event" domain="[('model_id.model','=','event.registration')]"/>
+ <field name="default_registration_max"/>
<field name="default_email_registration" domain="[('model_id.model','=','event.registration')]"/>
- <field name="default_registration_min"/>
- <field name="default_registration_max"/>
</group>
</form>
</field>
@@ -61,40 +68,54 @@
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
</header>
<sheet>
-
- <div class="oe_right" style="height: 200px"></div>
- <div class="oe_title">
- <h1><field name="name"/></h1>
+ <div class="oe_right oe_button_box">
+ <button name="%(event.act_event_list_register_event)d" type="action" string="Registration" icon="gtk-index" help="Register with this event"/>
+ </div>
+
+ <div class="oe_title" style="width: 650px" >
+ <label for="name" class="oe_edit_only"/>
+ <group colspan="6" col="6">
+ <group colspan="2"><h1><field name="name"/></h1></group>
+ <group colspan="4"><h1><label string="(" attrs="{'invisible': [('type', '=', '')]}" /><field name="type" nolabel="1" on_change="onchange_event_type(type,context)" class="oe_inline"/><label string=")" attrs="{'invisible': [('type', '=', '')]}" /></h1></group>
+ </group>
+ </div>
+ <div>
+ <h2>From <field name="date_begin" class="oe_inline" /> to <field name="date_end" class="oe_inline"/></h2>
<group>
<group>
- <field name="type" on_change="onchange_event_type(type,context)"/>
- <field name="user_id"/>
- <field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_google_map'}"/>
+ <label for="address_id" string="Location Address"/>
+ <div>
+ <field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_google_map'}"/>
+ <field name="street" placeholder="Street..."/>
+ <div>
+ <field name="zip" class="oe_inline" placeholder="Zip"/>
+ <field name="city" class="oe_inline" placeholder="City"/>
+ </div>
+ </div>
</group>
<group>
- <field name="date_begin"/>
- <field name="date_end"/>
- <field name="register_min"/>
- <field name="register_max"/>
- </group>
- </group>
+ <field name="register_min"/>
+ <field name="register_max"/>
+ </group>
+ </group>
</div>
-
+ <!-- <div class="oe_right" style="height: 200px"></div> -->
<notebook>
<page string="Event Description">
<field name="note" colspan="4" nolabel="1"/>
</page>
<page string="Internal Data">
- <group class="oe_group_label_border" colspan="2" col="2">
+ <group>
+ <group class="oe_group_label_border">
+ <field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
+ <field name="speaker_confirmed"/>
+ </group>
+ <group class="oe_group_label_border">
<field name="register_current"/>
<field name="register_prospect"/>
- <field name="register_attended"/>
- </group>
- <group class="oe_group_label_border" colspan="2" col="2">
- <field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
- <field name="speaker_confirmed"/>
- </group>
- <field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user">
+ </group>
+ </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" />
<field name="email" />
@@ -127,12 +148,20 @@
</group>
</form>
</field>
+ <group class="oe_subtotal_footer oe_right" colspan="2" name="regi_total">
+ <field name="register_current"/>
+ <field name="register_prospect"/>
+ <field name="register_attended" class="oe_subtotal_footer_separator" />
+ </group>
+ <separator string="" class="oe_clear"/>
</page>
</notebook>
</sheet>
- <div class="oe_sheet_width">
- <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
- </div>
+ <footer>
+ <div class="oe_sheet_width">
+ <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
+ </div>
+ </footer>
</form>
</field>
</record>
@@ -309,15 +338,6 @@
</record>
<act_window
- id="act_event_list_register_event"
- name="Registration"
- res_model="event.registration"
- src_model="event.event"
- view_mode="calendar,tree,form,graph"
- context="{'search_default_event_id': [active_id], 'default_event_id': active_id}"
- view_type="form"/>
-
- <act_window
id="act_register_event_partner"
name="Subscribe"
res_model="event.registration"
@@ -362,54 +382,61 @@
<button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object"/>
<field name="state" select="1" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/>
</header>
- <sheet string="Registration" layout="auto">
- <group col="6" colspan="4">
- <field name="event_id" on_change="onchange_event(event_id, context)" domain="[('state','in',('draft','confirm'))]"/>
- <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" on_change="onchange_partner_id(partner_id, context)"/>
- <field name="nb_register"/>
- <field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}"/>
- <field name="origin"/>
+ <sheet string="Registration">
+ <group colspan="6" col="7">
+ <group colspan="3">
+ <h1>
+ <field name="event_id" on_change="onchange_event(event_id, context)" domain="[('state','in',('draft','confirm'))]" class="oe_tital"/>
+ </h1>
+ </group>
+ <group colspan="4">
+ <h1>
+ ( <field name="event_begin_date" class="oe_inline"/> - <field name="event_end_date" class="oe_inline"/> )
+ </h1>
+ </group>
+ </group>
+ <group colspan="2" col="2">
+ <h2>
+ <field name="nb_register" class="oe_inline"/> Participants
+ </h2>
</group>
- <notebook colspan="4">
- <page string="Additional Information">
- <group colspan="2" col="2">
- <separator string="Contact Information" colspan="2"/>
- <field name="name"/>
- <field name="email"/>
- <field name="phone"/>
- </group>
- <group colspan="2" col="2" groups="base.group_no_one">
- <separator string="Dates" colspan="2"/>
- <field name="create_date"/>
- <field name="date_closed"/>
- <field name="event_begin_date" />
- <field name="event_end_date" />
- </group>
- </page>
- <page string="Emails">
-<!--
- <field name="message_ids" colspan="4" nolabel="1" mode="tree">
- <tree string="History">
- <field name="display_text" string="History Information"/>
- <field name="reply_to" invisible="1"/>
- <button
- string="Reply" attrs="{'invisible': [('reply_to', '=', False)]}"
- name="%(mail.action_email_compose_message_wizard)d"
- context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
- icon="terp-mail-replied" type="action" />
- </tree>
- </field>
--->
- <button string="Send New Email"
+ <group colspan="4" col="4">
+ <group colspan="2">
+ <field name="name" invisible="1"/>
+ <field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" on_change="onchange_partner_id(partner_id, context)"/>
+ <label for="email" string="E-Mail"/>
+ <group col="2">
+ <field name="email" nolabel="1" class="oe_inline"/>
+ <button string="Send New Email"
name="%(mail.action_email_compose_message_wizard)d"
- icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/>
- </page>
-
- </notebook>
+ icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action" class="oe_inline"/>
+ </group>
+ </group>
+ <group colspan="2">
+ <field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}"/>
+ <field name="nb_register"/>
+ </group>
+ </group>
+ <group colspan="4" col="4">
+ <group colspan="2">
+
+ </group>
+ <group colspan="2">
+ </group>
+ </group>
+ <group colspan="2" col="2">
+ <field name="phone"/>
+ </group>
+ <group colspan="2" col="2" groups="base.group_no_one">
+ <field name="create_date"/>
+ <field name="date_closed"/>
+ </group>
</sheet>
- <div class="oe_sheet_width">
- <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
- </div>
+ <footer>
+ <div class="oe_sheet_width">
+ <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
+ </div>
+ </footer>
</form>
</field>
</record>
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp