From fa3301735e9bf6b35a0c4a62e149e8a6781858c3 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Mon, 9 Jul 2012 16:58:32 +0200 Subject: [PATCH] [IMP] event: usability, code review of form views bzr revid: qdp-launchpad@openerp.com-20120709145832-idr4x5f8v4dtq3ol --- addons/event/event.py | 37 +++++---- addons/event/event_demo.yml | 6 +- addons/event/event_view.xml | 82 +++++++++---------- .../event/report/report_event_registration.py | 4 +- addons/event_moodle/event_view.xml | 15 ++-- addons/event_sale/event_sale.py | 1 - 6 files changed, 74 insertions(+), 71 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 376fc122120..6a8cf9f8a0b 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -23,7 +23,6 @@ import time from osv import fields, osv from tools.translate import _ import decimal_precision as dp -from datetime import datetime, timedelta class event_type(osv.osv): """ Event Type """ @@ -51,6 +50,19 @@ class event_event(osv.osv): _order = 'date_begin' _inherit = ['ir.needaction_mixin','mail.thread'] + def name_get(self, cr, uid, ids, context=None): + if not ids: + return [] + res = [] + for record in self.browse(cr, uid, ids, context=context): + date = record.date_begin.split(" ")[0] + date_end = record.date_end.split(" ")[0] + if date != date_end: + date += ' - ' + date_end + display_name = record.name + ' (' + date + ')' + res.append((record['id'], display_name)) + return res + def create(self, cr, uid, vals, context=None): obj_id = super(event_event, self).create(cr, uid, vals, context) self.create_send_note(cr, uid, [obj_id], context=context) @@ -172,8 +184,8 @@ class event_event(osv.osv): '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 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_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_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'), @@ -305,17 +317,14 @@ class event_registration(osv.osv): ('open', 'Confirmed'), ('done', 'Attended')], 'Status', size=16, readonly=True), - # Fields for address, due to separation from event.registration and res.partner - 'email': fields.char('Email', size=240), + 'email': fields.char('Email', size=64), 'phone': fields.char('Phone', size=64), 'name': fields.char('Name', size=128, select=True), - 'active': fields.boolean('Active'), } _defaults = { 'nb_register': 1, 'state': 'draft', - 'active': True, } _order = 'name, create_date desc' @@ -387,33 +396,31 @@ class event_registration(osv.osv): return True def onchange_contact_id(self, cr, uid, ids, contact, partner, context=None): - data ={} if not contact: - return data + return {} addr_obj = self.pool.get('res.partner') contact_id = addr_obj.browse(cr, uid, contact, context=context) - data = { + return {'value': { 'email':contact_id.email, 'name':contact_id.name, 'phone':contact_id.phone, - } - return {'value': data} + }} def onchange_event(self, cr, uid, ids, event_id, context=None): """This function returns value of Product Name, Unit Price based on Event. """ - value= {} if context is None: context = {} if not event_id: return {} event_obj = self.pool.get('event.event') data_event = event_obj.browse(cr, uid, event_id, context=context) - value ['value']= {'event_begin_date': data_event.date_begin, + return {'value': + {'event_begin_date': data_event.date_begin, 'event_end_date': data_event.date_end, 'company_id': data_event.company_id and data_event.company_id.id or False, + } } - return value def onchange_partner_id(self, cr, uid, ids, part, context=None): res_obj = self.pool.get('res.partner') diff --git a/addons/event/event_demo.yml b/addons/event/event_demo.yml index f4e5cf04495..5fe1fb4ef12 100644 --- a/addons/event/event_demo.yml +++ b/addons/event/event_demo.yml @@ -26,15 +26,15 @@ !record {model: event.event, id: event_1}: name: 'Opera of Verdi' date_begin: !eval (datetime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 18:00:00') - date_end: !eval (datetime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 21:00:00') + date_end: !eval (datetime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 21:00:00') register_min: 50 register_max: 350 type: event_type_1 - !record {model: event.event, id: event_2}: name: 'Conference on ERP Business' - date_begin: !eval (datetime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 14:00:00') - date_end: !eval (datetime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 16:30:00') + date_begin: !eval (datetime.today()+ timedelta(months=2)).strftime('%Y-%m-%d 14:00:00') + date_end: !eval (datetime.today()+ timedelta(months=2)).strftime('%Y-%m-%d 16:30:00') register_min: 50 register_max: 350 type: event_type_2 diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 6dbad5fcd88..1526437ddd5 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -108,13 +108,9 @@
- -
+

From to @@ -124,7 +120,7 @@

+ + - - + - - - - - - - + + + +