diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index bf6ef242cc8..ccc0cbd5396 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -167,9 +167,6 @@ class crm_lead(format_address, osv.osv): """ :return dict: difference between current date and log date """ - cal_obj = self.pool.get('resource.calendar') - res_obj = self.pool.get('resource.resource') - res = {} for lead in self.browse(cr, uid, ids, context=context): for field in fields: @@ -181,39 +178,14 @@ class crm_lead(format_address, osv.osv): date_create = datetime.strptime(lead.create_date, "%Y-%m-%d %H:%M:%S") date_open = datetime.strptime(lead.date_open, "%Y-%m-%d %H:%M:%S") ans = date_open - date_create - date_until = lead.date_open elif field == 'day_close': if lead.date_closed: date_create = datetime.strptime(lead.create_date, "%Y-%m-%d %H:%M:%S") date_close = datetime.strptime(lead.date_closed, "%Y-%m-%d %H:%M:%S") - date_until = lead.date_closed ans = date_close - date_create if ans: - resource_id = False - if lead.user_id: - resource_ids = res_obj.search(cr, uid, [('user_id','=',lead.user_id.id)]) - if len(resource_ids): - resource_id = resource_ids[0] - - duration = float(ans.days) - if lead.section_id and lead.section_id.resource_calendar_id: - duration = float(ans.days) * 24 - new_dates = cal_obj.interval_get(cr, - uid, - lead.section_id.resource_calendar_id and lead.section_id.resource_calendar_id.id or False, - datetime.strptime(lead.create_date, '%Y-%m-%d %H:%M:%S'), - duration, - resource=resource_id - ) - no_days = [] - date_until = datetime.strptime(date_until, '%Y-%m-%d %H:%M:%S') - for in_time, out_time in new_dates: - if in_time.date not in no_days: - no_days.append(in_time.date) - if out_time > date_until: - break - duration = len(no_days) - res[lead.id][field] = abs(int(duration)) + duration = abs(int(ans.days)) + res[lead.id][field] = duration return res _columns = { @@ -253,7 +225,7 @@ class crm_lead(format_address, osv.osv): 'day_open': fields.function(_compute_day, string='Days to Open', \ multi='day_open', type="float", store=True), 'day_close': fields.function(_compute_day, string='Days to Close', \ - multi='day_close', type="float", store=True), + multi='day_open', type="float", store=True), 'date_last_stage_update': fields.datetime('Last Stage Update', select=True), # Messaging and marketing diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py index 4f99cadb08a..332cfd4bb41 100644 --- a/addons/website_forum/controllers/main.py +++ b/addons/website_forum/controllers/main.py @@ -73,7 +73,7 @@ class WebsiteForum(http.Controller): forums = Forum.browse(cr, uid, obj_ids, context=context) return request.website.render("website_forum.forum_all", {'forums': forums}) - @http.route('/forum/new', type='http', auth="user", multilang=True, website=True) + @http.route('/forum/new', type='http', auth="user", methods=['POST'], multilang=True, website=True) def forum_create(self, forum_name="New Forum", **kwargs): forum_id = request.registry['forum.forum'].create(request.cr, request.uid, { 'name': forum_name, @@ -220,7 +220,7 @@ class WebsiteForum(http.Controller): request.registry['forum.post'].write(request.cr, request.uid, [question.id], {'favourite_ids': favourite_ids}, context=request.context) return favourite - @http.route('/forum//question//ask_for_close', type='http', auth="user", multilang=True, website=True) + @http.route('/forum//question//ask_for_close', type='http', auth="user", methods=['POST'], multilang=True, website=True) def question_ask_for_close(self, forum, question, **post): check_res = self._has_enough_karma(question.create_uid.id == request.uid and '_karma_modo_close_own' or '_karma_modo_close_all') if not check_res[0]: @@ -261,7 +261,7 @@ class WebsiteForum(http.Controller): }, context=request.context) return werkzeug.utils.redirect("/forum/%s/question/%s" % (slug(forum), slug(question))) - @http.route('/forum//question//reopen', type='http', auth="user", multilang=True, website=True) + @http.route('/forum//question//reopen', type='http', auth="user", methods=['POST'], multilang=True, website=True) def question_reopen(self, forum, question, **kwarg): check_res = self._has_enough_karma(question.create_uid.id == request.uid and '_karma_modo_close_own' or '_karma_modo_close_all') if not check_res[0]: @@ -270,7 +270,7 @@ class WebsiteForum(http.Controller): request.registry['forum.post'].write(request.cr, request.uid, [question.id], {'state': 'active'}, context=request.context) return werkzeug.utils.redirect("/forum/%s/question/%s" % (slug(forum), slug(question))) - @http.route('/forum//question//delete', type='http', auth="user", multilang=True, website=True) + @http.route('/forum//question//delete', type='http', auth="user", methods=['POST'], multilang=True, website=True) def question_delete(self, forum, question, **kwarg): check_res = self._has_enough_karma(question.create_uid.id == request.uid and '_karma_modo_unlink_own' or '_karma_modo_unlink_all') if not check_res[0]: @@ -279,7 +279,7 @@ class WebsiteForum(http.Controller): request.registry['forum.post'].write(request.cr, request.uid, [question.id], {'active': False}, context=request.context) return werkzeug.utils.redirect("/forum/%s/question/%s" % (slug(forum), slug(question))) - @http.route('/forum//question//undelete', type='http', auth="user", multilang=True, website=True) + @http.route('/forum//question//undelete', type='http', auth="user", methods=['POST'], multilang=True, website=True) def question_undelete(self, forum, question, **kwarg): check_res = self._has_enough_karma(question.create_uid.id == request.uid and '_karma_modo_unlink_own' or '_karma_modo_unlink_all') if not check_res[0]: @@ -338,7 +338,7 @@ class WebsiteForum(http.Controller): request.registry['forum.post'].write(cr, uid, [post.id], {'is_correct': not post.is_correct}, context=context) return not post.is_correct - @http.route('/forum//post//delete', type='http', auth="user", multilang=True, website=True) + @http.route('/forum//post//delete', type='http', auth="user", methods=['POST'], multilang=True, website=True) def post_delete(self, forum, post, **kwargs): check_res = self._has_enough_karma(post.create_uid.id == request.uid and '_karma_modo_unlink_own' or '_karma_modo_unlink_all') if not check_res[0]: @@ -548,7 +548,7 @@ class WebsiteForum(http.Controller): }) return request.website.render("website_forum.edit_profile", values) - @http.route('/forum//user//save', type='http', auth="user", multilang=True, website=True) + @http.route('/forum//user//save', type='http', auth="user", methods=['POST'], multilang=True, website=True) def save_edited_profile(self, forum, user, **kwargs): request.registry['res.users'].write(request.cr, request.uid, [user.id], { 'name': kwargs.get('name'), @@ -589,7 +589,7 @@ class WebsiteForum(http.Controller): # Messaging # -------------------------------------------------- - @http.route('/forum//post//comment//convert_to_answer', type='http', auth="public", multilang=True, website=True) + @http.route('/forum//post//comment//convert_to_answer', type='http', auth="public", methods=['POST'], multilang=True, website=True) def convert_comment_to_answer(self, forum, post, comment, **kwarg): body = comment.body request.registry['mail.message'].unlink(request.cr, request.uid, [comment.id], context=request.context) @@ -599,7 +599,7 @@ class WebsiteForum(http.Controller): return self.post_comment(forum, answer, comment=html2plaintext(body)) return self.post_new(forum, question, content=body) - @http.route('/forum//post//convert_to_comment', type='http', auth="user", multilang=True, website=True) + @http.route('/forum//post//convert_to_comment', type='http', auth="user", methods=['POST'], multilang=True, website=True) def convert_answer_to_comment(self, forum, post, **kwarg): values = { 'comment': html2plaintext(post.content), diff --git a/addons/website_forum/views/website_forum.xml b/addons/website_forum/views/website_forum.xml index 75b9fcbd7e7..0e0ada6df48 100644 --- a/addons/website_forum/views/website_forum.xml +++ b/addons/website_forum/views/website_forum.xml @@ -21,9 +21,9 @@ -