From 8085156454ed92a5d31fa6bbc348ee5064ebb620 Mon Sep 17 00:00:00 2001 From: "Amit (OpenERP)" Date: Tue, 6 Mar 2012 12:19:02 +0530 Subject: [PATCH 01/28] [ADD]:event:added kanban view for event and realted changes for that. bzr revid: apa@tinyerp.com-20120306064902-rdx250ihctkpjph8 --- addons/event/__openerp__.py | 1 + addons/event/event.py | 54 ++++++++++++++++- addons/event/event_view.xml | 71 ++++++++++++++++++++++- addons/event/static/src/css/event.css | 83 +++++++++++++++++++++++++++ 4 files changed, 207 insertions(+), 2 deletions(-) create mode 100644 addons/event/static/src/css/event.css diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py index 06252001c83..ea0e4316ef5 100644 --- a/addons/event/__openerp__.py +++ b/addons/event/__openerp__.py @@ -53,6 +53,7 @@ Note that: ], 'demo_xml': ['event_demo.xml'], 'test': ['test/process/event_draft2done.yml'], + 'css': ['static/src/css/event.css'], 'installable': True, 'application': True, 'auto_install': False, diff --git a/addons/event/event.py b/addons/event/event.py index 133d29281f1..1b92b995239 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -148,8 +148,30 @@ class event_event(osv.osv): number = reg_done elif field == 'register_prospect': number = reg_draft + elif field == 'register_avail': + number = event.register_max-reg_open res[event.id][field] = number return res + + def _subscribe_fnc(self, cr, uid, ids, fields, args, context=None): + """Get Confirm or uncofirm register value. + @param ids: List of Event registration type's id + @param fields: List of function fields(register_current and register_prospect). + @param context: A standard dictionary for contextual values + @return: Dictionary of function fields value. + """ + register_pool = self.pool.get('event.registration') + res = {} + for event in self.browse(cr, uid, ids, context=context): + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',event.id)]) + if not curr_reg_id:res[event.id] = False + if curr_reg_id: + for reg in register_pool.browse(cr,uid,curr_reg_id,context=context): + if not reg.subscribe: + res[event.id]=False + else: + res[event.id]=True + return res _columns = { 'name': fields.char('Name', size=64, required=True, translate=True, readonly=False, states={'done': [('readonly', True)]}), @@ -158,6 +180,7 @@ class event_event(osv.osv): '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'), 'register_attended': fields.function(_get_register, string='Attended Registrations', multi='register_numbers'), 'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}), @@ -182,6 +205,7 @@ class event_event(osv.osv): type='many2one', relation='res.country', string='Country', readonly=False, states={'done': [('readonly', True)]}), 'note': fields.text('Description', readonly=False, states={'done': [('readonly', True)]}), 'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}), + 'subscribe' : fields.function(_subscribe_fnc, type="boolean", string='Subscribe'), } _defaults = { @@ -189,6 +213,33 @@ class event_event(osv.osv): 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'event.event', context=c), 'user_id': lambda obj, cr, uid, context: uid, } + + def subscribe_to_event(self,cr,uid,ids,context=None): + register_pool = self.pool.get('event.registration') + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) + if not curr_reg_id: + register_pool.create(cr, uid, {'state':'open', + 'event_id':ids[0], + 'subscribe':True, + }) + else: + register_pool.write(cr, uid, curr_reg_id,{'state':'open','subscribe':True, + 'event_id':ids[0], + }) + + self.write(cr,uid,ids,{'subscribe':True}) + return True + + def unsubscribe_to_event(self,cr,uid,ids,context=None): + register_pool = self.pool.get('event.registration') + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) + if curr_reg_id: + register_pool.write(cr, uid, curr_reg_id,{'state':'draft', + 'event_id':ids[0], + 'subscribe':False + }) + self.write(cr,uid,ids,{'subscribe':False}) + return True def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): @@ -239,7 +290,8 @@ class event_registration(osv.osv): ('open', 'Confirmed'), ('cancel', 'Cancelled'), ('done', 'Attended')], 'State', - size=16, readonly=True) + size=16, readonly=True), + 'subscribe': fields.boolean('Subscribe'), } _defaults = { diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 88be188080e..5aacf7a2845 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -156,6 +156,70 @@ + + + + + event.event.kanban + event.event + kanban + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+
+

+

+ @
+ Organized by
+ + + + + seats + seat available. + + + +

+ + + + + + + + +
+
+
+
+
+
+
@@ -199,6 +263,10 @@ + @@ -229,7 +297,8 @@ ir.actions.act_window event.event form - calendar,tree,form,graph + kanban,calendar,tree,form,graph + {"search_default_upcoming":1} Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events. diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css new file mode 100644 index 00000000000..f3d60fcee26 --- /dev/null +++ b/addons/event/static/src/css/event.css @@ -0,0 +1,83 @@ +.oe_event_date{ + border-top-left-radius:3px; + border-top-right-radius:3px; + font-size: 48px; + height: auto; + font-weight: bold; + text-align: center; + margin-bottom:-7px; + color: #FFFFFF; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + background-color: #8A89BA; +} +.oe_event_time{ + border-bottom-left-radius:3px; + border-bottom-right-radius:3px; + font-size: 12px; + text-align: center; + font-weight: bold; + color: #8A89BA; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + background-color: #FFFFFF; +} +.oe_event_month_year{ + border-bottom-left-radius:3px; + border-bottom-right-radius:3px; + font-size: 12px; + text-align: center; + font-weight: bold; + color: #FFFFFF; + background-color: #8A89BA; +} +div.oe_fold_column{ + padding:0px !important; +} +.oe_event_button_subscribe{ + display: block; + border: 1px solid #404040; + color: #404040; + font-size: 10px; + text-align: center; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} +.oe_event_button_unsubscribe{ + display: block; + border: 1px solid #404040; + color: #FFFFFF; + background-color:#DC5F59; + font-size: 10px; + text-align: center; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} +.oe_event_button_subscribe:hover { + cursor: pointer; + background-color: #DC5F59; +} +.oe_event_button_unsubscribe:hover { + cursor: pointer; + background-color: #404040; +} +.subscribe, .subscribe_button:hover span { + display: none; + background-color: #DC5F59; +} +.subscribe_button:hover .subscribe { + display: inline; + background-color: #DC5F59; +} +.unsubscribe, .unsubscribe_button:hover span { + display: none; +} +.unsubscribe_button:hover .unsubscribe { + display: inline; + background-color: #404040; +} + From 43c887aff7c7cd0b991decc23420589b1785d62e Mon Sep 17 00:00:00 2001 From: "Dharti Ratani (OpenERP)" Date: Wed, 7 Mar 2012 12:30:04 +0530 Subject: [PATCH 02/28] [IMP]changes in css for buttons bzr revid: dhr@tinyerp.com-20120307070004-wvmtqmqu8ybj0uz3 --- addons/event/event_view.xml | 11 ++-- addons/event/static/src/css/event.css | 92 ++++++++++++++++++--------- 2 files changed, 68 insertions(+), 35 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 5aacf7a2845..79e8193134c 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -189,7 +189,7 @@

@
Organized by
- + Only @@ -197,20 +197,19 @@ seat available. - +

diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index f3d60fcee26..61ea2da3be3 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -32,52 +32,86 @@ div.oe_fold_column{ padding:0px !important; } -.oe_event_button_subscribe{ - display: block; - border: 1px solid #404040; +.oe_event_button_subscribe { + display: inline-block; + border: 1px solid #ababab; color: #404040; - font-size: 10px; + font-size: 12px; + padding: 3px 10px; text-align: center; + -o-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -webkit-background-size: auto auto !important; + background-size: 100% 100%; + background: #d8d8d8 none; + background: none, -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); + background: none, -webkit-linear-gradient(#efefef, #d8d8d8); + background: none, -moz-linear-gradient(#efefef, #d8d8d8); + background: none, -o-linear-gradient(top, #efefef, #d8d8d8); + background: none, -khtml-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); + background: -ms-linear-gradient(top, #efefef, #d8d8d8); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#efefef', endColorstr='#d8d8d8',GradientType=0 ); -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; -ms-border-radius: 3px; border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); + -webkit-font-smoothing: antialiased; + outline: none; } -.oe_event_button_unsubscribe{ - display: block; - border: 1px solid #404040; - color: #FFFFFF; - background-color:#DC5F59; - font-size: 10px; +.oe_event_button_unsubscribe { + display: inline-block; + border: 1px solid #ababab; + color: #404040; + font-size: 12px; + padding: 3px 10px; text-align: center; + -o-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -webkit-background-size: auto auto !important; + background-size: 100% 100%; + background: #8A89BA none; + background: none, -webkit-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); + background: none, -webkit-linear-gradient(#8A89BA, #8A89BA); + background: none, -moz-linear-gradient(#8A89BA, #8A89BA); + background: none, -o-linear-gradient(top, #8A89BA, #8A89BA); + background: none, -khtml-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); + background: -ms-linear-gradient(top, #8A89BA, #8A89BA); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8A89BA, endColorstr='#8A89BA',GradientType=0 ); -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; -ms-border-radius: 3px; border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); + -webkit-font-smoothing: antialiased; + outline: none; } .oe_event_button_subscribe:hover { cursor: pointer; - background-color: #DC5F59; + background-size: 100% 100%; + background: #DC5F59 none; } .oe_event_button_unsubscribe:hover { - cursor: pointer; - background-color: #404040; -} -.subscribe, .subscribe_button:hover span { - display: none; - background-color: #DC5F59; -} -.subscribe_button:hover .subscribe { - display: inline; - background-color: #DC5F59; -} -.unsubscribe, .unsubscribe_button:hover span { - display: none; -} -.unsubscribe_button:hover .unsubscribe { - display: inline; - background-color: #404040; -} + cursor: pointer; + background-size: 100% 100%; + background: #DC5F59 none; + } + .unsubscribe, .unsubscribe_button:hover span { + display: none; + background-color: #DC5F59 + } + .unsubscribe_button:hover .unsubscribe { + display: inline; + background-color: #DC5F59; + } From 456b417f0bd3650d145f9cb94ec8e6f13faf179a Mon Sep 17 00:00:00 2001 From: "Dharti Ratani (OpenERP)" Date: Wed, 7 Mar 2012 14:14:18 +0530 Subject: [PATCH 03/28] [IMP] bzr revid: dhr@tinyerp.com-20120307084418-uaemwhxf24f95fkw --- addons/event/event_view.xml | 9 ++++++--- addons/event/static/src/css/event.css | 18 +++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 79e8193134c..21c2e020098 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -172,6 +172,7 @@ + @@ -187,14 +188,16 @@

+ Status:
@
Organized by
- Only + Only + No ticket available. - seats - seat available. + tickets + ticket available. diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index 61ea2da3be3..bd73d67f20a 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -66,7 +66,7 @@ div.oe_fold_column{ } .oe_event_button_unsubscribe { display: inline-block; - border: 1px solid #ababab; + border: 1px solid #AAA; color: #404040; font-size: 12px; padding: 3px 10px; @@ -75,14 +75,14 @@ div.oe_fold_column{ -moz-background-size: 100% 100%; -webkit-background-size: auto auto !important; background-size: 100% 100%; - background: #8A89BA none; - background: none, -webkit-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); - background: none, -webkit-linear-gradient(#8A89BA, #8A89BA); - background: none, -moz-linear-gradient(#8A89BA, #8A89BA); - background: none, -o-linear-gradient(top, #8A89BA, #8A89BA); - background: none, -khtml-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); - background: -ms-linear-gradient(top, #8A89BA, #8A89BA); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8A89BA, endColorstr='#8A89BA',GradientType=0 ); + background: #AAA none; + background: none, -webkit-gradient(linear, left top, left bottom, from(#AAA), to(#AAA)); + background: none, -webkit-linear-gradient(#AAA, #AAA); + background: none, -moz-linear-gradient(#AAA, #AAA); + background: none, -o-linear-gradient(top, #AAA, #AAA); + background: none, -khtml-gradient(linear, left top, left bottom, from(#AAA), to(#AAA)); + background: -ms-linear-gradient(top, #AAA, #AAA); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#AAA, endColorstr='#AAA',GradientType=0 ); -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; From 5bc638ec841424fc23d48bd1b254cab4b06c80ac Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 7 Mar 2012 15:23:36 +0530 Subject: [PATCH 04/28] [IMP]:event:removed status from kanban view. bzr revid: apa@tinyerp.com-20120307095336-c2w2o2dg7i81m38c --- addons/event/event_view.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 21c2e020098..0b9c893b881 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -188,8 +188,7 @@

- Status:
- @
+ @
Organized by
Only No ticket available. From 00f7fbe5504f7a1b2783072f4e7b7f542fc08017 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 20 Mar 2012 15:52:17 +0530 Subject: [PATCH 05/28] [IMP]:event:remove mouse hover for subscribe button. bzr revid: apa@tinyerp.com-20120320102217-80icy0kj5ronpfq4 --- addons/event/static/src/css/event.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index bd73d67f20a..4a54d6cbe9e 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -99,7 +99,7 @@ div.oe_fold_column{ .oe_event_button_subscribe:hover { cursor: pointer; background-size: 100% 100%; - background: #DC5F59 none; + /*background: #DC5F59 none;*/ } .oe_event_button_unsubscribe:hover { cursor: pointer; From 4606fe32b7729583228124f8a29f6718eeef9002 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 20 Mar 2012 15:54:54 +0530 Subject: [PATCH 06/28] [IMP]help changed. bzr revid: kbh@tinyerp.com-20120320102454-4q2hvlbg2rsouj1r --- addons/event/event_view.xml | 6 +++--- addons/event/static/src/css/event.css | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 0b9c893b881..6f80299f02c 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -265,9 +265,9 @@ + name="upcoming" + domain="[('date_begin','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" + help="Up Coming Events form today" /> diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index bd73d67f20a..4a0a286140d 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -99,7 +99,6 @@ div.oe_fold_column{ .oe_event_button_subscribe:hover { cursor: pointer; background-size: 100% 100%; - background: #DC5F59 none; } .oe_event_button_unsubscribe:hover { cursor: pointer; From 57c3460598edf0467755cdcc1c46f2b50936ab50 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 20 Mar 2012 16:14:34 +0530 Subject: [PATCH 07/28] [IMP] bzr revid: kbh@tinyerp.com-20120320104434-1tkt040qzvukmsgc --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 6f80299f02c..c766201805e 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -267,7 +267,7 @@ + help="Up coming events form today" /> From 7f982abc8581b60a45727fb60922b3ab37a3f4dc Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 20 Mar 2012 16:41:58 +0530 Subject: [PATCH 08/28] [IMP] bzr revid: apa@tinyerp.com-20120320111158-4w449qdomaa29oqa --- addons/event/event_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index c766201805e..a6c00934fa5 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -265,9 +265,9 @@ + name="upcoming" + domain="[('date_begin','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" + help="Up coming events form today" /> From 15249d4ce1eed0db3b0fd94006ddf5c3a6174707 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 10:51:26 +0530 Subject: [PATCH 09/28] [IMP] bzr revid: apa@tinyerp.com-20120321052126-j5p0itn5ij5gdnia --- addons/event/event.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/event/event.py b/addons/event/event.py index 1b92b995239..340719e99a8 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -216,10 +216,15 @@ class event_event(osv.osv): def subscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') + user_pool = self.pool.get('res.users') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) + user = user_pool.browse(cr,uid,uid,context) + print user.user_email if not curr_reg_id: register_pool.create(cr, uid, {'state':'open', 'event_id':ids[0], + 'email':user.user_email, + 'name':user.name, 'subscribe':True, }) else: @@ -234,7 +239,7 @@ class event_event(osv.osv): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) if curr_reg_id: - register_pool.write(cr, uid, curr_reg_id,{'state':'draft', + register_pool.write(cr, uid, curr_reg_id,{'state':'cancel', 'event_id':ids[0], 'subscribe':False }) From 94c68ff9382b5a9ead79e2f00240861a68b3f9cc Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 11:13:56 +0530 Subject: [PATCH 10/28] [IMP] bzr revid: apa@tinyerp.com-20120321054356-t3t96j0kunsi4924 --- addons/event/event.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 340719e99a8..82b06bc8d48 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -221,17 +221,20 @@ class event_event(osv.osv): user = user_pool.browse(cr,uid,uid,context) print user.user_email if not curr_reg_id: - register_pool.create(cr, uid, {'state':'open', - 'event_id':ids[0], - 'email':user.user_email, - 'name':user.name, - 'subscribe':True, - }) + curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], + 'email':user.user_email, + 'name':user.name, + 'subscribe':True, + }) + + else: register_pool.write(cr, uid, curr_reg_id,{'state':'open','subscribe':True, 'event_id':ids[0], }) - + if isinstance(curr_reg_id, (int, long)): + curr_reg_id = [curr_reg_id] + register_pool.confirm_registration(cr,uid,curr_reg_id,context) self.write(cr,uid,ids,{'subscribe':True}) return True @@ -239,11 +242,13 @@ class event_event(osv.osv): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) if curr_reg_id: - register_pool.write(cr, uid, curr_reg_id,{'state':'cancel', - 'event_id':ids[0], + if isinstance(curr_reg_id, (int, long)): + curr_reg_id = [curr_reg_id] + register_pool.write(cr, uid, curr_reg_id,{'event_id':ids[0], 'subscribe':False }) - self.write(cr,uid,ids,{'subscribe':False}) + register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) + self.write(cr,uid,ids,{'subscribe':False}) return True def _check_closing_date(self, cr, uid, ids, context=None): From a1f79bde2a20981cec417e3ce3cd91ffdeece4b5 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 12:34:08 +0530 Subject: [PATCH 11/28] [IMP] bzr revid: apa@tinyerp.com-20120321070408-gy02ke9mzh6xzkl0 --- addons/event/event.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/event/event.py b/addons/event/event.py index 82b06bc8d48..7d2c18a01bc 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -219,7 +219,6 @@ class event_event(osv.osv): user_pool = self.pool.get('res.users') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) user = user_pool.browse(cr,uid,uid,context) - print user.user_email if not curr_reg_id: curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], 'email':user.user_email, From 7f8b27131b658b2936e26777d996e5f2b96012ea Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 15:33:57 +0530 Subject: [PATCH 12/28] [IMP] bzr revid: apa@tinyerp.com-20120321100357-0u42rph6fovo3cth --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index a6c00934fa5..338c2dd9ba8 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -267,7 +267,7 @@ + help="Up coming events from today" /> From 0d59afa455ef124252a865b22cbd82b30191bd8a Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 18:24:58 +0530 Subject: [PATCH 13/28] [IMP] bzr revid: apa@tinyerp.com-20120321125458-4qu5opgtlogtpq2h --- addons/event/event.py | 11 ++++++----- addons/event/event_demo.xml | 3 --- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 7d2c18a01bc..baa14de9bbe 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -221,9 +221,10 @@ class event_event(osv.osv): user = user_pool.browse(cr,uid,uid,context) if not curr_reg_id: curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], - 'email':user.user_email, - 'name':user.name, - 'subscribe':True, + 'email':user.user_email, + 'name':user.name, + 'user_id':uid, + 'subscribe':True, }) @@ -293,7 +294,7 @@ class event_registration(osv.osv): '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', 'Responsible', states={'done': [('readonly', True)]}), + 'user_id': fields.many2one('res.users', 'Attendee', 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'), ('open', 'Confirmed'), @@ -306,7 +307,7 @@ class event_registration(osv.osv): _defaults = { 'nb_register': 1, 'state': 'draft', - 'user_id': lambda self, cr, uid, ctx: uid, + #'user_id': lambda self, cr, uid, ctx: uid, } _order = 'name, create_date desc' diff --git a/addons/event/event_demo.xml b/addons/event/event_demo.xml index 0dfbbf6de18..5b4654342c9 100644 --- a/addons/event/event_demo.xml +++ b/addons/event/event_demo.xml @@ -32,7 +32,6 @@ Concert of Bon Jovi - 500 @@ -42,7 +41,6 @@ - 50 350 @@ -52,7 +50,6 @@ 200 - From ef409154e6ad620c287c7bd3971993328742d497 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 22 Mar 2012 11:15:23 +0530 Subject: [PATCH 14/28] [IMP] bzr revid: apa@tinyerp.com-20120322054523-650x1m4vynflsfii --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 338c2dd9ba8..48fa1b9cc8b 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -264,7 +264,7 @@ - From 9f137659c4ca5405a0a3f42fc8e606822bb44ce7 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 22 Mar 2012 15:23:52 +0530 Subject: [PATCH 15/28] [FIX]:ValueError: No such external ID currently defined in the system: event.event_type_4 bzr revid: apa@tinyerp.com-20120322095352-duinua5esddclxw5 --- addons/event_sale/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event_sale/__openerp__.py b/addons/event_sale/__openerp__.py index f92a9eb5617..d8f689986e2 100644 --- a/addons/event_sale/__openerp__.py +++ b/addons/event_sale/__openerp__.py @@ -37,8 +37,8 @@ It defines a new kind of service products that offers you the possibility to cho 'depends': ['event','sale','sale_crm'], 'update_xml': [ 'event_sale_view.xml', - 'event_demo.xml', ], + 'demo_xml': ['event_demo.xml'], 'test':['test/confirm.yml'], 'installable': True, 'active': False, From 3dbea7ec59865cb1d9034c61d0e698ae9fd8f0df Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 23 Mar 2012 10:25:55 +0530 Subject: [PATCH 16/28] [IMP] bzr revid: apa@tinyerp.com-20120323045555-qab1wjnq4dbymwbq --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 8032bd7a504..4b4f2b1e44d 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -299,7 +299,7 @@ event.event form kanban,calendar,tree,form,graph - {"search_default_upcoming":1,"search_default_section_id": section_id} + {"search_default_upcoming":1} Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events. From 15296eb4586fd987937c58e989d758c83279f6a7 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:01:01 +0530 Subject: [PATCH 17/28] [IMP]:improved code bzr revid: apa@tinyerp.com-20120326103101-bupq777xei3h8ilv --- addons/event/event.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index baa14de9bbe..1bdbade2e46 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -154,9 +154,9 @@ class event_event(osv.osv): return res def _subscribe_fnc(self, cr, uid, ids, fields, args, context=None): - """Get Confirm or uncofirm register value. + """Get Subscribe or Unsubscribe registration value. @param ids: List of Event registration type's id - @param fields: List of function fields(register_current and register_prospect). + @param fields: List of function fields(subscribe). @param context: A standard dictionary for contextual values @return: Dictionary of function fields value. """ @@ -167,10 +167,8 @@ class event_event(osv.osv): if not curr_reg_id:res[event.id] = False if curr_reg_id: for reg in register_pool.browse(cr,uid,curr_reg_id,context=context): - if not reg.subscribe: - res[event.id]=False - else: - res[event.id]=True + res[event.id] = False + if reg.subscribe:res[event.id]= True return res _columns = { @@ -229,26 +227,18 @@ class event_event(osv.osv): else: - register_pool.write(cr, uid, curr_reg_id,{'state':'open','subscribe':True, - 'event_id':ids[0], - }) - if isinstance(curr_reg_id, (int, long)): - curr_reg_id = [curr_reg_id] + register_pool.write(cr, uid, curr_reg_id,{'subscribe':True}) + if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] register_pool.confirm_registration(cr,uid,curr_reg_id,context) - self.write(cr,uid,ids,{'subscribe':True}) return True def unsubscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) if curr_reg_id: - if isinstance(curr_reg_id, (int, long)): - curr_reg_id = [curr_reg_id] - register_pool.write(cr, uid, curr_reg_id,{'event_id':ids[0], - 'subscribe':False - }) + if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] + register_pool.write(cr, uid, curr_reg_id,{'subscribe':False}) register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) - self.write(cr,uid,ids,{'subscribe':False}) return True def _check_closing_date(self, cr, uid, ids, context=None): From ef54b4df2e50e479e61cd69a47b569120260730d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:02:12 +0530 Subject: [PATCH 18/28] [IMP]:improved code bzr revid: apa@tinyerp.com-20120326103212-hdqu509fxbocjvil --- addons/event/event.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 1bdbade2e46..6cd42843194 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -222,10 +222,7 @@ class event_event(osv.osv): 'email':user.user_email, 'name':user.name, 'user_id':uid, - 'subscribe':True, - }) - - + 'subscribe':True}) else: register_pool.write(cr, uid, curr_reg_id,{'subscribe':True}) if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] From 035e9c9ee081afba130735aca356a02b131b8c8d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:15:31 +0530 Subject: [PATCH 19/28] [ADD]:added event share module bzr revid: apa@tinyerp.com-20120326104531-nzsg2lyy6up8ost7 --- addons/event_share/__init__.py | 24 ++++++++++++ addons/event_share/__openerp__.py | 35 +++++++++++++++++ addons/event_share/wizard/__init__.py | 24 ++++++++++++ addons/event_share/wizard/wizard_share.py | 47 +++++++++++++++++++++++ 4 files changed, 130 insertions(+) create mode 100644 addons/event_share/__init__.py create mode 100644 addons/event_share/__openerp__.py create mode 100644 addons/event_share/wizard/__init__.py create mode 100644 addons/event_share/wizard/wizard_share.py diff --git a/addons/event_share/__init__.py b/addons/event_share/__init__.py new file mode 100644 index 00000000000..8dbeda71145 --- /dev/null +++ b/addons/event_share/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import wizard +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/event_share/__openerp__.py b/addons/event_share/__openerp__.py new file mode 100644 index 00000000000..f6ad583364a --- /dev/null +++ b/addons/event_share/__openerp__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + 'name': 'Events Share', + 'version': '0.1', + 'category': 'Tools', + 'complexity': "easy", + 'description': """ """, + 'author': 'OpenERP SA', + 'depends': ['event','share'], + 'installable': True, + #'application': True, + 'auto_install': False, +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/event_share/wizard/__init__.py b/addons/event_share/wizard/__init__.py new file mode 100644 index 00000000000..d62c6170854 --- /dev/null +++ b/addons/event_share/wizard/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import wizard_share +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/event_share/wizard/wizard_share.py b/addons/event_share/wizard/wizard_share.py new file mode 100644 index 00000000000..02b5ae26009 --- /dev/null +++ b/addons/event_share/wizard/wizard_share.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2011 OpenERP S.A (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import osv, fields +from tools.translate import _ + +UID_ROOT = 1 +EVENT_ACCESS = ('perm_read', 'perm_write', 'perm_create') + +class share_wizard_event(osv.osv_memory): + """Inherited share wizard to automatically create appropriate + menus in the selected portal upon sharing with a portal group.""" + _inherit = "share.wizard" + + def _add_access_rights_for_share_group(self, cr, uid, group_id, mode, fields_relations, context=None): + print "Calling _add_access_rights_for_share_group.....!!!" + """Adds access rights to group_id on object models referenced in ``fields_relations``, + intersecting with access rights of current user to avoid granting too much rights + """ + res = super(share_wizard_event, self)._add_access_rights_for_share_group(cr, uid, group_id, mode, fields_relations, context=context) + access_model = self.pool.get('ir.model.access') + access_ids = access_model.search(cr,uid,[('group_id','=',group_id)],context = context) + access_model.write(cr, uid, access_ids, {'perm_read': True, 'perm_write': True}) + return res + +share_wizard_event() + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file From afe3ea9e46c6ba85b9e03d1452b7e7dcaf64fea0 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:52:21 +0530 Subject: [PATCH 20/28] [IMP] bzr revid: apa@tinyerp.com-20120326112221-jupd2mmjc504iu2x --- addons/event/event.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 6cd42843194..b9ca4d3276f 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -223,20 +223,14 @@ class event_event(osv.osv): 'name':user.name, 'user_id':uid, 'subscribe':True}) - else: - register_pool.write(cr, uid, curr_reg_id,{'subscribe':True}) if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - register_pool.confirm_registration(cr,uid,curr_reg_id,context) - return True + return register_pool.confirm_registration(cr,uid,curr_reg_id,context) def unsubscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) - if curr_reg_id: - if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - register_pool.write(cr, uid, curr_reg_id,{'subscribe':False}) - register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) - return True + if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] + return register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): @@ -304,7 +298,7 @@ class event_registration(osv.osv): def confirm_registration(self, cr, uid, ids, context=None): self.message_append(cr, uid, ids,_('State set to open'),body_text= _('Open')) - return self.write(cr, uid, ids, {'state': 'open'}, context=context) + return self.write(cr, uid, ids, {'state': 'open','subscribe':True}, context=context) def registration_open(self, cr, uid, ids, context=None): @@ -331,7 +325,7 @@ class event_registration(osv.osv): def button_reg_cancel(self, cr, uid, ids, context=None, *args): self.message_append(cr, uid, ids,_('State set to Cancel'),body_text= _('Cancel')) - return self.write(cr, uid, ids, {'state': 'cancel'}) + return self.write(cr, uid, ids, {'state': 'cancel','subscribe':False}) def mail_user(self, cr, uid, ids, context=None): """ From ea7cedc96d857d6e842427d770f734e492de1e9d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 17:01:32 +0530 Subject: [PATCH 21/28] [IMP] bzr revid: apa@tinyerp.com-20120326113132-bnodi8lyzwohf5v3 --- addons/event/event.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index b9ca4d3276f..a69e17aa269 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -215,14 +215,13 @@ class event_event(osv.osv): def subscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') user_pool = self.pool.get('res.users') - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) user = user_pool.browse(cr,uid,uid,context) + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',user.id),('event_id','=',ids[0])]) if not curr_reg_id: - curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], - 'email':user.user_email, - 'name':user.name, - 'user_id':uid, - 'subscribe':True}) + curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0],'email':user.user_email, + 'name':user.name,'user_id':user.id, + 'subscribe':True + }) if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] return register_pool.confirm_registration(cr,uid,curr_reg_id,context) From b79985289aaa717c2c7b886ffdf0f70150e01adf Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 17:08:47 +0530 Subject: [PATCH 22/28] [IMP] bzr revid: apa@tinyerp.com-20120326113847-rcw09e4bp87sn6fh --- addons/event/event.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/event/event.py b/addons/event/event.py index a69e17aa269..8aca855cc0a 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -287,7 +287,6 @@ class event_registration(osv.osv): _defaults = { 'nb_register': 1, 'state': 'draft', - #'user_id': lambda self, cr, uid, ctx: uid, } _order = 'name, create_date desc' From 928171ffe79bc8db58e138db1e3ffabeb2cc82da Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 26 Mar 2012 17:15:56 +0530 Subject: [PATCH 23/28] [IMP]give rights to registration bzr revid: sgo@tinyerp.com-20120326114556-5hfi4wga6y7w455p --- addons/event_share/wizard/wizard_share.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/event_share/wizard/wizard_share.py b/addons/event_share/wizard/wizard_share.py index 02b5ae26009..8179781f432 100644 --- a/addons/event_share/wizard/wizard_share.py +++ b/addons/event_share/wizard/wizard_share.py @@ -37,9 +37,11 @@ class share_wizard_event(osv.osv_memory): """ res = super(share_wizard_event, self)._add_access_rights_for_share_group(cr, uid, group_id, mode, fields_relations, context=context) access_model = self.pool.get('ir.model.access') + access_ids = access_model.search(cr,uid,[('group_id','=',group_id)],context = context) - access_model.write(cr, uid, access_ids, {'perm_read': True, 'perm_write': True}) - return res + for record in access_model.browse(cr,uid,access_ids,context = context): + if record.model_id.model == 'event.registration': + access_model.write(cr, uid, record.id, {'perm_read': True, 'perm_write': True,'perm_create':True}) share_wizard_event() From 4f69e02d1c7c92e554af40c7e7d9f835399ebaba Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 26 Mar 2012 18:18:25 +0530 Subject: [PATCH 24/28] [IMP]add share access to registration and changes in security view bzr revid: sgo@tinyerp.com-20120326124825-xewmd0qc82k9hk11 --- addons/event/event_demo.xml | 2 +- addons/event/event_view.xml | 4 ++-- addons/event/security/event_security.xml | 16 ++++++++++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/addons/event/event_demo.xml b/addons/event/event_demo.xml index 5b4654342c9..b76055cd0ff 100644 --- a/addons/event/event_demo.xml +++ b/addons/event/event_demo.xml @@ -45,7 +45,7 @@ 350 - Conference on ERP Buisness + Conference on ERP Business diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 4b4f2b1e44d..ff605297944 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -63,7 +63,7 @@ - + @@ -484,7 +484,7 @@ + action="action_registration" groups="event.group_event_manager,event.group_event_user"/> diff --git a/addons/event/security/event_security.xml b/addons/event/security/event_security.xml index e7a84337bac..c0eb37d7b84 100644 --- a/addons/event/security/event_security.xml +++ b/addons/event/security/event_security.xml @@ -2,12 +2,20 @@ - - Event Manager + + Event + Helps you manage your Events. + 3 + + + + User + - - Event User + + Manager + From 3666c8515e0c1d15bdaf1012947603b4bdf16e04 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 27 Mar 2012 16:40:58 +0530 Subject: [PATCH 25/28] [IMP]:improved help bzr revid: apa@tinyerp.com-20120327111058-b2gvgfe75ahsd813 --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index f4a30a45a47..89be60ea95b 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -267,7 +267,7 @@ + help="Upcoming events from today" /> From e5346f76cecbe9eed6c1b044ae19b0d4fd757f66 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 28 Mar 2012 16:38:53 +0200 Subject: [PATCH 26/28] [IMP] event: improvements related to kanban view * removed foolish 'subscribe boolean field on event.registration * if the register max field on the event is left to 0, it means the number of available ticket is unlimited * few usabiltiy improvements and refactoring bzr revid: qdp-launchpad@openerp.com-20120328143853-0m8uum4so8q4q3hv --- addons/event/event.py | 58 ++++++++++------------ addons/event/event_view.xml | 98 ++++++++++++++++++------------------- 2 files changed, 75 insertions(+), 81 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 8aca855cc0a..bd16194bcef 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -149,26 +149,25 @@ class event_event(osv.osv): elif field == 'register_prospect': number = reg_draft elif field == 'register_avail': - number = event.register_max-reg_open + #the number of ticket is unlimited if the event.register_max field is not set. + #In that cas we arbitrary set it to 9999, it is used in the kanban view to special case the display of the 'subscribe' button + number = event.register_max - reg_open if event.register_max != 0 else 9999 res[event.id][field] = number return res - + def _subscribe_fnc(self, cr, uid, ids, fields, args, context=None): - """Get Subscribe or Unsubscribe registration value. - @param ids: List of Event registration type's id - @param fields: List of function fields(subscribe). - @param context: A standard dictionary for contextual values - @return: Dictionary of function fields value. + """This functional fields compute if the current user (uid) is already subscribed or not to the event passed in parameter (ids) """ register_pool = self.pool.get('event.registration') res = {} for event in self.browse(cr, uid, ids, context=context): - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',event.id)]) - if not curr_reg_id:res[event.id] = False + res[event.id] = False + curr_reg_id = register_pool.search(cr, uid, [('user_id', '=', uid), ('event_id', '=' ,event.id)]) if curr_reg_id: - for reg in register_pool.browse(cr,uid,curr_reg_id,context=context): - res[event.id] = False - if reg.subscribe:res[event.id]= True + for reg in register_pool.browse(cr, uid, curr_reg_id, context=context): + if reg.state in ('open','done'): + res[event.id]= True + continue return res _columns = { @@ -185,7 +184,7 @@ class event_event(osv.osv): 'date_begin': fields.datetime('Start Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'date_end': fields.datetime('End Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'state': fields.selection([ - ('draft', 'Draft'), + ('draft', 'Unconfirmed'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], @@ -203,7 +202,7 @@ class event_event(osv.osv): type='many2one', relation='res.country', string='Country', readonly=False, states={'done': [('readonly', True)]}), 'note': fields.text('Description', readonly=False, states={'done': [('readonly', True)]}), 'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}), - 'subscribe' : fields.function(_subscribe_fnc, type="boolean", string='Subscribe'), + 'is_subscribed' : fields.function(_subscribe_fnc, type="boolean", string='Subscribed'), } _defaults = { @@ -211,25 +210,21 @@ class event_event(osv.osv): 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'event.event', context=c), 'user_id': lambda obj, cr, uid, context: uid, } - - def subscribe_to_event(self,cr,uid,ids,context=None): + + def subscribe_to_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') user_pool = self.pool.get('res.users') - user = user_pool.browse(cr,uid,uid,context) - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',user.id),('event_id','=',ids[0])]) - if not curr_reg_id: - curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0],'email':user.user_email, - 'name':user.name,'user_id':user.id, - 'subscribe':True - }) - if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - return register_pool.confirm_registration(cr,uid,curr_reg_id,context) - + user = user_pool.browse(cr, uid, uid, context=context) + curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) + if not curr_reg_ids: + curr_reg_ids = [register_pool.create(cr, uid, {'event_id': ids[0] ,'email': user.user_email, + 'name':user.name, 'user_id': user.id,})] + return register_pool.confirm_registration(cr, uid, curr_reg_ids, context=context) + def unsubscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) - if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - return register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) + curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', uid), ('event_id', '=', ids[0])]) + return register_pool.button_reg_cancel(cr, uid, curr_reg_ids, context=context) def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): @@ -281,7 +276,6 @@ class event_registration(osv.osv): ('cancel', 'Cancelled'), ('done', 'Attended')], 'State', size=16, readonly=True), - 'subscribe': fields.boolean('Subscribe'), } _defaults = { @@ -296,7 +290,7 @@ class event_registration(osv.osv): def confirm_registration(self, cr, uid, ids, context=None): self.message_append(cr, uid, ids,_('State set to open'),body_text= _('Open')) - return self.write(cr, uid, ids, {'state': 'open','subscribe':True}, context=context) + return self.write(cr, uid, ids, {'state': 'open'}, context=context) def registration_open(self, cr, uid, ids, context=None): @@ -323,7 +317,7 @@ class event_registration(osv.osv): def button_reg_cancel(self, cr, uid, ids, context=None, *args): self.message_append(cr, uid, ids,_('State set to Cancel'),body_text= _('Cancel')) - return self.write(cr, uid, ids, {'state': 'cancel','subscribe':False}) + return self.write(cr, uid, ids, {'state': 'cancel'}) def mail_user(self, cr, uid, ids, context=None): """ diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 89be60ea95b..0d72e16e7da 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -169,55 +169,55 @@ - + - - - - - -

- -
-
- - -
-
-
-
-

-

- @
- Organized by
- Only - No ticket available. - - - - tickets - ticket available. - - - -

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

+

+ @
+ Organized by
+ Only + No ticket available. + + + + tickets + ticket + available. + + +

+ + + + + + + + +
+
+
+
@@ -299,7 +299,7 @@ event.event form kanban,calendar,tree,form,graph - {"search_default_upcoming":1} + {"search_default_upcoming":1} Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events. From 236ed739b997c565d452f9ca977e8c79ce643a99 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 29 Mar 2012 10:57:03 +0200 Subject: [PATCH 27/28] [FIX] event: fixed the access rights in order to have that being in the manager group implies being in the user group too bzr revid: qdp-launchpad@openerp.com-20120329085703-419271p8s81cl6zo --- addons/event/security/event_security.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/event/security/event_security.xml b/addons/event/security/event_security.xml index c0eb37d7b84..fb29fffcca9 100644 --- a/addons/event/security/event_security.xml +++ b/addons/event/security/event_security.xml @@ -16,6 +16,7 @@ Manager + From 9d429e4446f059a95079ba6619d2a015f2c2c775 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 29 Mar 2012 12:22:37 +0200 Subject: [PATCH 28/28] [REF] event, event_share: removed the event_share module and replaced by the use of uid=1 in the functions used by the kanban view to subscribe/unsubscribe bzr revid: qdp-launchpad@openerp.com-20120329102237-4q7qjepjutlyet2f --- addons/event/event.py | 13 +++--- addons/event_share/__init__.py | 24 ------------ addons/event_share/__openerp__.py | 35 ----------------- addons/event_share/wizard/__init__.py | 24 ------------ addons/event_share/wizard/wizard_share.py | 48 ----------------------- 5 files changed, 7 insertions(+), 137 deletions(-) delete mode 100644 addons/event_share/__init__.py delete mode 100644 addons/event_share/__openerp__.py delete mode 100644 addons/event_share/wizard/__init__.py delete mode 100644 addons/event_share/wizard/wizard_share.py diff --git a/addons/event/event.py b/addons/event/event.py index bd16194bcef..ce72dadb2cc 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -216,15 +216,16 @@ class event_event(osv.osv): user_pool = self.pool.get('res.users') user = user_pool.browse(cr, uid, uid, context=context) curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) + #the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe if not curr_reg_ids: - curr_reg_ids = [register_pool.create(cr, uid, {'event_id': ids[0] ,'email': user.user_email, - 'name':user.name, 'user_id': user.id,})] - return register_pool.confirm_registration(cr, uid, curr_reg_ids, context=context) + curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id,})] + return register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context) - def unsubscribe_to_event(self,cr,uid,ids,context=None): + def unsubscribe_to_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') - curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', uid), ('event_id', '=', ids[0])]) - return register_pool.button_reg_cancel(cr, uid, curr_reg_ids, context=context) + #the unsubscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to unsubscribe + curr_reg_ids = register_pool.search(cr, 1, [('user_id', '=', uid), ('event_id', '=', ids[0])]) + return register_pool.button_reg_cancel(cr, 1, curr_reg_ids, context=context) def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): diff --git a/addons/event_share/__init__.py b/addons/event_share/__init__.py deleted file mode 100644 index 8dbeda71145..00000000000 --- a/addons/event_share/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import wizard -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/event_share/__openerp__.py b/addons/event_share/__openerp__.py deleted file mode 100644 index f6ad583364a..00000000000 --- a/addons/event_share/__openerp__.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - - -{ - 'name': 'Events Share', - 'version': '0.1', - 'category': 'Tools', - 'complexity': "easy", - 'description': """ """, - 'author': 'OpenERP SA', - 'depends': ['event','share'], - 'installable': True, - #'application': True, - 'auto_install': False, -} -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/event_share/wizard/__init__.py b/addons/event_share/wizard/__init__.py deleted file mode 100644 index d62c6170854..00000000000 --- a/addons/event_share/wizard/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import wizard_share -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/event_share/wizard/wizard_share.py b/addons/event_share/wizard/wizard_share.py deleted file mode 100644 index 5ed940ff05d..00000000000 --- a/addons/event_share/wizard/wizard_share.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2011 OpenERP S.A (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import osv, fields -from tools.translate import _ - -UID_ROOT = 1 -EVENT_ACCESS = ('perm_read', 'perm_write', 'perm_create') - -class share_wizard_event(osv.osv_memory): - """Inherited share wizard to automatically create appropriate - menus in the selected portal upon sharing with a portal group.""" - _inherit = "share.wizard" - - def _add_access_rights_for_share_group(self, cr, uid, group_id, mode, fields_relations, context=None): - """Adds access rights to group_id on object models referenced in ``fields_relations``, - intersecting with access rights of current user to avoid granting too much rights - """ - res = super(share_wizard_event, self)._add_access_rights_for_share_group(cr, uid, group_id, mode, fields_relations, context=context) - access_model = self.pool.get('ir.model.access') - - access_ids = access_model.search(cr,uid,[('group_id','=',group_id)],context = context) - for record in access_model.browse(cr,uid,access_ids,context = context): - if record.model_id.model == 'event.registration': - access_model.write(cr, uid, record.id, {'perm_read': True, 'perm_write': True,'perm_create':True}) - -share_wizard_event() - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file