From 51647e7515fee1b6e2131cf082ed91bae6c1fd3c Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Tue, 27 Mar 2012 12:39:40 +0530 Subject: [PATCH 001/176] [IMP] add bollean field in project.project for some module bzr revid: sgo@tinyerp.com-20120327070940-238ejuwcrmcz6ax3 --- addons/project/project.py | 1 + addons/project/project_view.xml | 3 ++- addons/project_issue/project_issue.py | 3 ++- addons/project_issue/project_issue_menu.xml | 2 +- addons/project_issue/project_issue_view.xml | 3 +++ addons/project_long_term/project_long_term.py | 1 + addons/project_long_term/project_long_term_view.xml | 11 +++++++++++ addons/project_timesheet/project_timesheet.py | 3 +++ addons/project_timesheet/project_timesheet_view.xml | 5 +++++ 9 files changed, 29 insertions(+), 3 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 9966ad02ee8..48dae1d9880 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -191,6 +191,7 @@ class project(osv.osv): 'warn_header': fields.text('Mail Header', help="Header added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), + 'task': fields.boolean('Task',help = "If you check this field tasks appears in kanban view"), } def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 249bb388117..2a6a7e0bfbc 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -19,11 +19,12 @@ form
- + + diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index b950bfd0b34..a69a944675c 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -489,7 +489,8 @@ class project(osv.osv): _inherit = "project.project" _columns = { 'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), - 'reply_to' : fields.char('Reply-To Email Address', size=256) + 'reply_to' : fields.char('Reply-To Email Address', size=256), + 'issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view") } def _check_escalation(self, cr, uid, ids, context=None): diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml index 086a0c43de3..5023891f6ba 100644 --- a/addons/project_issue/project_issue_menu.xml +++ b/addons/project_issue/project_issue_menu.xml @@ -53,7 +53,7 @@ view_mode="tree,form,calendar,graph" view_type="form"/> - diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 7b753bb988d..e7230ccdaf6 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -370,6 +370,9 @@ form + + + diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 612bd784bb0..13efe602f79 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -217,6 +217,7 @@ class project(osv.osv): _inherit = "project.project" _columns = { 'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"), + 'phase' : fields.boolean('Phase',help = "If you check this field Phases are appears in kanban view") } def schedule_phases(self, cr, uid, ids, context=None): context = context or {} diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 9800c209dd5..78e19b051ff 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -98,6 +98,17 @@ # Project Phase # ------------------------------------------------------ + + Inherit project form : Phase + project.project + form + + + + + + + project.phase.form project.phase diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index db7066505e1..30914410a82 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -29,6 +29,9 @@ from tools.translate import _ class project_project(osv.osv): _inherit = 'project.project' + _columns = { + 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view") + } def onchange_partner_id(self, cr, uid, ids, part=False, context=None): res = super(project_project, self).onchange_partner_id(cr, uid, ids, part, context) if part and res and ('value' in res): diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 0412bdabb38..31c5b451fdf 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -7,6 +7,11 @@ form + + + + + From 92be2313a8f9218bf5971335fa0734e4bffb88b8 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 27 Mar 2012 17:47:34 +0530 Subject: [PATCH 002/176] [IMP]project menu changed,improved form view. bzr revid: kbh@tinyerp.com-20120327121734-92s8h2m1983u5a3t --- addons/project/project_view.xml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index e937b9225a7..9de8757b4fd 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -31,11 +31,20 @@ - + + + + + + + + - + + + @@ -43,12 +52,6 @@ - - - - - - @@ -630,10 +633,10 @@ - + - + From 284b6dc267c7081003121d7c6e8a949b6dc6dd65 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 10:25:31 +0530 Subject: [PATCH 003/176] [IMP]:improved kanban view bzr revid: apa@tinyerp.com-20120328045531-1cykq8x0gryefuv2 --- addons/project/__openerp__.py | 1 + addons/project/project_view.xml | 55 +++++++++++++++++++++- addons/project/static/src/css/project.css | 57 +++++++++++++++++++++++ 3 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 addons/project/static/src/css/project.css diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index 96a7dc4f28f..be4cc607b29 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -70,6 +70,7 @@ Dashboard for project members that includes: 'installable': True, 'auto_install': False, 'application': True, + 'css': ['static/src/css/project.css'], 'certificate': '0075116868317', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 8450dafa5f1..a48b394b1de 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -161,6 +161,57 @@ + + + project.project.kanban + project.project + kanban + + + + + + + +
+
+
+ + +
+ Manager
+
+ + Deadline
+
+
+
+
+

+ + + +
+
+ hrs + + hrs +
+
+ + + + +
+ +
+
+
+
+ +
+
+
project.project.gantt @@ -177,8 +228,8 @@ project.project form [] - tree,form,gantt - + kanban,tree,form,gantt + {} A project contains a set of tasks or issues that will be performed by your resources assigned to it. A project can be hierarchically structured, as a child of a Parent Project. This allows you to design large project structures with different phases spread over the project duration cycle. Each user can set his default project in his own preferences to automatically filter the tasks or issues he usually works on. If you choose to invoice the time spent on a project task, you can find project tasks to be invoiced in the billing section. diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css new file mode 100644 index 00000000000..e8ec4195add --- /dev/null +++ b/addons/project/static/src/css/project.css @@ -0,0 +1,57 @@ + +.oe_project_border{ + border-right: groove; +} + +.progress{ + text-align: le; + width: auto; +} +.oe_project_font{ + color: #000000; + +} +.sequence { +border-bottom: groove; +font-size: 20px; + +} + +.invoiced{ + font-size: 10px; + +} +.oe_project { +width: 70px; +} +.user { +color:rgb(192,192,192); +font-size: 10px; +} +.manager { +font-size: 9px; +} + +.oe_project_buttons { + display: inline-block; + padding: 0px 0px; + background-color: transparent; + border: hidden; + color: #0000FF; + +} + +.oe_project_buttons:hover { + cursor: pointer; + background-size: 100% 100%; +} + +.oe_project_font1{ + + -webkit-margin-before: 0em; +-webkit-margin-after: 0em; +} + +div.oe_fold_column{ + padding:0px !important; +} \ No newline at end of file From 5347fb2f2e3f140dcd9b8b26f7bd519119b8ca78 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 11:34:24 +0530 Subject: [PATCH 004/176] [IMP] bzr revid: apa@tinyerp.com-20120328060424-layr7zdvr7lr04k3 --- addons/project/project_view.xml | 5 +---- addons/project/static/src/img/tasks.png | Bin 0 -> 2545 bytes 2 files changed, 1 insertion(+), 4 deletions(-) create mode 100644 addons/project/static/src/img/tasks.png diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index a48b394b1de..8302c8a8f1f 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -188,9 +188,6 @@

- - -

hrs @@ -201,7 +198,7 @@
- + ()
diff --git a/addons/project/static/src/img/tasks.png b/addons/project/static/src/img/tasks.png new file mode 100644 index 0000000000000000000000000000000000000000..5c5073b16336444ba08f46c364948b95d1000948 GIT binary patch literal 2545 zcmV};7D3^P~!2kdWlSxEDRCt{2n_FyL#TmzcGv~VZb#Smr zVrU=9hpJChs?=wmS{_J6B_L`_N}=UaRiptD zwIB#_E;zvngxHQ9$Ikk?w{y<);p}>M?Iqbg_HI+*zchQiduG1xoB#Rd`)1~hVF^oE z!Z#VB8A^We6-1!TY;t zYhQ(7nAdINx(*|kFY(pIeqQ_ATb^>onga(8e9;K|8twtE&(KiF48E|+C`YNA1=RiY6D2*3u~ zfRzABK_-*I^W2(+OixdulmftUl+^$`fq(=&zmxDxME+XS^}Vj^v=@I@faAhc21ch8 zV`3!^;5rW3Y;czjX}NvBeKNGqlG&DDU8gt`JvRc z&bvCh^jItjfTt8$$0IeFV`wbR=@FYtnI!Ai-NCl4n`Q%Ay||hh=iS3cQTa4G?#{9* z33El|@>$NEJ(<5cI;@m%yMFN!Cu)^nw^h&W(SK=J_Op+E|Hqacj-iwy=jjYjYK)F& zxHK}(vGe1M&A@ja-p(DXZ>v|uJmm9v4jn$i#r^>v*}9TVciaRhB1WF5kp)0`ijO{c z)9Js^_u1H*+`Z2}i&u;6x`%)e^6B-R_gQv0j+>igENydixPytQ8Ae9ZTpF4p@3=hj z-G|tA{{t-6T)-Rmz-55Vh7w};% za_c6*b)B|QBnBu@iW8|-Y~Iqvnzd``>+9q2dxtsR^9dna1>P*sa*S=ga4x}jISFD00!&G7ILQb5v}Mg?Rb&=61v zzbHk-f_vj<`1C3qJoqZRc0EBX(TY+E0gR1}^2x^^(|h)FpP+DvA9Z&Vi6)tuN>xmc zg_MNCaipe`%Vvp0ljL(5GMQ4KD$tB0AOWiI z>0hOUhz<8}hMueN!oEKc(p_#bhuPRNiYfExnnaU=4bgL)ni4(<-Q9$uEx2wD-LM%O z9pTl3e<7q&+!Yc{|63YME=3}oAQ6w(IQzM{EB{^-`^5!*0#7Rz7uHf5V)4Qpr!=$fM(7F z>p-(+f<*=_L~A_$h7P*@DP9+DCp*L-VOPJk#YMFFDhI!95JoyjUT zEgZE;E3cJv(D4sxdS#_55k&%u9oGs)FBFXu0j2%R!n$KIH$)arn!iyCkj|q4A;1Oy zq+X#E$(V&sW#G zKorOqO0H0fXGvz8mU}=s0e0a!mjG>WT>Z&7_RptQt>136uKhNuj?=Dkmn_#L(i4a*78fiTbt+-m6D{;M7OPg>)4%bHCOiEwOL zle+o!aB^8LocTzluJn5^yzl<*R6qX)z5<4TERY5=_+F5wjD)%FZ{c@-E&)-X9as(A z7BXntwN-5C?9e)F-D}u6-df>$!X3D(F28onJNm^4p8@B9FM*5r1Y{@?;82ACN$Gfd z(G!X>K%+7XH0A${0-)kWF@8rK{7z>nJ^hM6s8bprP;w6!pMYvv;6_KWKgA5-;P Date: Wed, 28 Mar 2012 11:35:42 +0530 Subject: [PATCH 005/176] [IMP]improve kanban view bzr revid: sgo@tinyerp.com-20120328060542-v1yizvsrujt0ane7 --- addons/project/project.py | 48 +++++++++++++++++++++++++++++++++ addons/project/project_view.xml | 13 ++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/addons/project/project.py b/addons/project/project.py index 48dae1d9880..21e0c8f6011 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -154,6 +154,14 @@ class project(osv.osv): if proj.tasks: raise osv.except_osv(_('Operation Not Permitted !'), _('You cannot delete a project containing tasks. I suggest you to desactivate it.')) return super(project, self).unlink(cr, uid, ids, *args, **kwargs) + + def _open_task(self, cr, uid, ids, field_name, arg, context=None): + open_task={} + task_pool=self.pool.get('project.task') + for id in ids: + task_ids = task_pool.search(cr, uid, [('project_id', '=', id)]) + open_task[id] = len(task_ids) + return open_task _columns = { 'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250), @@ -192,7 +200,47 @@ class project(osv.osv): 'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'task': fields.boolean('Task',help = "If you check this field tasks appears in kanban view"), + 'open_task': fields.function(_open_task , type='integer',string="Open Tasks"), } + + def open_tasks(self, cr, uid, ids, context=None): + #Open the View for the Tasks for the project + """ + This opens Tasks views + @return :Dictionary value for task view + """ + if context is None: + context = {} + value = {} + data_obj = self.pool.get('ir.model.data') + for project in self.browse(cr, uid, ids, context=context): + # Get Task views + tree_view = data_obj.get_object_reference(cr, uid, 'project', 'view_task_tree2') + form_view = data_obj.get_object_reference(cr, uid, 'project', 'view_task_form2') + calander_view = data_obj.get_object_reference(cr, uid, 'project', 'view_task_calendar') + search_view = data_obj.get_object_reference(cr, uid, 'project', 'view_task_search_form') + kanban_view = data_obj.get_object_reference(cr, uid, 'project', 'view_task_kanban') + context.update({ + #'search_default_user_id': uid, + 'search_default_project_id':project.id, + #'search_default_open':1, + }) + value = { + 'name': _('Task'), + 'context': context, + 'view_type': 'form', + 'view_mode': 'form,tree', + 'res_model': 'project.task', + 'view_id': False, + 'domain':[('project_id','in',ids)], + 'context': context, + 'views': [(kanban_view and kanban_view[1] or False, 'kanban'),(tree_view and tree_view[1] or False, 'tree'),(calander_view and calander_view[1] or False, 'calendar'),(form_view and form_view[1] or False, 'form')], + 'type': 'ir.actions.act_window', + 'search_view_id': search_view and search_view[1] or False, + 'nodestroy': True + } + return value + def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) return ids diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index a48b394b1de..f234f3cb072 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -171,6 +171,8 @@ + +
@@ -200,8 +202,17 @@
+
+ + + + - + + +
From c2e0268fad10175e9d0459a5ee189815c77a4e03 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 28 Mar 2012 11:38:12 +0530 Subject: [PATCH 006/176] [IMP]improved kanban view for project_issue. bzr revid: kbh@tinyerp.com-20120328060812-narvwer99g5ywqsa --- addons/project/project_view.xml | 3 +- addons/project_issue/project_issue.py | 49 ++++++++++++++++++++- addons/project_issue/project_issue_view.xml | 18 ++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index a48b394b1de..ad18981fd3b 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -171,6 +171,7 @@ +
@@ -200,7 +201,7 @@
- diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index a69a944675c..ec7b15881a6 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -487,12 +487,59 @@ project_issue() class project(osv.osv): _inherit = "project.project" + + def _compute_issue(self, cr, uid, ids, field_name, arg, context=None): + res={} + issue_pool=self.pool.get('project.issue') + for project in self.browse(cr, uid, ids, context=context): + issues = issue_pool.search(cr, uid, [('project_id','=',project.id)]) + res[project.id] = len(issues) + return res + _columns = { 'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'reply_to' : fields.char('Reply-To Email Address', size=256), - 'issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view") + 'issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view"), + 'open_issues': fields.function(_compute_issue , store=True,type='integer',string="Issue"), } + def open_issues(self, cr, uid, ids, context=None): + #Open the View for the Tasks for the project + """ + This opens Issues views + @return :Dictionary value for issue view + """ + if context is None: + context = {} + value = {} + data_obj = self.pool.get('ir.model.data') + for project in self.browse(cr, uid, ids, context=context): + # Get Task views + tree_view = data_obj.get_object_reference(cr, uid, 'project_issue', 'project_issue_tree_view') + form_view = data_obj.get_object_reference(cr, uid, 'project_issue', 'project_issue_form_view') + calander_view = data_obj.get_object_reference(cr, uid, 'project_issue', 'project_issue_calendar_view') + search_view = data_obj.get_object_reference(cr, uid, 'project_issue', 'view_project_issue_filter') + kanban_view = data_obj.get_object_reference(cr, uid, 'project_issue', 'project_issue_kanban_view') + context.update({ + #'search_default_user_id': uid, + 'search_default_project_id':project.id + }) + value = { + 'name': _('Issue'), + 'context': context, + 'view_type': 'form', + 'view_mode': 'form,tree', + 'res_model': 'project.issue', + 'view_id': False, + 'domain':[('project_id','in',ids)], + 'context': context, + 'views': [(kanban_view and kanban_view[1] or False, 'kanban'),(tree_view and tree_view[1] or False, 'tree'),(calander_view and calander_view[1] or False, 'calendar'),(form_view and form_view[1] or False, 'form')], + 'type': 'ir.actions.act_window', + 'search_view_id': search_view and search_view[1] or False, + 'nodestroy': True + } + return value + def _check_escalation(self, cr, uid, ids, context=None): project_obj = self.browse(cr, uid, ids[0], context=context) if project_obj.project_escalation_id: diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index fb3aba69f66..fb4d87b3da9 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -380,5 +380,23 @@ + + project.project.kanban.inherited + project.project + kanban + + + + + + + + From 99dceac2a6aaafd348e2d78d7f0bbbb44012d097 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 28 Mar 2012 11:55:32 +0530 Subject: [PATCH 007/176] [IMP]added image for issue. bzr revid: kbh@tinyerp.com-20120328062532-20i5yqodhtf6mkx9 --- addons/project/static/src/img/bug.png | Bin 0 -> 541 bytes addons/project_issue/project_issue_view.xml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 addons/project/static/src/img/bug.png diff --git a/addons/project/static/src/img/bug.png b/addons/project/static/src/img/bug.png new file mode 100644 index 0000000000000000000000000000000000000000..a18278ff5c4db2d97c33fdf2a46dd3ccb3ff44e5 GIT binary patch literal 541 zcmex=WnyMP0&Gkytn3^>IRgO(MrLLv zCRSdUEF%*$3j?bln=_nb-?i?1sgIk^q}ydRnJFbl zG;_t+I0AAH_Dsz&JLPfyPNN}gFe56-#D+3$f zPrDNEIozC@|euvWK{^eg+znA`d zY1jMJS?}!+*3Z>cNjlsW+p_bozNqNY57C=G+tt=dmn From 86c640bd3bcdef3665ae57fba02e9b8c8b98329a Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 12:09:18 +0530 Subject: [PATCH 008/176] [IMP] bzr revid: apa@tinyerp.com-20120328063918-3g46mk5bz8kmhxw3 --- addons/project/project_view.xml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index a2067d54b60..b8e4bc7f910 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -173,13 +173,15 @@ +
- - + + +
Manager
@@ -200,14 +202,14 @@
+
+ + + + + + - + () - +
- - - + + + - - () - + + () +
From 0b24e4c532ee3af80491cae4ed0f487c92ec8e70 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 12:21:36 +0530 Subject: [PATCH 009/176] [IMP] bzr revid: apa@tinyerp.com-20120328065136-lf3eczvgtiyr0hb7 --- addons/project/project_view.xml | 4 ++-- addons/project_issue/project_issue_menu.xml | 2 +- addons/project_issue/project_issue_view.xml | 11 ++++++----- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index b8e4bc7f910..5b6e5a2c302 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -206,9 +206,9 @@
- + - () + diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml index 086a0c43de3..5023891f6ba 100644 --- a/addons/project_issue/project_issue_menu.xml +++ b/addons/project_issue/project_issue_menu.xml @@ -53,7 +53,7 @@ view_mode="tree,form,calendar,graph" view_type="form"/> - diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index e2715813488..5470581314c 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -386,16 +386,17 @@ kanban - + + - + + - () + - + - From 9eefd74b7b5e316de9fc92f5d54de58cb3418510 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 12:37:17 +0530 Subject: [PATCH 010/176] [IMP] bzr revid: apa@tinyerp.com-20120328070717-z4hkm3ip526h73oj --- addons/project/project_view.xml | 2 +- addons/project_issue/project_issue_view.xml | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 5b6e5a2c302..0b2a01e76a8 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -206,7 +206,7 @@
- + diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 5470581314c..a1b3bf19782 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -386,18 +386,13 @@ kanban - - - - - - - - - + + + + From cce28758f59d2199fb377bec4c50e91815ca6478 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Wed, 28 Mar 2012 12:40:59 +0530 Subject: [PATCH 011/176] [imp] bzr revid: sgo@tinyerp.com-20120328071059-mrixwtuksf8ezfzq --- addons/project_long_term/project_long_term.py | 50 ++++++++++++++++++- .../project_long_term_view.xml | 15 ++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 13efe602f79..d54072f1cc7 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -215,10 +215,58 @@ project_user_allocation() class project(osv.osv): _inherit = "project.project" + + def _open_phase(self, cr, uid, ids, field_name, arg, context=None): + open_phase={} + phase_pool=self.pool.get('project.phase') + for id in ids: + phase_ids = phase_pool.search(cr, uid, [('project_id', '=', id)]) + open_phase[id] = len(phase_ids) + return open_phase + _columns = { 'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"), - 'phase' : fields.boolean('Phase',help = "If you check this field Phases are appears in kanban view") + 'phase' : fields.boolean('Phase',help = "If you check this field Phases are appears in kanban view"), + 'open_phases' : fields.function(_open_phase , type='integer',string="Open Phases"), + } + + def open_phase(self, cr, uid, ids, context=None): + #Open the View for the Tasks for the project + """ + This opens Tasks views + @return :Dictionary value for task view + """ + if context is None: + context = {} + value = {} + data_obj = self.pool.get('ir.model.data') + for project in self.browse(cr, uid, ids, context=context): + # Get Task views + tree_view = data_obj.get_object_reference(cr, uid, 'project_long_term', 'view_project_phase_list') + form_view = data_obj.get_object_reference(cr, uid, 'project_long_term', 'view_project_phase_form') + calander_view = data_obj.get_object_reference(cr, uid, 'project_long_term', 'view_project_phase_calendar') + search_view = data_obj.get_object_reference(cr, uid, 'project_long_term', 'view_project_phase_search') + context.update({ + #'search_default_user_id': uid, + 'search_default_project_id':project.id, + #'search_default_open':1, + }) + value = { + 'name': _('Phase'), + 'context': context, + 'view_type': 'form', + 'view_mode': 'form,tree', + 'res_model': 'project.phase', + 'view_id': False, + 'domain':[('project_id','in',ids)], + 'context': context, + 'views': [(tree_view and tree_view[1] or False, 'tree'),(calander_view and calander_view[1] or False, 'calendar'),(form_view and form_view[1] or False, 'form')], + 'type': 'ir.actions.act_window', + 'search_view_id': search_view and search_view[1] or False, + 'nodestroy': True + } + return value def schedule_phases(self, cr, uid, ids, context=None): context = context or {} if type(ids) in (long, int,): diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 7044fe7e635..fe91c4c54ea 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -109,6 +109,21 @@ + + + project.project.kanban.inherited + project.project + kanban + + + + + () + + + + + project.phase.form project.phase From 41adc81a05bf57d48149c8706dd1b7041cebba62 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 12:57:59 +0530 Subject: [PATCH 012/176] revert project_issue/project_issue_menu.xml bzr revid: apa@tinyerp.com-20120328072759-ery2p77v5rataym2 --- addons/project_issue/project_issue_menu.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml index 5023891f6ba..086a0c43de3 100644 --- a/addons/project_issue/project_issue_menu.xml +++ b/addons/project_issue/project_issue_menu.xml @@ -53,7 +53,7 @@ view_mode="tree,form,calendar,graph" view_type="form"/> - From df11d7174a58c9a8bc343dc3fba8d19cefcb767c Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 14:29:27 +0530 Subject: [PATCH 013/176] [IMP] bzr revid: apa@tinyerp.com-20120328085927-hzcw0p32tr94i07i --- addons/project/project_view.xml | 29 ++++++++++--------- addons/project/static/src/css/project.css | 3 +- addons/project_issue/project_issue_view.xml | 2 +- .../project_long_term_view.xml | 2 +- .../project_timesheet_view.xml | 2 +- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 571f378b755..060a1777491 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -193,12 +193,15 @@

-
-
- hrs - - hrs -
+ + + + +
+ + + +
@@ -207,13 +210,13 @@ -
- - - - - - + +
+
+ hrs + + hrs +
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index e8ec4195add..3d8ef752a18 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -38,7 +38,8 @@ font-size: 9px; background-color: transparent; border: hidden; color: #0000FF; - + min-height: 50px; + min-width: 50px;* } .oe_project_buttons:hover { diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index bcb57881e0e..89970f0a77b 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -391,7 +391,7 @@ - + diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index b297be4c2c8..810389da11e 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -121,7 +121,7 @@ - + diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index af5a9a45a3b..304147d7727 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -34,7 +34,7 @@ - + From a48a27a3bb0a1a212c868a175ea831368f02316f Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 15:08:19 +0530 Subject: [PATCH 014/176] [IMP] bzr revid: apa@tinyerp.com-20120328093819-r7xnzw9o13uuvn58 --- addons/project/project_view.xml | 17 ++++++++-------- addons/project/static/src/css/project.css | 24 ++++++++++++----------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 060a1777491..324ac086227 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -191,19 +191,19 @@
-
+

- +
-
+ - +
- +
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 3d8ef752a18..0c1140f0386 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -3,6 +3,10 @@ border-right: groove; } +.oe_project_desc{ + width: 270px; +} + .progress{ text-align: le; width: auto; @@ -12,24 +16,22 @@ } .sequence { -border-bottom: groove; -font-size: 20px; - + border-bottom: groove; + font-size: 20px; } .invoiced{ font-size: 10px; - } .oe_project { -width: 70px; + width: 70px; } .user { -color:rgb(192,192,192); -font-size: 10px; + color:rgb(192,192,192); + font-size: 10px; } .manager { -font-size: 9px; + font-size: 9px; } .oe_project_buttons { @@ -38,7 +40,7 @@ font-size: 9px; background-color: transparent; border: hidden; color: #0000FF; - min-height: 50px; + min-height: 45px; min-width: 50px;* } @@ -50,9 +52,9 @@ font-size: 9px; .oe_project_font1{ -webkit-margin-before: 0em; --webkit-margin-after: 0em; + -webkit-margin-after: 0em; } div.oe_fold_column{ - padding:0px !important; + padding:2px !important; } \ No newline at end of file From 25776d016280b54e2f2c247299c3090d346a5eae Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Wed, 28 Mar 2012 15:16:54 +0530 Subject: [PATCH 015/176] [IMP]add image and sequence bzr revid: sgo@tinyerp.com-20120328094654-d02ntcsu6ghbonva --- addons/project/project_view.xml | 2 +- addons/project/static/src/img/tasks_icon.png | Bin 0 -> 2545 bytes addons/project_issue/project_issue_view.xml | 2 +- .../project_issue/static/src/img/issue_icon.png | Bin 0 -> 5841 bytes .../project_long_term/project_long_term_view.xml | 2 +- .../project_timesheet/project_timesheet_view.xml | 2 +- .../static/src/img/timesheet_icon.png | Bin 0 -> 6712 bytes 7 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 addons/project/static/src/img/tasks_icon.png create mode 100644 addons/project_issue/static/src/img/issue_icon.png create mode 100644 addons/project_timesheet/static/src/img/timesheet_icon.png diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 44c902ff20c..2b18064d57f 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -197,7 +197,7 @@ diff --git a/addons/project/static/src/img/tasks_icon.png b/addons/project/static/src/img/tasks_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5c5073b16336444ba08f46c364948b95d1000948 GIT binary patch literal 2545 zcmV};7D3^P~!2kdWlSxEDRCt{2n_FyL#TmzcGv~VZb#Smr zVrU=9hpJChs?=wmS{_J6B_L`_N}=UaRiptD zwIB#_E;zvngxHQ9$Ikk?w{y<);p}>M?Iqbg_HI+*zchQiduG1xoB#Rd`)1~hVF^oE z!Z#VB8A^We6-1!TY;t zYhQ(7nAdINx(*|kFY(pIeqQ_ATb^>onga(8e9;K|8twtE&(KiF48E|+C`YNA1=RiY6D2*3u~ zfRzABK_-*I^W2(+OixdulmftUl+^$`fq(=&zmxDxME+XS^}Vj^v=@I@faAhc21ch8 zV`3!^;5rW3Y;czjX}NvBeKNGqlG&DDU8gt`JvRc z&bvCh^jItjfTt8$$0IeFV`wbR=@FYtnI!Ai-NCl4n`Q%Ay||hh=iS3cQTa4G?#{9* z33El|@>$NEJ(<5cI;@m%yMFN!Cu)^nw^h&W(SK=J_Op+E|Hqacj-iwy=jjYjYK)F& zxHK}(vGe1M&A@ja-p(DXZ>v|uJmm9v4jn$i#r^>v*}9TVciaRhB1WF5kp)0`ijO{c z)9Js^_u1H*+`Z2}i&u;6x`%)e^6B-R_gQv0j+>igENydixPytQ8Ae9ZTpF4p@3=hj z-G|tA{{t-6T)-Rmz-55Vh7w};% za_c6*b)B|QBnBu@iW8|-Y~Iqvnzd``>+9q2dxtsR^9dna1>P*sa*S=ga4x}jISFD00!&G7ILQb5v}Mg?Rb&=61v zzbHk-f_vj<`1C3qJoqZRc0EBX(TY+E0gR1}^2x^^(|h)FpP+DvA9Z&Vi6)tuN>xmc zg_MNCaipe`%Vvp0ljL(5GMQ4KD$tB0AOWiI z>0hOUhz<8}hMueN!oEKc(p_#bhuPRNiYfExnnaU=4bgL)ni4(<-Q9$uEx2wD-LM%O z9pTl3e<7q&+!Yc{|63YME=3}oAQ6w(IQzM{EB{^-`^5!*0#7Rz7uHf5V)4Qpr!=$fM(7F z>p-(+f<*=_L~A_$h7P*@DP9+DCp*L-VOPJk#YMFFDhI!95JoyjUT zEgZE;E3cJv(D4sxdS#_55k&%u9oGs)FBFXu0j2%R!n$KIH$)arn!iyCkj|q4A;1Oy zq+X#E$(V&sW#G zKorOqO0H0fXGvz8mU}=s0e0a!mjG>WT>Z&7_RptQt>136uKhNuj?=Dkmn_#L(i4a*78fiTbt+-m6D{;M7OPg>)4%bHCOiEwOL zle+o!aB^8LocTzluJn5^yzl<*R6qX)z5<4TERY5=_+F5wjD)%FZ{c@-E&)-X9as(A z7BXntwN-5C?9e)F-D}u6-df>$!X3D(F28onJNm^4p8@B9FM*5r1Y{@?;82ACN$Gfd z(G!X>K%+7XH0A${0-)kWF@8rK{7z>nJ^hM6s8bprP;w6!pMYvv;6_KWKgA5-;P - + diff --git a/addons/project_issue/static/src/img/issue_icon.png b/addons/project_issue/static/src/img/issue_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3ccf0f4bc3ab9f59a7835c3fe00a9c65a6a2a7 GIT binary patch literal 5841 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 b*69BNWj4|W4>=I300000NkvXXu0mjfD;QzH literal 0 HcmV?d00001 diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 810389da11e..ed93a7cda41 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -121,7 +121,7 @@ - + diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index b9e8816802f..50b209b7f46 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -34,7 +34,7 @@ - + diff --git a/addons/project_timesheet/static/src/img/timesheet_icon.png b/addons/project_timesheet/static/src/img/timesheet_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7d421231891a472a0a358f984a02a1c847918685 GIT binary patch literal 6712 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 Date: Wed, 28 Mar 2012 17:26:08 +0530 Subject: [PATCH 016/176] [IMP] bzr revid: apa@tinyerp.com-20120328115608-3js1g89dz510qqqr --- addons/project/project_view.xml | 2 +- addons/project_issue/project_issue_view.xml | 15 +++------------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 9e56a7fd7da..267a316ea22 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -178,7 +178,7 @@ -
    +
    • Total tasks:
    diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 52d034d9a06..128083836cc 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -389,25 +389,16 @@ - - - - - - - - -
      -
    • Total issues:
    • +
        +
      • Issues:
      - - + From 97ea27f53c1b542ad932849e62682f16eb4302ee Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 17:27:09 +0530 Subject: [PATCH 017/176] [IMP] bzr revid: apa@tinyerp.com-20120328115709-z6fg5y02yvxh9f1g --- addons/project/project_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 267a316ea22..0afbb369c65 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -179,7 +179,7 @@
        -
      • Total tasks:
      • +
      • Tasks:
      From 50923b0da3f733afe26db91c9633cee28aa87cbf Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 17:31:00 +0530 Subject: [PATCH 018/176] [IMP] bzr revid: apa@tinyerp.com-20120328120100-vgtcpiphknkrb6nk --- addons/project/static/src/css/project.css | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 0251c5a7167..5e6ac22ba9a 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -54,10 +54,11 @@ display: inline-block; padding: 0px 0px; background-color: transparent; - border: hidden; + /*border: hidden;*/ color: #0000FF; - min-height: 50px; - min-width: 50px;* + min-height: 45px; + min-width: 45px; + text-align: center; } .oe_project_buttons:hover { From b77d3e06bbe945fb17d2c1ba2adebbf81babd54d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 17:39:14 +0530 Subject: [PATCH 019/176] [IMP] bzr revid: apa@tinyerp.com-20120328120914-ukfrhnw03o0o659x --- addons/project/project_view.xml | 4 ++-- addons/project/static/src/css/project.css | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 0afbb369c65..22fac65c6f7 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -213,8 +213,8 @@
@@ -211,11 +211,10 @@ -
-
+
hrs - - hrs + + hrs
- +
From 1ac567d6b040ca551973d3e7e76469a1801ba64e Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 10:02:17 +0530 Subject: [PATCH 022/176] [IMP] bzr revid: apa@tinyerp.com-20120329043217-2i8vxflhy6a0drix --- addons/project/project_view.xml | 6 +++--- addons/project/static/src/css/project.css | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index c030921cdcf..fa2e311e835 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -187,17 +187,17 @@
- +
Manager
- +

diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index c11f927d342..29f207540fb 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -17,7 +17,8 @@ } .sequence { border-bottom: groove; - font-size: 20px; + /*font-size: 20px;*/ + text-align: center; } .project_icon{ @@ -40,7 +41,7 @@ font-size: 10px; } .oe_project { - width: 70px; + width: 55px; } .user { color:rgb(192,192,192); From 6ee64ce686ddcc84fd83ecbc3411d5e0a4234f5a Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 10:14:50 +0530 Subject: [PATCH 023/176] [IMP] bzr revid: apa@tinyerp.com-20120329044450-oirg4eoj0itpjb41 --- .../project_long_term_view.xml | 21 ++++++++++--------- .../project_timesheet_view.xml | 12 +++++------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 4f05ccd9fa3..f3f9e132b1e 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -116,18 +116,19 @@ kanban - - - + + + + + +
    +
  • Phases
  • +
+
+
- +
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 3bc4fe9c7a9..65162fae749 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -32,16 +32,16 @@ - + + - + From fbb16d2a1642750cccd687d5c88ed4e122869414 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Thu, 29 Mar 2012 11:49:55 +0530 Subject: [PATCH 024/176] [IMP]if click on manager avatar it opens form view bzr revid: sgo@tinyerp.com-20120329061955-fu3bhrj8cu137kvs --- addons/project/project.py | 32 ++++++++++++++++++++++++++++++++ addons/project/project_view.xml | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/addons/project/project.py b/addons/project/project.py index e03f80b54b2..c44af563d79 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -241,6 +241,38 @@ class project(osv.osv): } return value + def open_users(self, cr, uid, ids, context=None): + #Open the View for the Tasks for the project + """ + This opens Tasks views + @return :Dictionary value for task view + """ + if context is None: + context = {} + value = {} + data_obj = self.pool.get('ir.model.data') + for project in self.browse(cr, uid, ids, context=context): + # Get Task views + tree_view = data_obj.get_object_reference(cr, uid, 'base', 'view_users_tree') + form_view = data_obj.get_object_reference(cr, uid, 'base', 'view_users_form') + search_view = data_obj.get_object_reference(cr, uid, 'base', 'view_users_search') + + value = { + 'name': _('User'), + 'context': context, + 'view_type': 'form', + 'view_mode': 'form,tree', + 'res_model': 'res.users', + 'view_id': False, + 'context': context, + 'res_id': project.user_id.id, + 'views': [(form_view and form_view[1] or False, 'form'),(tree_view and tree_view[1] or False, 'tree')], + 'type': 'ir.actions.act_window', + 'search_view_id': search_view and search_view[1] or False, + 'nodestroy': True + } + return value + def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) return ids diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index fa2e311e835..ca7fba44713 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -187,7 +187,7 @@
- + From 80d32699f406e99a3e6a3cf564d889e413d46e56 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 11:58:07 +0530 Subject: [PATCH 025/176] [IMP] bzr revid: apa@tinyerp.com-20120329062807-qprri6v7otjufmy3 --- addons/project/project_view.xml | 71 +++++++++++------------ addons/project/static/src/css/project.css | 7 ++- 2 files changed, 37 insertions(+), 41 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index fa2e311e835..62347b81f76 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -176,50 +176,46 @@ - - -
    -
  • Tasks:
  • -
-
- + +
    +
  • Tasks:
  • +
+
-
-
- - - - -
- Manager
-
- -
-
-

-
- - + + diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 5e6ac22ba9a..c11f927d342 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -54,7 +54,7 @@ display: inline-block; padding: 0px 0px; background-color: transparent; - /*border: hidden;*/ + border: hidden; color: #0000FF; min-height: 45px; min-width: 45px; From 10d29e2eaa469c79a917fe9f7ea3ab1cf24ec11c Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 28 Mar 2012 19:05:08 +0530 Subject: [PATCH 020/176] [IMP] bzr revid: apa@tinyerp.com-20120328133508-7y2y7vvhwjrdah00 --- addons/project/project_view.xml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 22fac65c6f7..2a131408b9e 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -187,9 +187,10 @@
- - - + + + +
Manager
@@ -214,7 +215,8 @@
- + + From 10247a1af2e6ec35bc109b8e9338abd36ca91d53 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 09:41:16 +0530 Subject: [PATCH 021/176] [IMP] bzr revid: apa@tinyerp.com-20120329041116-5gg4g6ckexwea575 --- addons/project/project_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 2a131408b9e..c030921cdcf 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -205,7 +205,7 @@
- +
- - - -
- - - -
-
- +
- + + + +
+ + + +
+

+ + + + +
+ + + +
+
+
+ Manager
+
+
+ + + - - - - - - - - -
- +
hrs @@ -231,7 +227,6 @@
- diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 29f207540fb..39e7d506686 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -4,11 +4,12 @@ } .oe_project_desc{ - width: 270px; + width: 250px; } .progress{ - text-align: le; + text-align: right; + vertical-align: middle; width: auto; } .oe_project_font{ @@ -38,7 +39,7 @@ .invoiced{ - font-size: 10px; + font-size: 9px; } .oe_project { width: 55px; From ec7413d1a544f4a24296e0df47afce5680af3f59 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 12:05:29 +0530 Subject: [PATCH 026/176] [IMP] bzr revid: apa@tinyerp.com-20120329063529-a931d8yq6b0mjv6w --- addons/project/project_view.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 62347b81f76..2173ae620a6 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -186,7 +186,8 @@
- +
+
@@ -203,8 +204,10 @@
- Manager
-
+ + Deadline +
+
From b49496e2312afb20b8366d90aa1d8864121e84ec Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 12:50:29 +0530 Subject: [PATCH 027/176] [IMP] bzr revid: apa@tinyerp.com-20120329072029-r1rpuaomkoba3z5v --- addons/project/project_view.xml | 29 +++++++++++++---------- addons/project/static/src/css/project.css | 13 +++++----- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 44535435d30..643b9212358 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -183,14 +183,14 @@
- +
- -
-
-
+
+
+
-
+

@@ -205,25 +205,28 @@
- Deadline -
+
+ Deadline +
+
- - +
- - - - +
hrs hrs
+ +
+ + +
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 39e7d506686..9d674163a7c 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -8,8 +8,7 @@ } .progress{ - text-align: right; - vertical-align: middle; + text-align: left; width: auto; } .oe_project_font{ @@ -23,9 +22,9 @@ } .project_icon{ - width: 35px; + width: 30px; display: block; - height: 35px; + height: 30px; text-align: center; } @@ -49,7 +48,7 @@ font-size: 10px; } .manager { - font-size: 9px; + font-size: 8px; } .oe_project_buttons { @@ -58,8 +57,8 @@ background-color: transparent; border: hidden; color: #0000FF; - min-height: 45px; - min-width: 45px; + min-height: 40px; + min-width: 40px; text-align: center; } From 76a8424ceee9b3a43ae48d529a2394de0d67c28b Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 12:52:48 +0530 Subject: [PATCH 028/176] [IMP] bzr revid: apa@tinyerp.com-20120329072248-dpars22nfcp401ci --- addons/project/project_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 643b9212358..a45eed3f33c 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -183,11 +183,11 @@
- +
-
+
-
+
From 100b279d3db2183dc8a071c6c98d6ac05141f302 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Thu, 29 Mar 2012 14:21:02 +0530 Subject: [PATCH 029/176] [IMP]add default values bzr revid: sgo@tinyerp.com-20120329085102-tnwh2wp4lrtn0vt0 --- addons/project_issue/project_issue.py | 4 ++++ addons/project_long_term/project_long_term.py | 4 +++- addons/project_timesheet/project_timesheet.py | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index ec7b15881a6..fabe4179da1 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -502,6 +502,10 @@ class project(osv.osv): 'issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view"), 'open_issues': fields.function(_compute_issue , store=True,type='integer',string="Issue"), } + + _defaults = { + 'issues' : True, + } def open_issues(self, cr, uid, ids, context=None): #Open the View for the Tasks for the project diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index b92449699a8..05605e38a03 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -230,7 +230,9 @@ class project(osv.osv): 'open_phases' : fields.function(_open_phase , type='integer',string="Open Phases"), } - + _defaults = { + 'phases' : True, + } def open_phase(self, cr, uid, ids, context=None): #Open the View for the Tasks for the project """ diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index be736c58986..c7c43f98bdd 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -32,6 +32,9 @@ class project_project(osv.osv): _columns = { 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view") } + _defaults = { + 'timesheets' : True, + } def onchange_partner_id(self, cr, uid, ids, part=False, context=None): res = super(project_project, self).onchange_partner_id(cr, uid, ids, part, context) if part and res and ('value' in res): From 5ebf8f6da9424584667a83fe6b558828369649c3 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 14:26:45 +0530 Subject: [PATCH 030/176] [IMP] bzr revid: apa@tinyerp.com-20120329085645-5104gkrxgu13ohhj --- addons/project/project_view.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index a45eed3f33c..02e2f1ab291 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -32,9 +32,7 @@ - - @@ -171,7 +169,7 @@ - + @@ -191,7 +189,10 @@
-

+

+
...
+ +

From 230408269ff20dfbd330866d7fc0956189337cc4 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Thu, 29 Mar 2012 14:28:29 +0530 Subject: [PATCH 031/176] [IMP] bzr revid: sgo@tinyerp.com-20120329085829-7iedyzckkfcxfd2k --- addons/project_timesheet/project_timesheet_view.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 65162fae749..e762f9d3413 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -44,6 +44,10 @@ + + Amt to inv. +
+
From 8759b2eed364b0aed6e262400e5eb70ffd975c2a Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Thu, 29 Mar 2012 15:03:16 +0530 Subject: [PATCH 032/176] [IMP]add hours to invoice bzr revid: sgo@tinyerp.com-20120329093316-7jlbg3eqi8bexm8f --- addons/project_timesheet/project_timesheet_view.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 7d58bddac9f..43598ff2da1 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -31,6 +31,8 @@ + + @@ -47,7 +49,11 @@
To invoice -
+
+
+
+ Hours +
h
From 7c072af98f74530d0bdb047646127fc713022dde Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 16:12:58 +0530 Subject: [PATCH 033/176] [IMP] bzr revid: apa@tinyerp.com-20120329104258-hrc0jn0ysuafzigl --- addons/project/project_view.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 2ee0bac76ab..535766fade0 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -215,15 +215,14 @@
- -
+
hrs hrs
-
+ From 829ec0a2d02dde8ce3b00f9564936a9b2ed83d85 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 16:25:52 +0530 Subject: [PATCH 034/176] [IMP] bzr revid: apa@tinyerp.com-20120329105552-yf4edx77rzlleonn --- addons/project/static/src/css/project.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 9d674163a7c..62b97beadb2 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -74,5 +74,5 @@ } div.oe_fold_column{ - padding:2px !important; + padding:0px !important; } \ No newline at end of file From 2f042dc4330c86e6546c7c6f2b8250788d287573 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 16:53:07 +0530 Subject: [PATCH 035/176] [IMP] bzr revid: apa@tinyerp.com-20120329112307-muo085udc4dh3oi5 --- addons/project/static/src/css/project.css | 10 ++++++++++ addons/project_timesheet/project_timesheet.py | 4 ++-- .../project_timesheet/project_timesheet_view.xml | 15 +++++++++++---- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 62b97beadb2..28bc351df28 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,3 +1,13 @@ +.oe_to_invoice_buttons { + min-height: 30px; + min-width: 50px; + vertical-align: baseline; +} + +.oe_to_invoice_buttons:hover { + cursor: pointer; +} + .oe_project_border{ border-right: groove; diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index c7c43f98bdd..ff64e08c5e1 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -63,7 +63,7 @@ class project_project(osv.osv): search_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_search_account_inherit') context.update({ #'search_default_user_id': uid, - 'search_default_project_id':project.id, + 'search_default_account_id':project.id, #'search_default_open':1, }) value = { @@ -74,7 +74,7 @@ class project_project(osv.osv): 'res_model': 'account.analytic.line', 'view_id': False, # 'domain':[('project_id','=', context.get('active_id',False))], - 'context': context, + #'context': context, 'views': [(tree_view and tree_view[1] or False, 'tree'),(form_view and form_view[1] or False, 'form')], 'type': 'ir.actions.act_window', 'search_view_id': search_view and search_view[1] or False, diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 7d58bddac9f..c396935610f 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -45,10 +45,17 @@ -
- To invoice -
-
+ +
+ +
+
From 9aa3b59b2f1d0f471cfd27b6ca6e91c77b4e1881 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 17:49:31 +0530 Subject: [PATCH 036/176] [IMP] bzr revid: apa@tinyerp.com-20120329121931-w3e4bclwmuhhzsg2 --- addons/project/project_view.xml | 12 +++++++----- addons/project/static/src/css/project.css | 6 ++++-- addons/project_timesheet/project_timesheet_view.xml | 7 +++---- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 535766fade0..b27e9dcbd1d 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -186,6 +186,10 @@

+ + Deadline +
+
@@ -204,12 +208,10 @@
- -
- Deadline -
+
+ +
-
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 28bc351df28..7e5869d80fe 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,7 +1,8 @@ .oe_to_invoice_buttons { - min-height: 30px; + min-height: 60px; min-width: 50px; - vertical-align: baseline; + vertical-align: top; + } .oe_to_invoice_buttons:hover { @@ -26,6 +27,7 @@ } .sequence { + padding-bottom: 4px !important; border-bottom: groove; /*font-size: 20px;*/ text-align: center; diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index c396935610f..c945223cd10 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -44,14 +44,13 @@ - +
From f221ede36a34b83ff86fbcaf653c40b08f3f1313 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Thu, 29 Mar 2012 18:06:59 +0530 Subject: [PATCH 037/176] [IMP] bzr revid: sgo@tinyerp.com-20120329123659-xun8tan1r0727wca --- addons/project/static/src/css/project.css | 4 ++-- addons/project_timesheet/project_timesheet_view.xml | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 7e5869d80fe..a17cadd45e3 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,6 +1,6 @@ .oe_to_invoice_buttons { - min-height: 60px; - min-width: 50px; + min-height: 50px; + min-width: 40px; vertical-align: top; } diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 2c586ace272..14924c2ce0f 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -56,7 +56,10 @@
- +
+ Hours +
+
From 2c152b00813557aaa10d2a1f98548f350f3b99c0 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Thu, 29 Mar 2012 18:16:11 +0530 Subject: [PATCH 038/176] [IMP]css changed bzr revid: kbh@tinyerp.com-20120329124611-l3j2zw8i3j9f1tcd --- addons/project/project_view.xml | 6 ++-- addons/project/static/src/css/project.css | 42 +++++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index b27e9dcbd1d..cb90abb5c5c 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -215,16 +215,16 @@
- +
- - -
+
hrs hrs
+ diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index a17cadd45e3..627b0e951b7 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -48,7 +48,49 @@ text-align: center; } +.project_table{ + border:0; + width:350px; +} +.td_image{ + width:60px; + text-align:center; + vertical-align:top; +} +.avatar{ + height:40px; + width:40px; +} +.td_name{ + text-align:left; + vertical-align:middle; + width:220px; +} +.td_deadline{ + width:70px; + vertical-align:top; + text-align:right; +} +.td_member{ + text-align:right; + vertical-align:bottom; + width:130px; + height:20px; +} +.td_member_img{ + height:22px; + width:22px; +} +.td_hours{ + text-align:left; + vertical-align:bottom; + width:120px +} +.task{ + text-align:left; + vertical-align:middle; +} .invoiced{ font-size: 9px; } From adbc6474a4a83c1193e41c52fb8bd8edae94c619 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Thu, 29 Mar 2012 18:25:27 +0530 Subject: [PATCH 039/176] [IMP]css bzr revid: kbh@tinyerp.com-20120329125527-8ljx3njrkjvdes8c --- addons/project/project_view.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index cb90abb5c5c..0b3c04f1cd4 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -181,24 +181,24 @@
- +
- - - diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 627b0e951b7..1dc146d7463 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -82,6 +82,10 @@ height:22px; width:22px; } +.img_member{ + height:20px; + width:20px; +} .td_hours{ text-align:left; vertical-align:bottom; From 60db095a88197692bd07c8ea797eefc5346feb97 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 18:40:30 +0530 Subject: [PATCH 041/176] [IMP] bzr revid: apa@tinyerp.com-20120329131030-vjfix4ygwcyrs90w --- addons/project/project_view.xml | 16 ++++++------- addons/project/static/src/css/project.css | 3 +-- .../project_timesheet_view.xml | 24 +++++++++---------- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 53ccca7f0aa..1e3796d5e04 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -186,11 +186,7 @@ +
-
+
+
Deadline
+

...

- - +
+
@@ -207,7 +207,7 @@
+
From 6439f4cba7a101a4bcb70014bd492719681c5937 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Thu, 29 Mar 2012 18:30:38 +0530 Subject: [PATCH 040/176] [IMP]css bzr revid: kbh@tinyerp.com-20120329130038-2phw98jzf4arxxsk --- addons/project/project_view.xml | 2 +- addons/project/static/src/css/project.css | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 0b3c04f1cd4..53ccca7f0aa 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -226,7 +226,7 @@
- +

- - Deadline -
-
-

@@ -207,11 +203,13 @@

-
- - +
+ +
+ Deadline +
+
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 1dc146d7463..54299eff356 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -69,8 +69,7 @@ } .td_deadline{ width:70px; - vertical-align:top; - text-align:right; + text-align:center; } .td_member{ text-align:right; diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 14924c2ce0f..d9ac00d4a7d 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -46,20 +46,20 @@ - + -
- -
+ + + + + + + +
- Hours -
-
+ Hours +
h
+
From 299d0463e958ba35d9b11a59df42cf3d88b2126b Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 29 Mar 2012 19:03:04 +0530 Subject: [PATCH 042/176] [IMP] bzr revid: apa@tinyerp.com-20120329133304-v225x3lbowhqyoad --- addons/project/project_view.xml | 27 ++++++++++++------- addons/project/static/src/css/project.css | 17 +++++------- .../project_timesheet_view.xml | 21 ++++++++------- 3 files changed, 37 insertions(+), 28 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 1e3796d5e04..9b3b3106fc5 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -184,8 +184,10 @@ + + +
-
-
+
+
+
+
@@ -200,10 +202,17 @@
+ + + +
+
Deadline @@ -215,18 +224,18 @@
- - + + + + +
+
hrs hrs
- - - -
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 54299eff356..9657edf43ad 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -17,9 +17,7 @@ .oe_project_desc{ width: 250px; } - .progress{ - text-align: left; width: auto; } .oe_project_font{ @@ -28,6 +26,7 @@ } .sequence { padding-bottom: 4px !important; + padding-top: 3px !important; border-bottom: groove; /*font-size: 20px;*/ text-align: center; @@ -49,14 +48,12 @@ } .project_table{ - border:0; - width:350px; + width:350px; } .td_image{ - width:60px; - text-align:center; - vertical-align:top; - + width:60px; + text-align:center; + vertical-align:top; } .avatar{ height:40px; @@ -86,7 +83,7 @@ width:20px; } .td_hours{ - text-align:left; + text-align:right; vertical-align:bottom; width:120px } @@ -95,7 +92,7 @@ vertical-align:middle; } .invoiced{ - font-size: 9px; + font-size: 10px; } .oe_project { width: 55px; diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index d9ac00d4a7d..43868f69037 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -46,21 +46,24 @@
- + - - - - - - - - +
Hours
h
+ +
+ +
+
From 90065c1a88acab2ca031bae80dd0b5404612bb85 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 11:23:12 +0530 Subject: [PATCH 043/176] [IMP] bzr revid: apa@tinyerp.com-20120330055312-b48taam1vr3l0d6s --- addons/project/project_view.xml | 4 ++-- addons/project/static/src/css/project.css | 5 +++-- addons/project_timesheet/project_timesheet_view.xml | 10 ++++------ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 9b3b3106fc5..368e360021a 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -192,7 +192,7 @@

-
...
+
...

@@ -224,7 +224,7 @@
- - +
+
hrs diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 9657edf43ad..f49cb9133ec 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -12,6 +12,7 @@ .oe_project_border{ border-right: groove; + border-left: groove; } .oe_project_desc{ @@ -83,7 +84,7 @@ width:20px; } .td_hours{ - text-align:right; + text-align:center; vertical-align:bottom; width:120px } @@ -122,7 +123,7 @@ } .oe_project_font1{ - + padding-left: 2px !important; -webkit-margin-before: 0em; -webkit-margin-after: 0em; } diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 43868f69037..1acf42f22e6 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -47,12 +47,10 @@ - - -
- Hours -
h
-
+
+ Hours +
h
+
From 355f15b4560cd431bd617b53a7d20adfb1a61e01 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Fri, 30 Mar 2012 11:24:19 +0530 Subject: [PATCH 044/176] [IMP] bzr revid: sgo@tinyerp.com-20120330055419-0h6vm6szysfn3fez --- addons/project_timesheet/project_timesheet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index ff64e08c5e1..2780f71271f 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -63,7 +63,7 @@ class project_project(osv.osv): search_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_search_account_inherit') context.update({ #'search_default_user_id': uid, - 'search_default_account_id':project.id, + 'search_default_account_id':project.analytic_account_id.id, #'search_default_open':1, }) value = { From f499855684def050a720649617739184ab2b456b Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 11:25:11 +0530 Subject: [PATCH 045/176] [IMP] bzr revid: apa@tinyerp.com-20120330055511-q20cwqvs6w4owroy --- addons/project/project_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 368e360021a..869e169a9cd 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -190,7 +190,7 @@
-
+

...

From 2ba790b37ebcd1a202d1cc729fb9bbee3cb829af Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 11:30:38 +0530 Subject: [PATCH 046/176] [IMP] bzr revid: apa@tinyerp.com-20120330060038-701xyjxjaqmg1v6t --- addons/project/project_view.xml | 2 +- addons/project/static/src/css/project.css | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 869e169a9cd..368e360021a 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -190,7 +190,7 @@
-
+

...

diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index f49cb9133ec..0ef0db96ed6 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -14,7 +14,9 @@ border-right: groove; border-left: groove; } - +.oe_project_font:hover{ + text-decoration: underline; +} .oe_project_desc{ width: 250px; } From 7b2b46b741a5fc1d4f34d4e1c428f8dc9018a103 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 11:54:13 +0530 Subject: [PATCH 047/176] [IMP] bzr revid: apa@tinyerp.com-20120330062413-9i7xyo9yh63zrdst --- addons/project/project_view.xml | 2 +- addons/project/static/src/css/project.css | 6 +++--- addons/project_timesheet/project_timesheet_view.xml | 11 +++++------ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 368e360021a..7ac3d1769d2 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -192,7 +192,7 @@

-
...
+
...

diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 0ef0db96ed6..cab3f404e17 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,6 +1,6 @@ .oe_to_invoice_buttons { - min-height: 50px; - min-width: 40px; + min-height: 30px; + min-width: 70px; vertical-align: top; } @@ -105,7 +105,7 @@ font-size: 10px; } .manager { - font-size: 8px; + font-size: 9px; } .oe_project_buttons { diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 1acf42f22e6..1a5a3da7e6b 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -54,12 +54,11 @@
- + To invoice +
+
+
+
From 21196f57edda8fe905a4e716e031e51ccacc5e51 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 12:40:00 +0530 Subject: [PATCH 048/176] [IMP] bzr revid: apa@tinyerp.com-20120330071000-pbdqqj6pylvrghx6 --- addons/project/static/src/css/project.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index cab3f404e17..c5c0a243c9c 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,5 +1,5 @@ .oe_to_invoice_buttons { - min-height: 30px; + min-height: 33px; min-width: 70px; vertical-align: top; @@ -106,6 +106,7 @@ } .manager { font-size: 9px; + font: bold; } .oe_project_buttons { From 25268a28abbe33a7d7b7dbfb630b63e7ab01d4c6 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 12:41:44 +0530 Subject: [PATCH 049/176] [IMP] bzr revid: apa@tinyerp.com-20120330071144-5xrfdzdx27342hxq --- addons/project/static/src/css/project.css | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index c5c0a243c9c..2e8fcca08e3 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -25,6 +25,7 @@ } .oe_project_font{ color: #000000; + padding-left: 5px !important; } .sequence { From 47ab29c93ca87183a770cdac0e126bac231b71c1 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 12:54:25 +0530 Subject: [PATCH 050/176] [IMP] bzr revid: apa@tinyerp.com-20120330072425-7tf4uffzmxak8k19 --- addons/project/project_view.xml | 2 +- addons/project/static/src/css/project.css | 2 +- addons/project_timesheet/project_timesheet_view.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 7ac3d1769d2..bdd593f424b 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -216,7 +216,7 @@
Deadline -
+
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 2e8fcca08e3..4078e3f01be 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -107,7 +107,7 @@ } .manager { font-size: 9px; - font: bold; + font: bolder; } .oe_project_buttons { diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 1a5a3da7e6b..f2a0581cc36 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -49,13 +49,13 @@
Hours -
h
+
h
To invoice -
+
From 5d628773b96ee5a60257f5b852d48b34abbf0983 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 12:56:39 +0530 Subject: [PATCH 051/176] [IMP] bzr revid: apa@tinyerp.com-20120330072639-rum5zrqdskny157t --- addons/project_timesheet/project_timesheet_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index f2a0581cc36..53ef32ecd36 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -48,7 +48,7 @@
- Hours + Remaining Hours
h
From a5542944f94998434db1f75fd58845023d6ddb7e Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 12:59:33 +0530 Subject: [PATCH 052/176] [IMP] bzr revid: apa@tinyerp.com-20120330072933-syjdkqs7excirqtn --- addons/project/static/src/css/project.css | 1 - addons/project_timesheet/project_timesheet_view.xml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 4078e3f01be..4e1b5e5ad3a 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -107,7 +107,6 @@ } .manager { font-size: 9px; - font: bolder; } .oe_project_buttons { diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 53ef32ecd36..11863c6507c 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -55,7 +55,7 @@
To invoice -
+
From f9398e1384d873b4311a4668e0e9b5dc0cc184ab Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 13:59:48 +0530 Subject: [PATCH 053/176] [IMP] bzr revid: apa@tinyerp.com-20120330082948-d0wl0n1f64j80lo3 --- addons/project/static/src/css/project.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 4e1b5e5ad3a..d6ff6ef8695 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -132,5 +132,5 @@ } div.oe_fold_column{ - padding:0px !important; + padding:2px !important; } \ No newline at end of file From c39ec15984770913feefa7f17b81c8e0ac5b13d5 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Fri, 30 Mar 2012 14:10:59 +0530 Subject: [PATCH 054/176] [IMP] bzr revid: sgo@tinyerp.com-20120330084059-d0vfd8s1c4sw0got --- addons/project_timesheet/project_timesheet.py | 6 +++++- addons/project_timesheet/project_timesheet_view.xml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 2780f71271f..e9e53b1a131 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -30,7 +30,7 @@ class project_project(osv.osv): _inherit = 'project.project' _columns = { - 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view") + 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view"), } _defaults = { 'timesheets' : True, @@ -56,6 +56,10 @@ class project_project(osv.osv): context = {} value = {} data_obj = self.pool.get('ir.model.data') + if context.get('btn'): + context.update({ + 'search_default_to_invoice':1, + }) for project in self.browse(cr, uid, ids, context=context): # Get Timesheet views tree_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_tree_inherit_account_id') diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 11863c6507c..3801b0dce81 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -58,7 +58,7 @@
- +
From 67255539f974d5d063f7addd85d875179b96c954 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 14:46:03 +0530 Subject: [PATCH 055/176] [IMP] bzr revid: apa@tinyerp.com-20120330091603-c46u2zcdjiddpogq --- addons/project_timesheet/project_timesheet.py | 11 +++-------- addons/project_timesheet/project_timesheet_view.xml | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index e9e53b1a131..7fd6b9efb1b 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -56,19 +56,16 @@ class project_project(osv.osv): context = {} value = {} data_obj = self.pool.get('ir.model.data') - if context.get('btn'): - context.update({ - 'search_default_to_invoice':1, - }) + to_invoice = False + if context.get('invoice'):to_invoice = context.get('invoice') for project in self.browse(cr, uid, ids, context=context): # Get Timesheet views tree_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_tree_inherit_account_id') form_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_form_inherit_account_id') search_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_search_account_inherit') context.update({ - #'search_default_user_id': uid, + 'search_default_to_invoice': to_invoice, 'search_default_account_id':project.analytic_account_id.id, - #'search_default_open':1, }) value = { 'name': _('Bill Tasks Works'), @@ -77,8 +74,6 @@ class project_project(osv.osv): 'view_mode': 'form,tree', 'res_model': 'account.analytic.line', 'view_id': False, - # 'domain':[('project_id','=', context.get('active_id',False))], - #'context': context, 'views': [(tree_view and tree_view[1] or False, 'tree'),(form_view and form_view[1] or False, 'form')], 'type': 'ir.actions.act_window', 'search_view_id': search_view and search_view[1] or False, diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 3801b0dce81..fa59e2ee5e1 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -58,7 +58,7 @@
- +
From da2e47979e0b477285603798c5b9a40ce8e42699 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 16:32:14 +0530 Subject: [PATCH 056/176] [IMP] bzr revid: apa@tinyerp.com-20120330110214-gy1g9fwt03dydcoh --- addons/project/project_view.xml | 20 ++++++++++++------- addons/project/static/src/css/project.css | 1 + .../project_timesheet_view.xml | 12 +++++------ 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index bdd593f424b..84045b2992b 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -188,9 +188,15 @@
+ +
+ Deadline +
+
+
-
+

...

@@ -213,12 +219,12 @@
- -
- Deadline -
-
-
+ + + + + +
diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index d6ff6ef8695..9aa559bfb13 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -36,6 +36,7 @@ text-align: center; } + .project_icon{ width: 30px; display: block; diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index fa59e2ee5e1..19e0316715c 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -46,20 +46,18 @@ - -
- Remaining Hours -
h
-
-
To invoice
- + Remaining Hours +
h
+ + +
From 45a71c9c35f0a93876215bff7e678652f483c32a Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 16:44:40 +0530 Subject: [PATCH 057/176] [IMP] bzr revid: apa@tinyerp.com-20120330111440-fcrsgemdp53e8ocs --- addons/project/project_view.xml | 6 ++--- .../project_timesheet_view.xml | 27 ++++++++++++------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 84045b2992b..0e01df8848d 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -198,7 +198,7 @@

-
...
+
...

@@ -218,14 +218,14 @@
+ -
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 19e0316715c..20c5d67e081 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -41,20 +41,29 @@ + + +

+
...
+

+
+ - -
- To invoice -
-
-
- Remaining Hours -
h
-
+ +
From d0214c4e45f05833097ee90f6fdb0676874126bc Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Fri, 30 Mar 2012 17:17:05 +0530 Subject: [PATCH 058/176] [IMP]calculate amt to invoice and display on kanban view bzr revid: sgo@tinyerp.com-20120330114705-kgecxihkih0ftmvj --- addons/project_timesheet/project_timesheet.py | 16 ++++++++++++++++ .../project_timesheet/project_timesheet_view.xml | 7 +++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index e9e53b1a131..b96d7b0471a 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -29,12 +29,28 @@ from tools.translate import _ class project_project(osv.osv): _inherit = 'project.project' + def _amt_to_invoiced(self, cr, uid, ids,field_name, arg, context=None): + res = {} + task_pool=self.pool.get('project.task') + for id in ids: + task_ids = task_pool.search(cr, uid, [('project_id', '=', id)]) + total = 0.0 + project_record = self.browse(cr,uid,id) + acc_model = self.pool.get("account.analytic.line") + acc_id = acc_model.search(cr, uid, [('account_id', '=', project_record.analytic_account_id.id),('to_invoice', '=', 1),('invoice_id', '=', False)]) + if acc_id: + for record in acc_model.browse(cr,uid,acc_id): + total += record.amount + res[id]= total + return res _columns = { 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view"), + 'to_amt_invoice': fields.function(_amt_to_invoiced,string="Open Tasks") } _defaults = { 'timesheets' : True, } + def onchange_partner_id(self, cr, uid, ids, part=False, context=None): res = super(project_project, self).onchange_partner_id(cr, uid, ids, part, context) if part and res and ('value' in res): diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 3801b0dce81..d600611153e 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -8,7 +8,8 @@ - + + @@ -33,6 +34,7 @@ + @@ -45,6 +47,7 @@ +
@@ -55,7 +58,7 @@
To invoice -
+
From 573342ec062cceb7c20dc78838907f90ea183351 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 17:17:23 +0530 Subject: [PATCH 059/176] [IMP] bzr revid: apa@tinyerp.com-20120330114723-0jkanie1x1vn148y --- addons/project_issue/project_issue.py | 2 +- addons/project_issue/project_issue_view.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 0c9b3079f25..2e426eb5f1e 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -500,7 +500,7 @@ class project(osv.osv): 'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'reply_to' : fields.char('Reply-To Email Address', size=256), 'issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view"), - 'total_issues': fields.function(_compute_issue , store=True,type='integer',string="Issue"), + 'total_issues': fields.function(_compute_issue , type='integer',string="Issue"), } _defaults = { diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index fa3a5ce9505..44a772b328b 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -388,6 +388,7 @@ + From e7db374b457b7c0d6632d385c2b3db811208d6d0 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 17:19:09 +0530 Subject: [PATCH 060/176] [IMP] bzr revid: apa@tinyerp.com-20120330114909-3goa78ghbwtudsf1 --- addons/project_timesheet/project_timesheet_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 20c5d67e081..d4ac405c4e8 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -60,7 +60,7 @@
- Remaining Hours + Rem. Hours
h
From 53e1f2a4272a2f6db524ae4eaa54ea0c9da7325f Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 17:34:11 +0530 Subject: [PATCH 061/176] [IMP] bzr revid: apa@tinyerp.com-20120330120411-ddorwd83ocdb2qsw --- addons/project_timesheet/project_timesheet.py | 24 +++++++++---------- .../project_timesheet_view.xml | 7 +++--- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 1783d871334..0a9cb910b45 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -29,23 +29,21 @@ from tools.translate import _ class project_project(osv.osv): _inherit = 'project.project' - def _amt_to_invoiced(self, cr, uid, ids,field_name, arg, context=None): + def _amt_to_invoice(self, cr, uid, ids,field_name, arg, context=None): res = {} - task_pool=self.pool.get('project.task') - for id in ids: - task_ids = task_pool.search(cr, uid, [('project_id', '=', id)]) - total = 0.0 - project_record = self.browse(cr,uid,id) - acc_model = self.pool.get("account.analytic.line") - acc_id = acc_model.search(cr, uid, [('account_id', '=', project_record.analytic_account_id.id),('to_invoice', '=', 1),('invoice_id', '=', False)]) - if acc_id: - for record in acc_model.browse(cr,uid,acc_id): - total += record.amount - res[id]= total + aal_pool = self.pool.get("account.analytic.line") + for project in self.browse(cr,uid,ids,context=context): + line_ids = aal_pool.search(cr, uid, [('account_id','=',project.analytic_account_id.id),('to_invoice','=',1),('invoice_id','=',False)]) + amt_to_invoice = 0.0 + if line_ids: + for line in aal_pool.browse(cr,uid,line_ids,context=context): + amt_to_invoice += line.amount + res[project.id] = (amt_to_invoice)*-1 return res + _columns = { 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view"), - 'to_amt_invoice': fields.function(_amt_to_invoiced,string="Open Tasks") + 'amt_to_invoice': fields.function(_amt_to_invoice,string="Amount to Invoice") } _defaults = { 'timesheets' : True, diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 3be2a8437ac..a20400c6f2e 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -9,7 +9,7 @@ - + @@ -34,7 +34,7 @@ - + @@ -54,13 +54,12 @@ -
+
+ To invoice +
+
+
+ Remaining Hours +
h
+
+
To invoice -
+
Rem. Hours From 590e529d655dfa6662eb01e5923dec373d3433ed Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 17:39:41 +0530 Subject: [PATCH 062/176] [IMP] bzr revid: apa@tinyerp.com-20120330120941-e7emkrpt6mzxyxu3 --- addons/project/project_view.xml | 13 ------------- addons/project_timesheet/project_timesheet.py | 4 +--- addons/project_timesheet/project_timesheet_view.xml | 7 +------ 3 files changed, 2 insertions(+), 22 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 0e01df8848d..7fe0ee5f6dc 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -218,14 +218,6 @@
@@ -237,11 +229,6 @@ hrs - - - - -
diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 0a9cb910b45..fa64f266f1e 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -70,15 +70,13 @@ class project_project(osv.osv): context = {} value = {} data_obj = self.pool.get('ir.model.data') - to_invoice = False - if context.get('invoice'):to_invoice = context.get('invoice') + for project in self.browse(cr, uid, ids, context=context): # Get Timesheet views tree_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_tree_inherit_account_id') form_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_form_inherit_account_id') search_view = data_obj.get_object_reference(cr, uid, 'project_timesheet', 'view_account_analytic_line_search_account_inherit') context.update({ - 'search_default_to_invoice': to_invoice, 'search_default_account_id':project.analytic_account_id.id, }) value = { diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index a20400c6f2e..51933f9ff7f 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -43,13 +43,11 @@ -

...

- @@ -62,13 +60,10 @@
- Rem. Hours + Hr. to invoice
h
- - -
From c3651820db27125b038940311b4343e9e85ecf42 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 17:50:29 +0530 Subject: [PATCH 063/176] [IMP] bzr revid: apa@tinyerp.com-20120330122029-gjnf3yz2za24n939 --- addons/project_timesheet/project_timesheet_view.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 51933f9ff7f..7366b3a5493 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -56,11 +56,14 @@
- To invoice + To invoice +
+
+ Amount
- Hr. to invoice + Hours
h
From f782026d24f1b50823255e9ac1710b1c19752eba Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Fri, 30 Mar 2012 18:13:12 +0530 Subject: [PATCH 064/176] [IMP]default project_id added. bzr revid: kbh@tinyerp.com-20120330124312-loiwpuur2hq8nivz --- addons/project/project.py | 1 + addons/project_issue/project_issue.py | 4 +++- addons/project_long_term/project_long_term.py | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/project/project.py b/addons/project/project.py index c44af563d79..d11c76ed9c9 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -758,6 +758,7 @@ class task(osv.osv): 'sequence': 10, 'active': True, 'user_id': lambda obj, cr, uid, context: uid, + 'project_id':lambda self, cr, uid, context: context.get('active_id',False), 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=c) } diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 2e426eb5f1e..07d4688ec13 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -255,7 +255,9 @@ class project_issue(crm.crm_case, osv.osv): user = self.pool.get('res.users').browse(cr, uid, uid, context=context) if user.context_project_id: return user.context_project_id.id - return False + else: + project_id = context.get('active_id',False) + return project_id def on_change_project(self, cr, uid, ids, project_id, context=None): return {} diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 05605e38a03..6cf7693d611 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -123,6 +123,7 @@ class project_phase(osv.osv): _defaults = { 'state': 'draft', 'sequence': 10, + 'project_id':lambda self, cr, uid, context: context.get('active_id',False), 'product_uom': lambda self,cr,uid,c: self.pool.get('product.uom').search(cr, uid, [('name', '=', _('Day'))], context=c)[0] } _order = "project_id, date_start, sequence" From 22ff6fd7f927032dc4ea656905a169d184565538 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 30 Mar 2012 18:42:52 +0530 Subject: [PATCH 065/176] [IMP] bzr revid: apa@tinyerp.com-20120330131252-zxfp4oy7p0bli5my --- addons/project_timesheet/project_timesheet_view.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 26be054180f..52aaa01b99b 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -33,6 +33,7 @@ + @@ -58,7 +59,7 @@
Amount -
+
Hours From 918dca99dcd7d136cf42fb45eac0b5f763dc7629 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 2 Apr 2012 11:19:51 +0530 Subject: [PATCH 066/176] [IMP] bzr revid: apa@tinyerp.com-20120402054951-kih10xe9hxrp1c5g --- addons/project/project_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index d210c590198..48055c625a2 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -208,7 +208,7 @@ - + From d35d6def03a1a50dea6972971798a6f1723a6b62 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 2 Apr 2012 12:00:45 +0530 Subject: [PATCH 067/176] [IMP] bzr revid: apa@tinyerp.com-20120402063045-gwpkxsd1tyuj5skh --- addons/project/project_view.xml | 2 +- addons/project/static/src/css/project.css | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 48055c625a2..21d3e3b6295 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -208,7 +208,7 @@ - + diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 9aa559bfb13..e62d37ac8b9 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -17,6 +17,10 @@ .oe_project_font:hover{ text-decoration: underline; } +.oe_project_members{ + padding-left: 6px !important; + text-align: left; +} .oe_project_desc{ width: 250px; } From 8a71a7c2b27b34df26297911181bd926a73062f7 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 2 Apr 2012 12:58:56 +0530 Subject: [PATCH 068/176] [IMP] bzr revid: apa@tinyerp.com-20120402072856-decyar52cmweu0l1 --- addons/project/static/src/css/project.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index e62d37ac8b9..840b0580033 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -18,7 +18,7 @@ text-decoration: underline; } .oe_project_members{ - padding-left: 6px !important; + padding-left: 5px !important; text-align: left; } .oe_project_desc{ From 67ae1b0b83762804c9222039e61c55786eed1fee Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 2 Apr 2012 19:00:48 +0530 Subject: [PATCH 069/176] [IMP]improve view bzr revid: sgo@tinyerp.com-20120402133048-6s9gseld1v7u0dq0 --- addons/project/project_view.xml | 69 ++++++++++++++----- addons/project/static/src/css/project.css | 11 ++- .../project_timesheet_view.xml | 38 +++++----- 3 files changed, 77 insertions(+), 41 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 21d3e3b6295..f8a7ec9001e 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -172,6 +172,7 @@ +
    @@ -180,10 +181,28 @@
    - + + + Click Here + + +
    -
    -
    + +

    ...

    - - +
    + - - -
    - - - -
    + + + + + + + + + + + +
    Deadline + + , + +
    Progress + / days +
    + + +
    + + + +
    - + diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 840b0580033..1a42c1d1061 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -33,9 +33,8 @@ } .sequence { - padding-bottom: 4px !important; - padding-top: 3px !important; - border-bottom: groove; + + border-right: groove; /*font-size: 20px;*/ text-align: center; } @@ -75,7 +74,7 @@ } .td_deadline{ width:70px; - text-align:center; + text-align:left; } .td_member{ text-align:right; @@ -88,8 +87,8 @@ width:22px; } .img_member{ - height:20px; - width:20px; + height:35px; + width:35px; } .td_hours{ text-align:center; diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 52aaa01b99b..78d49656e96 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -47,25 +47,25 @@
    ...
    - - - - - - - + + + + + + +
    -
    - To invoice -
    -
    - Amount -
    -
    -
    - Hours -
    h
    -
    -
    + + + + + + + +
    To invoiced + +
    To hours + h +
    From abf8934ff922e9d9b65567cf7469c14caf3b63f3 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 3 Apr 2012 14:29:56 +0530 Subject: [PATCH 070/176] [IMP] bzr revid: apa@tinyerp.com-20120403085956-00lj6epnjz3j5z7n --- addons/project/__openerp__.py | 1 + addons/project/project_view.xml | 39 +++- addons/project/static/src/css/project.css | 266 +++++++++++----------- addons/project/static/src/js/dropdown.js | 92 ++++++++ 4 files changed, 261 insertions(+), 137 deletions(-) create mode 100644 addons/project/static/src/js/dropdown.js diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index be4cc607b29..f438102d599 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -71,6 +71,7 @@ Dashboard for project members that includes: 'auto_install': False, 'application': True, 'css': ['static/src/css/project.css'], + 'js': ['static/src/js/dropdown.js'], 'certificate': '0075116868317', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 21d3e3b6295..b635b4cc805 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -173,7 +173,42 @@ - + + + +
    +
  • + B + +

    Groupe S HRWeb

    +

    2 Tasks, 3 Issues, 1 Timesheet

    +
  • +
    + +
    + + + + + +
    diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 840b0580033..70d220fd322 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,141 +1,137 @@ -.oe_to_invoice_buttons { - min-height: 33px; - min-width: 70px; - vertical-align: top; - -} +.vignettes { + margin: 4px; } + .vignettes li { + float: left; } + .vignettes .avatar { + margin-right: 2px; + width: 32px; + height: 32px; } + .vignettes .fields { + width: 100%; } + .vignettes .fields th { + font-weight: normal; } + .vignettes .fields td { + color: #888888; } + .vignettes h4 a { + color: #4c4c4c; } -.oe_to_invoice_buttons:hover { - cursor: pointer; -} - - -.oe_project_border{ - border-right: groove; - border-left: groove; -} -.oe_project_font:hover{ - text-decoration: underline; -} -.oe_project_members{ - padding-left: 5px !important; - text-align: left; -} -.oe_project_desc{ +.vignettes > li { + height: 160px; width: 250px; -} -.progress{ - width: auto; -} -.oe_project_font{ - color: #000000; - padding-left: 5px !important; - -} -.sequence { - padding-bottom: 4px !important; - padding-top: 3px !important; - border-bottom: groove; - /*font-size: 20px;*/ - text-align: center; -} + padding: 8px; + margin: 4px; } + .vignettes > li h4 { + margin-bottom: 2px; } -.project_icon{ - width: 30px; +.i { + font-family: "mnmliconsRegular" !important; + font-size: 21px; + font-weight: 300 !important; } + +.dropdown-menu { + display: none; + position: absolute; } + +.dropdown-toggle:after { + width: 0; + height: 0; + display: inline-block; + content: "&darr"; + text-indent: -99999px; + vertical-align: top; + margin-top: 8px; + margin-left: 4px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid white; + filter: alpha(opacity=50); + -khtml-opacity: 0.5; + -moz-opacity: 0.5; + opacity: 0.5; } + +.open { + display: block; + background: #333333; } + .open .dropdown-menu { + display: block; } + + +a.oe_kanban_action { + position: absolute; + right: 0; + } + a.oe_kanban_action:hover { + text-decoration: none; + } + a.oe_kanban_action .i { + color: #4c4c4c; } + + +.oe_kanban_vignette { + position: relative; + display: block; + min-height: 50px; + background: white; + border: 1px solid #d8d8d8; + border-bottom-color: #b9b9b9; + padding: 6px; + margin: 6px 0; + display: block; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; } + .oe_kanban_vignette:last-child { + margin-bottom: 0; } + .oe_kanban_vignette:hover { + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + -box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); } + .oe_kanban_vignette h4 { + margin: 0 0 2px; } + + +.oe_kanban_vignette .dropdown-menu { + top: 30px; + right: -140px; + padding: 4px; + border: 1px solid #afafb6; + width: 160px; + overflow-x: hidden; + z-index: 900; + background: white; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); } + .oe_kanban_vignette .dropdown-menu p { + margin-left: 12px; } + .oe_kanban_vignette .dropdown-menu li { + float: none; display: block; - height: 30px; - text-align: center; -} + background-color: none; } + .oe_kanban_vignette .dropdown-menu li a { + display: block; + padding: 3px 6px; + clear: both; + font-weight: normal; + line-height: 14px; + color: #4c4c4c; + text-decoration: none; } + .oe_kanban_vignette .dropdown-menu li a:hover { + background: #f0f0fa; + background: -moz-linear-gradient(#f0f0fa, #eeeef6); + background: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background: -webkit-linear-gradient(#f0f0fa, #eeeef6); + -moz-box-shadow: none; + -webkit-box-shadow: none; + -box-shadow: none; } -.project_icon:hover { - cursor: pointer; - display: block; - height: 40px; - width: 40px; - text-align: center; -} - -.project_table{ - width:350px; -} -.td_image{ - width:60px; - text-align:center; - vertical-align:top; -} -.avatar{ - height:40px; - width:40px; -} -.td_name{ - text-align:left; - vertical-align:middle; - width:220px; -} -.td_deadline{ - width:70px; - text-align:center; -} -.td_member{ - text-align:right; - vertical-align:bottom; - width:130px; - height:20px; -} -.td_member_img{ - height:22px; - width:22px; -} -.img_member{ - height:20px; - width:20px; -} -.td_hours{ - text-align:center; - vertical-align:bottom; - width:120px -} -.task{ - text-align:left; - vertical-align:middle; -} -.invoiced{ - font-size: 10px; -} -.oe_project { - width: 55px; -} -.user { - color:rgb(192,192,192); - font-size: 10px; -} -.manager { - font-size: 9px; -} - -.oe_project_buttons { - display: inline-block; - padding: 0px 0px; - background-color: transparent; - border: hidden; - color: #0000FF; - min-height: 40px; - min-width: 40px; - text-align: center; -} - -.oe_project_buttons:hover { - cursor: pointer; - background-size: 100% 100%; -} - -.oe_project_font1{ - padding-left: 2px !important; - -webkit-margin-before: 0em; - -webkit-margin-after: 0em; -} - -div.oe_fold_column{ - padding:2px !important; -} \ No newline at end of file +.oe_kanban_vignette .dropdown-menu .color-chooser { + padding: 0 3px; } + .oe_kanban_vignette .dropdown-menu .color-chooser li { + float: left; } + .oe_kanban_vignette .dropdown-menu .color-chooser li a { + padding: 2px; } \ No newline at end of file diff --git a/addons/project/static/src/js/dropdown.js b/addons/project/static/src/js/dropdown.js new file mode 100644 index 00000000000..54b61c5e9d0 --- /dev/null +++ b/addons/project/static/src/js/dropdown.js @@ -0,0 +1,92 @@ +/* ============================================================ + * bootstrap-dropdown.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function( $ ){ + + "use strict" + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function ( element ) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + , isActive + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + !isActive && $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}( window.jQuery ); \ No newline at end of file From 777909e030b6bc43fb8d5df114e01a31885ec4a4 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Tue, 3 Apr 2012 16:06:58 +0530 Subject: [PATCH 071/176] [IMP] bzr revid: sgo@tinyerp.com-20120403103658-mdkum0flrg2a40qf --- addons/project/project_view.xml | 87 ++++++++--------------- addons/project/static/src/css/project.css | 17 +++++ 2 files changed, 45 insertions(+), 59 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 8723392331a..584a20925f0 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -198,17 +198,22 @@
-

Groupe S HRWeb

-

2 Tasks, 3 Issues, 1 Timesheet

+

+

+ +

+ + + +
Deadline + , +
Progress/ days
+
- - - - - + - + +

...

- - +
+ + + +
+ + + +
- - - - - - - - - - - -
Deadline - - , - -
Progress - / days -
- - -
- - - -
- + --> diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 70d220fd322..b87892c3951 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -22,6 +22,23 @@ margin: 4px; } .vignettes > li h4 { margin-bottom: 2px; } + +.oe_project_buttons { + display: inline-block; + padding: 0px 0px; + background-color: transparent; + border: hidden; + color: #8A89BA; + +} + +.avatar { + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } .i { From 8e782f55842b453c665164d2294c4cad7f98d3e6 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Tue, 3 Apr 2012 16:33:46 +0530 Subject: [PATCH 072/176] [IMP]change kanban view bzr revid: sgo@tinyerp.com-20120403110346-cy9ogts14lmxwa7t --- addons/project/project_view.xml | 2 +- addons/project_issue/project_issue_view.xml | 10 ++++--- .../project_long_term_view.xml | 12 +++++---- .../project_timesheet_view.xml | 26 +++++-------------- 4 files changed, 21 insertions(+), 29 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 584a20925f0..378ca69ab3a 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -200,7 +200,7 @@

- +

- + - - + From a71f2b9f1425452b3abd161a34fb8551f2f43085 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Tue, 3 Apr 2012 18:51:18 +0530 Subject: [PATCH 074/176] [IMP] bzr revid: sgo@tinyerp.com-20120403132118-9w2mjhq3fr5qdmp7 --- addons/project/project_view.xml | 5 +++-- addons/project/static/src/css/project.css | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 02dcd360b27..26732d59642 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -184,14 +184,15 @@
  • - B + B
  • Deadline diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 40d8c459af8..fffc7b43a94 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -389,17 +389,19 @@ - + + + - + + diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index f3f9e132b1e..0b5f9fb00a5 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -119,17 +119,19 @@ - + + + + + + diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 78d49656e96..406f931c1b2 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -35,37 +35,25 @@ - - -
      -
    • Timesheets
    • -
    -
    -
    - -

    -
    ...
    -

    -
    - + + - + + - - - + + - + -
    To invoiced
    To invoiced
    To hoursTo hours h
    From f4bfc542029c46939a1501ce18664d1abdfef142 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Tue, 3 Apr 2012 18:38:52 +0530 Subject: [PATCH 073/176] [IMP] bzr revid: sgo@tinyerp.com-20120403130852-w7809ri5tq805vay --- addons/project/project_view.xml | 12 ++-- addons/project/static/src/css/project.css | 58 +++++++++++++++++-- .../project_timesheet_view.xml | 8 +-- 3 files changed, 64 insertions(+), 14 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 378ca69ab3a..02dcd360b27 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -184,10 +184,10 @@
  • - B + B
  • To invoiced +
    To invoiced
    To hours + To hours h
  • Edit...
  • Delete
    • -
    • +
    • diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 334f07bd0fb..c11db8f718a 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -68,10 +68,14 @@ table { display: none; position: absolute; } +.dropdown { + position: relative; } + .dropdown-toggle:after { width: 0; height: 0; display: inline-block; + content: "&darr"; text-indent: -99999px; vertical-align: top; margin-top: 8px; @@ -84,6 +88,7 @@ table { -moz-opacity: 0.5; opacity: 0.5; } + .oe_kanban_vignette .dropdown-menu .color-chooser { padding: 0 3px; } .oe_kanban_vignette .dropdown-menu .color-chooser li { @@ -93,7 +98,7 @@ table { a.oe_kanban_action { position: absolute; right: 0; - display: none; } + } a.oe_kanban_action:hover { text-decoration: none; } a.oe_kanban_action .i { From 96c334b5acd8ef17d9458bea9f20c93097fb4c71 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Tue, 3 Apr 2012 18:57:53 +0530 Subject: [PATCH 075/176] [IMP]remove extra spaces from kanban view bzr revid: sgo@tinyerp.com-20120403132753-jv1n4kyaxwh0yxtm --- addons/project/project_view.xml | 5 ++--- addons/project_issue/project_issue_view.xml | 2 +- addons/project_long_term/project_long_term_view.xml | 2 +- addons/project_timesheet/project_timesheet_view.xml | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 26732d59642..d1bdf281cc5 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -186,7 +186,6 @@
    • B
  • Edit...
  • Delete
  • @@ -200,9 +199,9 @@
  • -

    +

    -

    +

    - +
    Deadline , diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index fffc7b43a94..8ca57ed6b4a 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -396,7 +396,7 @@ --> - + diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 0b5f9fb00a5..914e1b8d600 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -126,7 +126,7 @@ --> - + diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 7d05ae6a732..ad85b22cd51 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -35,7 +35,7 @@ - + From fddbe738810ed4b80f2423f33c8d2e8a918e16c1 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Wed, 4 Apr 2012 11:12:04 +0530 Subject: [PATCH 076/176] [IMP] bzr revid: sgo@tinyerp.com-20120404054204-vlkhhvrxp0ka15d7 --- addons/project/project_view.xml | 10 +-- addons/project/static/src/css/project.css | 68 +++++++++---------- .../project_timesheet_view.xml | 2 +- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index d1bdf281cc5..8ef5306fb79 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -182,9 +182,9 @@ } -
    -
  • - B +
    +
  • + B
  • diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index c11db8f718a..2f6957f2c12 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,11 +1,11 @@ -.fields { +.project_fields { margin-top: 1px; margin-bottom: 1px; } -.fields td { +.project_fields td { border: none; padding: 2px 0 2px 8px; } -.fields th { +.project_fields th { padding: 0; border-right: 1px solid #dddddd; vertical-align: top; @@ -16,29 +16,29 @@ table { font-size: 13px; border-collapse: collapse; } -.vignettes { +.project_vignettes { margin: 4px; } - .vignettes li { + .project_vignettes li { float: left; } - .vignettes .avatar { + .project_vignettes .project_avatar { margin-right: 2px; width: 32px; height: 32px; } - .vignettes .fields { + .project_vignettes .project_fields { width: 100%; } - .vignettes .fields th { + .project_vignettes .project_fields th { font-weight: normal; } - .vignettes .fields td { + .project_vignettes .project_fields td { color: #888888; } - .vignettes h4 a { + .project_vignettes h4 a { color: #4c4c4c; } -.vignettes > li { +.project_vignettes > li { height: 160px; width: 250px; padding: 8px; margin: 4px; } - .vignettes > li h4 { + .project_vignettes > li h4 { margin-bottom: 2px; } .oe_project_buttons { @@ -50,7 +50,7 @@ table { } -.avatar { +.project_avatar { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; @@ -89,19 +89,19 @@ table { opacity: 0.5; } - .oe_kanban_vignette .dropdown-menu .color-chooser { + .oe_project_kanban_vignette .dropdown-menu .color-chooser { padding: 0 3px; } - .oe_kanban_vignette .dropdown-menu .color-chooser li { + .oe_project_kanban_vignette .dropdown-menu .color-chooser li { float: left; } - .oe_kanban_vignette .dropdown-menu .color-chooser li a { + .oe_project_kanban_vignette .dropdown-menu .color-chooser li a { padding: 2px; } -a.oe_kanban_action { +a.oe_project_kanban_action { position: absolute; right: 0; } - a.oe_kanban_action:hover { + a.oe_project_kanban_action:hover { text-decoration: none; } - a.oe_kanban_action .i { + a.oe_project_kanban_action .i { color: #4c4c4c; } .square { display: inline-block; @@ -129,18 +129,18 @@ a.oe_kanban_action { display: block; } -a.oe_kanban_action { +a.oe_project_kanban_action { position: absolute; right: 0; } - a.oe_kanban_action:hover { + a.oe_project_kanban_action:hover { text-decoration: none; } - a.oe_kanban_action .i { + a.oe_project_kanban_action .i { color: #4c4c4c; } -.oe_kanban_vignette { +.oe_project_kanban_vignette { position: relative; display: block; min-height: 50px; @@ -153,17 +153,17 @@ a.oe_kanban_action { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } - .oe_kanban_vignette:last-child { + .oe_project_kanban_vignette:last-child { margin-bottom: 0; } - .oe_kanban_vignette:hover { + .oe_project_kanban_vignette:hover { -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); -box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); } - .oe_kanban_vignette h4 { + .oe_project_kanban_vignette h4 { margin: 0 0 2px; } -.oe_kanban_vignette .dropdown-menu { +.oe_project_kanban_vignette .dropdown-menu { top: 30px; right: -140px; padding: 4px; @@ -178,13 +178,13 @@ a.oe_kanban_action { -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); } - .oe_kanban_vignette .dropdown-menu p { + .oe_project_kanban_vignette .dropdown-menu p { margin-left: 12px; } - .oe_kanban_vignette .dropdown-menu li { + .oe_project_kanban_vignette .dropdown-menu li { float: none; display: block; background-color: none; } - .oe_kanban_vignette .dropdown-menu li a { + .oe_project_kanban_vignette .dropdown-menu li a { display: block; padding: 3px 6px; clear: both; @@ -192,7 +192,7 @@ a.oe_kanban_action { line-height: 14px; color: #4c4c4c; text-decoration: none; } - .oe_kanban_vignette .dropdown-menu li a:hover { + .oe_project_kanban_vignette .dropdown-menu li a:hover { background: #f0f0fa; background: -moz-linear-gradient(#f0f0fa, #eeeef6); background: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); @@ -201,9 +201,9 @@ a.oe_kanban_action { -webkit-box-shadow: none; -box-shadow: none; } -.oe_kanban_vignette .dropdown-menu .color-chooser { +.oe_project_kanban_vignette .dropdown-menu .color-chooser { padding: 0 3px; } - .oe_kanban_vignette .dropdown-menu .color-chooser li { + .oe_project_kanban_vignette .dropdown-menu .color-chooser li { float: left; } - .oe_kanban_vignette .dropdown-menu .color-chooser li a { + .oe_project_kanban_vignette .dropdown-menu .color-chooser li a { padding: 2px; } \ No newline at end of file diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index ad85b22cd51..6fbec2d84f2 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -42,7 +42,7 @@
    - +
    To invoiced From f898722cc219b8c8991747f85ca97317aaf4b24a Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 4 Apr 2012 11:12:35 +0530 Subject: [PATCH 077/176] [IMP] bzr revid: apa@tinyerp.com-20120404054235-3cqyxav0b6l5blxb --- addons/project/static/src/css/project.css | 10 ++ .../static/src/font/mnmliconsv21-webfont.eot | Bin 0 -> 24173 bytes .../static/src/font/mnmliconsv21-webfont.svg | 149 ++++++++++++++++++ .../static/src/font/mnmliconsv21-webfont.ttf | Bin 0 -> 39912 bytes .../static/src/font/mnmliconsv21-webfont.woff | Bin 0 -> 26348 bytes 5 files changed, 159 insertions(+) create mode 100755 addons/project/static/src/font/mnmliconsv21-webfont.eot create mode 100755 addons/project/static/src/font/mnmliconsv21-webfont.svg create mode 100755 addons/project/static/src/font/mnmliconsv21-webfont.ttf create mode 100755 addons/project/static/src/font/mnmliconsv21-webfont.woff diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index c11db8f718a..4b715428c2c 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -1,3 +1,13 @@ +@font-face { + font-family: "mnmliconsRegular"; + src: url("../font/mnmliconsv21-webfont.eot") format("eot"); + src: url("../font/mnmliconsv21-webfont.woff") format("woff"); + src: url("../font/mnmliconsv21-webfont.ttf") format("truetype"); + src: url("../font/mnmliconsv21-webfont.svg") format("svg") active; + font-weight: normal; + font-style: normal; } + + .fields { margin-top: 1px; margin-bottom: 1px; diff --git a/addons/project/static/src/font/mnmliconsv21-webfont.eot b/addons/project/static/src/font/mnmliconsv21-webfont.eot new file mode 100755 index 0000000000000000000000000000000000000000..433ebb82e4b6ebd8528ba7e5194c6ea3767122ee GIT binary patch literal 24173 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 + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : MIT License +Designer : Carlos Elas +Foundry : Carlos Elias +Foundry URL : httpcarloseliascl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/project/static/src/font/mnmliconsv21-webfont.ttf b/addons/project/static/src/font/mnmliconsv21-webfont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..c38e59cf13843c3103de2ddeec2a71d5813ef6a7 GIT binary patch literal 39912 zcmbTf4|p8al_y$NU0vNOl}gp6QmND`wM*TtR;$(SZkJjusV%pK5JFajP>iFIg>Z~9 zisNxS9>;MU#&{gZaU6&B`13Lh!?FzHmt`3q%d2W>Sk@np(eto8CNIkpPexysFPr6M z86M*E&SqFP9~i0qey3W(4w>w}d6HFi>;9{IZ{2(DIlptxHN!Ftqu|0b%*e=&yLSHQ z8IxgH39;s#!*`4@E~T(ZJX?3)leK^MdsjN}Jc{St4}9hRLoaV!_)9!Li@%>gaP)}P z_-@m`XBgijNZ&tq=u2N&UdaASJb%P6+=E}b|Eq@>9}{30VK>sHFCF;C+!vqtj*904 z4D-n3z6bB$d;LQ9|G_X9Uq*UiA0p&G4g3wBKg4r<-&c+t`}#My&oj(FHBg^&;CCLl z|AANUILR=7i1xAKSMEP{h`H%S7LeVhp45&*Q7+nQ>+>bA&n0ILzy;%=WPt zd|nWvbSnb(=0Fu!DX`_41}g!u#J9J|cyVZP5?Vt&Z}U(DO=S1}{Tm{Dc} z6K77b4eakQOUxPe4yKQ}jj$FzeRz*mbSK?E$6(a?bRoG zp;&F5(xSBCCADems@EMUZDpN6*X*=q-5DFXf4?-_})928kZLxDP>)f_;vHPhd)E&A~dldQ%Dn3JqIzR#SGaW!fVn6Y1kX zYkZ(obvGRU!~BQL=a{>gyD<;Hz}(B+$9$2wA1{B9`7)N;SD4>nzRG-!`8xA^%(Kk% zn5YZPi_A-y@r%qA?l@C!VVJIkX97$g-&GDFTs}ybuj0Zwf0=c@v*iA(dD~v#o0%lv z<-W>xIfd}$E9w9G4W_Y6l$}n+Ni4d5)bg?O#Ny@lfA+)PYIH$ydKcY`=Eu$-EMES% zfAF`<)#$Y1bS=71wtnpV$>Qa%@SAQmx?gby7TrH=_}F=L@$z5)#~(dQ(Y*7WjO?6U zbnisv!;6=*U&ouJs1hqCN8+oe9LO)n4oLEAyNC2N1JX zaji3~%-=D5Ct|kz*y~2E^G#*`)HhEzbj^Q@uIv4%buKFN7cTw*Vy;B~>kDX9t@B69 z{NsQ01Y*`YRqH&d%>VNz{{&^9qH7tc^sQrp98&wsXbas?$t{t{e)GwBs=ti(-Ha%s zZMQt3T{oYcZ}peaVN}TsMr-TjL`P>=y3pIdd0_aCJHL7QJ7@pk!o^4b@Q)sU;>myh z)SsOCR_1^D!w$CndNu#pTAaZ!>+;_Tse>V9Y;8N(F}2hE^MC!)zlk^XGww4jNUK#2 zeC5d3j(+{vLx1+aA~v^)jramGOaFv=R&UgVSTxa*@x`J-0KbWjM4`6>*DUJ=3r)R+ zt!$xsDX~ovb_1(7=^NNWAXd){jro8UZOq&L?pSwkED+nu<$Hy#Y(r0=r?=1@?d|Dp zY|cw9}PnJu>><;>i z`SnOTEQnGr63$CvU5hn67%gd$!BU?Zf2d%l2M%enVl>q&lAcaRlX7lovaPWxYiQB@ zF5XNYx6Lqj?KGv6|~dp|&X;&Y4`{Sh8@ua+c?LZW;wmnUgr4m+4RNjf$y!F%r$m z`QuS5w z>XtC;q_S=o+r_xGXs^RyRyE{H+-A1q>$W2t=2T;0GwX$9u8VDpVvc1vB|m$7L=^|7 z4-JkyG>h?;^nn8tnasq20ey9cAPXbMXY=fKx(>{Zr}DE84NGc}&rI$gpnQB`_92G9 zQ9=7g{Sw-FH>mEHm~%`Sta#Ug9AG-p%5IkFa<}@H%LNJy_?H)q$v~m5%bD$V4Pn`7 zv{`3g)=4ZajMOt5P+%k>cFhltglg#8U(;1ij8H_vtm$&U%yzjWpd^lt)ntIOAmB`f z<{7Q78EeTIP+x2awCY;H#7zs1O8ZhM^8sjZ;v-Vz1`sE zune%CaNEoly6x%;?1)8aJ+!jjO*De7ENd5f@(C=;Mon+KCF~chzOmHG&r;)k)?xO2 z_U{&kj#SKG#W*rPZuO0)PR$+V@o{-U32LG$_9+qFvh;}3Cn=&R9-b?w#`>(4K0OlA z^=Op)$y(qiVjA(NIxP*0B76Cbp-J3_N5|e6n@Noot$kBb1N8>+kK@9Yu3OssBEA*p=lwyZfq9JikY!m7n{6j+vqkW5%=-MGsX?RDgjpg) z12K$4L2m+)Y7+F`2q$zTgb3TDmxvxkIHdMyF`2DrFiLV8kiZh(CO)9{OAv zE&!U9@%0o?tOTlQdqlD1>%hMZhq@8lWEb*@j(jW;Lz}2KGFpVs97{CGoYthH$$Asz zX9LlIF0&e{&nNs*jXGLL_+_dgP)H!vZtT_z0RhcG0>~eC>h$|B%+0;<{^>K|FX^JnpGW(}Ag@RQ$YV+gD>6|%!3d(5z(>#GJv_+2BC&&lBw8XDsXQZa z3MUJ?c}4)$7KDd1iOAlsGXtF8=~`3MJ_vL4EhHY?)DO-gkr(*a;o)b;QNSLBv zPUxzvScxdQ9~bpVxIR*k7W1MSloValB0<>@qG?MIRRtZEQt8Ab$H@{WVaE|U*)U~E zjfEnDmPn)xT^Zpd!!Sg_vchLYQODS-Gh7g(Bg;0rDO}<;jJ1R*LOgB_)~nzb_@hh^ z_&^(zVv5Y|kk@9x)BZ0^c^FjIZQa`4?QY|i%iD&DN^ZNorpsxz7k1n=e0yD&yMtSH zLRrTKsYR&EcKo2U-7do|yV3h?yX-TW@7!J^6wc z(1b2FiuIi@bT@=NCZ{LF{?Btzk#1~YzG_+QVyG0weIZl?VjWtrQWsN?MAGTVPa~;R z90+!(t6kL6a&<5egPyHN!iRr=KIK?$^Sv>vzijZZv& zdiR@pBrZ!jNMx#5O!1PYOL9D-W8Cn|f8X1uHekM&0n>DqYl(l*YA}3|afKzfNnduF z6t@*ar0C0T8}3a4I09e4(;9MW`yEAfARo9I8&b=H67KH@SJd9t&<&OsyIYkn3UssH zjt)K-yF35=PjK*9%n&wCtkVMT@W+@KQ(&B??1C&YL9jASGA*yB2$&eTiGs2~D=nUN+lg0`oA4QZ z9JQ+semJFA9G2p&9UmNwSKf$A!$mQOU534` z_Z9Oh>!kbkYgQ>yc`7+zYI_Gp1c48NmasQIVg~r<_!CT&+E|}m(5r2%*QsIkXjoaV zr=X7JvQ8`u&;)JN>pyKHW|}4h&<ODGlH&d>s51y@Cc7j+oBEI|PtW&$> z#?)n})plZvTf`^ljb(QL_hJlRxxupWl^Hi%z&uFwJN2P*IF|H2Jjlk{h*n$87CH)9 z7Ngpc02`offbfNjzLm9m{a)v2;ORpYdi*PjVJO!zwGD;Ce#A?=u!X;&X}bksaZwO< zYuXz;?@JoW>SZs_h+^=s8R{pm(-YsP8kM9d%E4V6|AwOM4jRIhSAs@xx1zksze!nU zlyDeaKF#_YAMscH4AX>}w2vtRbnRM*NK6gi9{C{5)JBR^GI`McD_U?MR%k@BgP_kLb^k2QYI8h$2O+MZf@>C?2))b>(x^-Xr7 zQugwoYru~cM&YmX*MSR%m{v$LJ-`g_Vs>IL`(5T?=6medn6gOg{F~G{YfAhk_OFI* z*xfA13>w zl=-?d5(3{+=4FbRuV0T>D1JV)o_cyc{@WB&#^WuBg^cOg56P^IMBo-q2n4F%sRMu^ zK`-KA&)+)z?K8I`73^2_}+4;~*2!k>T;1V))+ zdT$AL+!AgF_q?9x*7)C)->ZDBTDF8`xq$^EPt=dkT{Q7CYL1SLnHT5Sxytt|PaIT| ziY(KGjY}z6QRI|_1+yOcwwy#9C9p}k8YwGpuV<8JDWjyM6uFv_a!*(DqoRrs9vvTx z9H=~dm|n~kE}CQGqv26{xaf;i96W zaT=TS2jhcN_R0@FO)1z@gYngC?|OPXhWE|*MbPIBOcxOUdzf-9aiB4Nx$N^uHP&gT zQR~CH?es0XJwC-+%({vXi?cuL)GxUjD7U7#Eg;uHb=f1|EgGhzl}OuFj-eSJZ zSxi|&kDZfQ_pAQp`Se#$g2HU}FFRichH)nAv@E$Y=*^Tpf3MtvqzODsWZio~e7;j9 zG-=JJXAoul~i=zo(y$sp*TkuT@}&C zKh0h1+@{P2ZWDmPX3qb(5gBV8RhbW|$3d$MWxm-sillV&kDl_9a>{%*H;tr%GT&R+ zj-<7>di4xaJGMYts0{vz5 z=9WBP>o239l=LtNXbU3*LaNc6%@ukFZzE;g=eJMq{Mymu51;<_t@QLWVfO!TL67*h zOnB%MPn~}tEF%Dth9K?%( zM~K6j{mJNXoR>0QhCxw*wBI^Nw3EGoAK#zxe+%k#2UG4M>J+J6cJ!F>=*MOm=|W&bzoUm7v)>7-P6M&!g$PHolU=~INtc0kB?7wUJs=7= z6XdRhKtNPN?E%VkGBN-$g6EEZ_)um{2ujg>!nWvS^B?oXPivcVC$u zIW}bjyO5)K{^vo_%13g0azKKIa*-0M5CtwXlSz;807ZnpvB^l7fFZ%urjMK(dyGv# zW)0>OUY{Kh=df=HI&P`)T&Hs5|t z;Q-Qv0c-M55$Gu+moy2==d8v~Ef@^z%FMxCf&lCV09sIx`y%NBnUV7&$x?nIo-?D# zK_ku=PZgEX$q`9!s8NLafMt$aMzN6KIeVZFjJhCN@wlo)6|-cSxl}_;Rg_3HY6hWj zAk>}b706k5C(r2s=JA~C&-LWkg?c}ef@}z6zsvO#9ImkpSle1)G(mi-aMt0L7V150 zz!7byUU3y{9-8g4&C3p}xXq2rPIK02==L_!dJbPt0xub&S&T0fY76;evJb#ZV>h^W zD1m?mY-au3^$NfJg^`)OcI3!=kLxcOkz;=D6Ihnaa>>DI`{1jqKjq@D9t>O5Zk~C^ zf6VtLcKSTCgK@;HqjbAAcDjzN%itEqhS!sI8kZI}hM77{w2cbX?&uG;x&rPS8!?sY zS}}2=Ay;IG8SSvK)B77+>#)))e+Vgp4;_TeO zz}(r1x#u(a=l0>LSj5x5=kl57+2r=^@x8^qJ@I5Jl^i=#-0OR@ICo}z;@sT8zNx8w z19Rsl#?Q0yL{jJ_L6F{oZ{_dq@#Yg73$4Em0%El)Ea%4V2Je-m z42Xrgdx%(~C4l#PtMM|6cCNQBMz8al3}~;z>jNffZ=o8*7K+|PJD`}c3vAIeaw(um zN;sVgo5O&k6o#fu zVk}>g1>6OBicP%wYUSM@02S9%HdVO>tXq%-R;@f42LTCIKCtKP!ruJQ3=iyPW+=b6 zfC#GyU8@jI7yE{XE4v{ZeV`DsBca%mr2?7P#3ZW#V-5=1lNB=}0#wnYu=aAnFij<4 zJZ)R15$Q9-ip~dvQe@~10QPuX18fcW=p_T-yZAPANi_EWw_#6th1Zz`WRNl}%&<#H zpiNl)Nlarm%!B9%w2TEG7mJckI2s@#kEu}IDQOz^7HAHtO*;RIbnW_cbK^Pi>B?j= z)3viWYd#WJ4L)VZC&q%}ELfGw=B0+ODMkQ3>53aT64M089ghM~~!G>1rjHz^B| zvzsyt$uO)pyRjs(7Gj~8$E-n*Pysa1J`~}W7dS?0sOwtbe5AHrh&R%clj(Nj zJO*yq6X0}gJ#Dt5D{d18C=U{sS6qheTJU+Ch2vA)-db!1wmSrHc1Uq=N46lq**kD= z(lKxt$$ZFZfvSMP6LB33MVI=W#*nkI--%Ns#xvjD_-kVd!s1&O{;(}{69^e49=j)| z>8;>HxgJx~*k2_2`VyZkCJTim8-3-KU3Rf(=LU*7pK)S$qAw{MS2*qp zFWSjMdXaktyY_HC`N=|}0A67{nXjm;FLM`*>145(OcyJc&zyt?%Gx28x^{i(p^NOW zA&KG4Sh4a0S}rs%uVc+zW;&R&%wI5N6XWXCW!=*?%jLS$#BtRHYr33+S$D2x+4-%k z+eVDpce9SVv~Zun)MNhLhjGRHYeJmjK5Q(PA6BW{!~0PVY0&Sx3B-1J3i7Tki0x7q zd{u*_b4Ywx#ZYSfZr6Pw^~IpsRyXmD(**S-LcpCE_jDbSfr}pu5k@|z&NE%#c$m_E zD>Sb*CAultMm#XapSA?3&aoR{CX+gt3`IQDTyMgbKqdu#PkBo`T>=DvZkX@YO^L{V zmDpFAKBQFD>5bR}@LNr9tWtU;dZsOu!`toGwhsQBVHReOkJ{78WbWt>pO_AM&m;Cs zGGQNiRnB@Ql_OSnpnRf zBFn0w8yO=LNk-(PXGie?|5M*<;6VaR3v-B>WE?fSFay;erUqj>TOh^Il=)qc8J+5yXfm?N5lxYLNQ?Xl>sK76n)HUMsHGuK1PyjX?>uR+W_3@3c=pOjA~ zxwjr#J#^st<3q#8U)Zczgnf*{t0l=d2440B;lv?P3YF`bEX z0YB*0e~y+Uv|5)HrU`hvd)Gj zcMu<8P;rA;h4pdUb^~C9nG^u$#-Jp7`;QM4F=;yi>@mpHi2OO*9YHV-zIbr|>f5uI9vT^W=+f-$ zrDG!_$1ZV4q>LF(%Y%b*I&5a7A4i6t*+r$M9)0c5ftN4NigSDR%mw?>2llU=M}CyM zSsr}#2RACdw}2UvK4Yl5^Hllh2#Gq-Rx~WRZO}!uRZ&4d5KQPK+?FbLg((9I% zA(1(nwG?vWv>Jyzom3~tcBevY!$PLYTx1l&VqLy@+1ms=iJ1Vu&=(@$Kcl*F=p&sC zA;;)k2Ae{rp6h`CmqDJNn74Xf79B zDX0otk+gi}IihEvrTDaTe~2}redFoWc+s+o^7YSO1={PbaE4u|?NJZ092BN`ye2tTncn z(OBoLcpm9WenS$$b&!mEJt(fX3YZ0|z})(iZyly1z%6jm7z*n;&l|&ruCE@~hhek9 zoeK})=>ua}*Y$V26h+q&$1}Q)$4^$g8~2D|Aph!VFYO(A(7n0Ec=BZf*1^3bVUnh6 zVY-Uydq_Y!xV&)NHWAFKdmGKG*{q{2E%-h0(Y+5d$q$&Z+&(<*k%nn#cFN6dJMiFa z3%T`v+;3BzzME_0(^=6_ppBX2JlcAD3s8LG*^2>!xE4+30v_*-oSjr7;laM?RNl^qlWH7hI%-scg-#UWR2b$j zrYJ?i0Bj@!0FS1o646Ld+&?zz=gEF*y>_yv`lOPITB2y^RBsUVbD7D}kz7WFX^tj_ zm3Sr@iNF+zmkdc0L?H--FfWq@4lhJbCL*R7RJBBgEA$ax2K&S(d<&2lV%Ss5P=|PtN3P_!`{R?qgi)bRm1R?Prm=} zY2C=q7RBjXbnBxZJE6sSr9K37ev2~SzoifO{s3Leh`foZmk~#RI(D8H;Rn;#Kd@zO zeX*Z;URzHM-~%zG8Zco9>fQj;K79ihAyALZkzq!Oc?8jiM4^liEFOV^9QH1cO)PO+ z*|Jn$BkIC5nz7r*QJDtoO8Emxf|*rN3PLqEGIwHl9GpO7V?MOuGLJIlIL(pskRud2p$ASQGDNp5~$Y3Vc^&>Gs2D zXq}Ph24lfrRV_;$&=SEYSZt_BM*!s~m9#cV{KZ~1Y^jr4nqtHeC;$N2M1l!zV7*X8 z!gv*}Oe7lt>KC*!kJv1oy6`?$yn(w!?eF zujKyp4WDV&4lPX0vV>~8GI%jG6V$FaAJ+zS(;mF;366f`2_RWSjfPS9e#Q zloP|YY1+dHKV#ZMiPa~^_E)a3C4}SLUdl$YrH_$-dHfmw0ccnYxD#lF5#QxD2bRkT znxX#M<%I^xOh9~Z;F+%zJEJ*~-AY5)+%9}&bpn57(XjDmO+DP&-ONGKGS2nbS>Pb(*-S~v@`5D-W*Dzsbo+<0-L7DfcS4-A4tJG`b?A5ob z)T>T$xJ6fqeeBdg!B7kAF;RQkDriiZahAHK1*E$~;@gfwswXrTBV^ zFXQnRB8NB-Ic88~Sk5ohklDpeE`t4squ1zN4X`aN81M&dL%z3$!xrfWZNsSXCo8Ya z=_UQAy8ek;)VXKa;ni8e5-P9wd0F+1u_OCc^{2?Na-1!|-{AX|%Sc!FBCFK{Tm#yU zU;ce~Xx6|oI|)wt&luLZJ?jpyjY{X$e_8GRCdDxp-D3O4a5i!_LC3qvKwpc>e0veT zJ`|H%kJ(Hy^8?;>3th`dx;YYHIm<{Siody^V6H7RDn@gABDaZr8-Ha~{-Nl#QDK`p z0=*quK_=Qi4S~W(1FY?B57-p25wL|k+(RGn2YH0=4Wz0kR6Z{N6JuQ@W+4gMZ zVDQvwarWH!_!;&@Sl_#ANEh-E1Nt7dGSs&*D#N65^-*YG78F|<;JIN=kND5- zjz)Kn850wRe%`jvABZ148ehFyR@KT%7-okX;|lL%c`f&DVM7xQ$%x3s(dVHFz!Q{$g(g-Ho*h@^>!bZ<3i**J(V9c|pQd}D( zAK)UHYXMwrCaw(<%@*8~r2P=J2m?uuaeFu7slGYpugY~*spclf_8H0Tvpha`3Oo{V zU}w%;E6>f9ubr8B>gdSG(Who+o<24_eC%mhZDWaKEHW_ok_!`+xUvuW>oNF*y zFVB5)<(2|7Q~|rNZuYTO(%Tm+7!Qt#Fk8U4mOF^*^slQxGIj^Cs~G|8YANfamfQjm z!Ghv-I0oygt?2lc0)*H)Rc{Gry{_B+=z2htqj++e44A2PHp&N9fi|t1dshJ*1F6J& z8?Yl)%^}xJ4(r*rTP#EP7vhBsFY5zZJ{ptQ;q&3--MO z!OAbdwkzDCqWQT(ypjpax^8P4mTp-e(0?LE#Jt|8tNh9j1a4m?PQ`qu4eJ1`<5!1N zO(UBS(ig4p1AL!n$2PM@jS~Ub+GX7u(ln<$jD{=~VW!xLS<&bzojnMz6PAjuSp$x} zF;uQ?Xz>_&3oFs(8WC9&n)lU)8oZeS(9N^tB~A+~te&qjRWf$-hFeUq_S*Ovxwo^^ z-o#$|f&P^Km^!M6`iOn})bSUid!qQkWj8(ABTZsGdr5yi`G|FP)b36u?;Sy5)`u3vWQY)4ky8jxhscH8Th-A!xM`L?R@4)4@u z{IDLBU4#GFY5vqsNAx@O8QzhRpdcXx*>2o z$x6s*w%U@Pm3xD=5*YShPa+EK*1$>1^^>W%D|x28KviG{&4$=E{57rJ1K<(Kn70?a zAQ>Mw5de%87XWWbhQ93O%DZfsy~vuCccScgWucO;EU@FH$`!I`V@ogtVP8{{5<37) zO{%;qC6!81PCmI_rgE_I?sj&Z{qcI)9Lgk=Y8jYtC}L&NE2AW2uTHX8#vBatzXMDm z%9I=NeY|D0VTly2(AKQoJg+w(LnOUom3a6N7K#u^WO)x3S&L`6Q~7hFa$T|SjsruZ z2ZvAXzte71H9bGN@0+(D8XY6xd_^zHk6Uni~l&fe`` z?mzv+%=E>5;YL=NMEh1CR}MiBRRhlqPfP5u-Q|GC(1=;LmYA;q;5@*wXkJ6RzkzLU zVf}nOT-jaO6~=fvAAHCL z0Ca)&lI;rl48ZLQ5N^X~b{+1$+{j2SKQ@*hzi|49ePqubTuxsY$J0^!=$<{e;Hh+I zM=rPHP-*DU_FQiJA#Q0jZ;y`J`BC;zYGgWd@a(w*nd#wFYIr(x;N01Rndy<#$~(F3 z2L}hM1qKHXZqHGl!OPvKa6bT6xDh80lyzcj$##bY>K$Azvq92?und`|XFS8lHW)qv zHiY(xY$G;mF!Qm=3;_f0c3?z^9JPfo`3W3xH$vT14$2V%Olm_;yx-{n=-Sfm5#Jy@ z1YACiq)2GqA8H{w<>;!b0i(-p@{`Eg3n9n@8%c?dbpo6fC@Zk?DhCaX2I)%zjjT3# zK9jT0OpI)wm^t~>BPXAnIF!sq4o!_0r{~T;6d&C;%stK}!!Mbsd?r(hq)#0_@VNf? zBfP0CD9OHPVjz)wBbtmS5w4#`KaGL=Iy@J|c>^Tvnnq9*O}S5avW0 zF+!SR1dc|iFY9zHxwRODewu~?juUze)H;vB3I4I~A@!nn{X@EzQS2sDT}B*n)EE1m3t*>fA9!$X-}f$D z{KLn-y#FRYonc>m;6aL9kMrpCJq?(H(HN%cZ^Madux7fG?VkDivEzS?x#)iHFh1aU zknq{3k!$9UF;ja&3o$-_?{S){n}8d4(|2uvSs=^|t6CX+zb)Xq0UeXaB-kiCZDlD; zw2~|iVcgNv6zGAH9yVG4YZ@Wazy>7H=mo*HYk^jHenV%+ZX_GHs_W%eXnato_iqbF zwmNW7C)x{EpR}+r?x0cv;2%^7ZmwzwiH+ok3jF)>N+u8F4nMG>fZYS9W#G^aw>)Um zxUSR$+V4i`0DzrobEV$r^sl&LjWCr1+DDeK;T?d|X z4&{@0yTI#7lQL@Lm>CT6nxI&WIPwFsfP!n3_}c9Vg!Q;srIXL zx-BWJUpxP-*iei0Ad=#bEI?qAA__+*VSE7(>J0Iakoi8s$t)X~t%L~o)0}U`oL{gz z`&%Jl*tLuVn}$xC)^%sJ227;vB{WtOrTcS6i?x0Eo88fo9>uvSIjupBt4ArMNjLt8w$^lxHxUkXKjaM0kkGB1)A9&A7x$ z$jSsfj8*`@N%%$=yc~y_35>}TYiMl;ba3Phv=H_&rvazk6Z9y-PT%sv=yqgumJs=R(dJCt7yoo>U?BC$t8~2p)AUPbbmbl2$%wvkir_Wh2|coUT#@#ZLHmA_ z8w;;o35R{9@cLa5SFR9GrS!_yETLQt#g&@qXgw<1~$zC!i z2y?oQMfL;!KjX}zDMIT$M{6wWwHpQ))3jo;pF=~%aj&5st_u1`6CZq0j3_D4Q@B%l zb|n#PlL&))QuDF>fBKKaGSD~K$2L?=Vafi%w_lQ>pWqU?nwsvy)}y<_P-DYBjMs-t zxw`t?Kxsg?#!E>hv4Q0xsqy{T5IOt{k0*`Vx^&nW8y{LZu_DVY^@@_x^e}tPC`JY% zIg5iS-SD`9>Vg8NPwY8d6#N~k#%pR&*2X3$!bZkq8>|r>YHyHPbMMHeSQuO^ml>H{ z{eZoyYOwoKqOyX6$9x_i%YctP@2STlmep5->t84XqY z5|4vN4~a49WrZs83;>BcvF>rdc3-_Ra_s5ZQwLU`9QGX)0dDUwIho&@kvlc} z^s$j)ZtsC=VD-rZ9=}oXo#9t-a!@Bu3##gbpzC#+R#-%Nyl0GP2gGdXlUhPL3WwPKlK1IAPHrLBD<) zHVbJ6w%;lGZag&BZFaeZK3y&KVPn=|mfQsTfWP_11cN@n5of;53;EFpKWvfE2WSag z4R*Warsfa1GJpvjC&J?sX}~3Nn;@8jI#t_`J-tb2<Zuz-^l+gctSrk z%O|Q5mMekL^`mPJ)9uzk9tuK2m$MEJq0ocf%C$UginZW^9oBa1t26Y~KYg#6xIT#6 zG8E5#moY!);o!%)Yyk7K%mjj%r{3(O{+9hUAYABt4Qvk_9$l|tVXj-lw)@(AFx=%2 zvxVz3Y=U#x#M`S!-eSX?;OABdFeYWA#eq=PZoqmA8$8pqwHv*i(v70ADBq5!V=*|B$~1 zdyEeFir&GjGG&2g_%OHu&uB3ZmAO11z)aDV$pdsG>xfGWgEI5G0Hk1yLq?n&>}+5o z6+^HI{`7R90a+rf0Wh*t>-l?@IzD!`0DgJ;>d$EOWGCnuDBPC(*crMB*T~Ktic?s0 zd0;ZWMPM>MJ^<{cu%&d{&>ckS)_-7&@SBpnN!AAq-@Ll9o6s?b3oSG>x0pGE8Fye9 zDNQZ04U{5>78E^^-iYuz6IW%(JjLCbGNPXKtvN1xXlbBBfQo|Lf&iUH0}a@F=?)KP z=%Vdj-+Q`V2?HUmoY!^sU7%;e2jS81--W{;3X-Hnq8g5niAJ7}L^LTO!HQYOEiXxx zA4*ZFGA&7L0RiqX3ZfdFJ%RwL(Ssj`QORid1J;z|5*<1t#bp#f9ffVOtXffASKmfa zl&5-7*$+sgjqMq{AIHP`-oxCxm<;pmnstO$JwFIiFnplBFzaNiXggRo;HnQKY2V^I+=yoN8ZddAK*-0%jf1dP? zcC3Co_E(;~kJSvg7HRRz>OfAd)cCDiWoH~8AIalJ=y{d=d+ zyhjEU@12<|pPiUE3+R5~%*4c*1@`z0l~Zp%!iN2Vmuvlq6qNepBGLizpPraFUCqz! za4IJqc30*7bD)tmH}bx#{v=bvnT%T*N69);_d>d=i6rB+ZDgFbFyLXd?id!qz=n|e zuhqJAu5HU5gWi-&6F88g?$AkMbS#hTgV5H+b`Um%qj@~5?o!pCrz$+!1ssNhLw%|a zP@K;Ch!rBWu}=u*BAZ(+KAJpn`dA$17zS_69X^zb3RY{eHHU+;L<1)T1XG#u6A3Pe zrOqWzjAt@1g;#VzsJwkHqvdqH&*!>fjp&fw^m9dr9u3=ZrnP7H&62xgDS2)Lmr-5=6Y$Kfp68W@oQaK;mZ6Xh?S4>%UMHSQu2E zWnYDYS>Y=eB%FQ$1vabi5~4Uihx_pi?sAYl1XKSgq*|`>9;L{^H)##f`3#KbCsYeN z-8;aM+=ufDzrlPPa!|RAcvgwF^AR${hMQ^6l6xCy8C*);+j>B_(;I1Oj=(Twu$~D8 zdP>9N_x;x11BZ`&`}aN4(GIzSw&^Arhgi{+#U=pUip&Cm0)p2iKDVQhP%h6BH|FK{ z(K$z;>yYXTusW!!iGk0tB`7URo#fkJlK7FCG zpI9?Rwo387J)G~{0b}_B$k|?FN=O@z>#b|WyDgHRIhWR}i z*wc*e#z7|0VxNFx;W#e;)Ev+Ui0ZTZsCkvcTFQGhRmV=lu-7}9>lrDntW_+oeq_uY zm<|T*iS0&ax30&zDHY9?G$oB!J5ox;VNW7>_8{gT*Z>v`0B$jOfDtug);zd*k2NFs zmj3(@M{=8*aqOZf4TZ0!3fc!(ON8*AKVaA*%^L_5uhUSWA*Amney4v2%* zT(ODP{5lp8@?&AsNpP$WqC82LzIGDxW1U=-tad$%FAoYL@UM-qKF>0nmU27!RwFO= z_8#Ba?U41aD8_c*A?zOI%6pZv21s0qU~!O3izqL!#sXYWAdUbFF%`A)vi6pSf4(2A z?4koMe3zb)m4dDp6ckv?qX{^t3ALEOYJ?yRc%X3g0+*ny5e|jHp#JLw`p$M-h zVIQ?|C<)wa2uBC<`~gWi07?vJDCmH2rcWj_C`*zW4Tc3C^fPW!{sIj1-VCa8gqN{7 zD3zb8hM{WLKw;IW4t0M-S9rzOM=l#rQ>&i-G&DOCh1=Gyp_!SXUAShfl_{@*&smw3 zy`G??(G}B&gKduLkMQrq5BPW4Cz+T2wUr^>#U+6@JF1k{NJG=}iIN=pR&ig6n z{2scN5x$8tJ9}`(QGXdF2yJfaFQW*Byfa41sF5C0K%iCFx9Cl+5gcEA$H-k1U)X*B zo^>Ym=AHfjmd)daw(SB@ndx`b&_Y|^j_Kd^Scq{r@;mqTJK50uw#gm$A*qM-Lyn-f(YN~@k<3Pc6oezbB4EUL%Rf>HQ`0I8<)LA(=6 zIP67)%dj1!k7@Uui4({J7g4Y)*nr3@zKQBV6fJAgop0r;&@^aTBfN|`3x}d3~iA z4PR1a_9aCv8}Z6zO|D#*HFnG=uFeuz%6ukL3r#`gWM~ZjKn1w z+t#IoaY9ysXJgm)F%S3?d<^~$S?0^^IOBXF>*}y1xIgP=aD(#BCMIrw*130SL9J)D zK~kL~^;HT625|a<8Qemlo*6|n4hXrMQh21mz2|Ni9Q<~b5WVxizvjUiGN_3&y6E$Ijp)QJv!M%?(}d?#)3u2fEll1jW``fm$5wH-FpM zAd<%hz2w_|EqU9g$*5}E?$L%W7>nTye4Kxe(>8YBN=yF1XpeTJ?gg2c?gwB78AQ~h z8T$)gydQMIy&E<{&Nz73`$5m<#gV(|fFd_a#zAxajvaz+8cY_jk^#heR%Bq}!I0uu zJH6ZX{l@sJN(!bVP;h{?si6}`Nu}YPNs3Lp`iKh2Yi%p!owXnv>}zl1J7XII!2$wF z1X>Gmi%&)oQ%%YSaCqxon}o zZU>@sy8t4=+&+$D=)nJWxdqUu){VkAXjUtdH?~sp#sq1%@AgpH5@=7UN`_JhrWC>f za3=6F4x@2Li6X%TYZCVq&QEkh(0e<%P`OpOodkK0-mH1fklBl;>Gn)sZbnv_Kg_TK zEMo|?^*ka#f2t~TGM7OX?uE$2={a~BSwW-p`1nD14Jy&TWU4O?$y7JB2+m_Q2lCU& zpwG{VnY}YJdvie($~1mpHIhDdU~KHbu{7uKqv;carSvGjdP*GBz{8b3aE8j45IGbj}11lranq&GZ^tDz|{x*TQHkN+a3^ z<3+vE7sZIe`Pb9jfZ#LmTw)YLN^u)2Yx#7KLW*|B`H}~$bx29%h-{H@^UAg+)PuSzE`3(0qH~Z{+ zm3J$zfU@Gp^ZRaq_rp${^k22j%t229`O0JO7N&I1Hgk$+9wi&-8P7ru4q0?scE&s0 zFw=ou=w4F%=s8S_s`BC2fE?^PU?S-BXEOVs*#Z7N;G@$h@aTacr1qvM5rZm^3>2&9 z9C&mIf-x21NDpzV!%Stw%A5EF2Ol)YBXCc+BrBuwoKc9F@V^i8sR@-L&1ut!Di+*c zL`#Y5=CAw5R8pm=mbQvG%!-T8C}K2Rxg5=FgAqM#Mv^#vM@&zvA{2cirAic9S;q(XeN6HgN_JWZgzgAn1u`q4l&iHQ+445Xn#Lat=0oe+Plf zmM<<`yRB@H9dXboiU%bhkSv^Oxkne~Ro{bun zM<6`TiRzm$p65wN_i2AO!W!tes=cN&*6IJNAeD$~&;bXq{9%?BTB{g%tKv4`TL>V8 zumf@%T0`mroP9H!Xf=Dsr_Z-{<~+Y|f5>wY{?)N+|BOkPj|>E%=L898C!221;qcb+ zWM3USv!__xb7pM()ZV_ny{BH#RdzZul*rEvC)p1Zm1m0MtgYX0z;j9dovy{ZppggRjmy#Vnnb>tXtJSI{yR(^@O=@#hZPoEK$y z70lOqSIN89(RKYrwU`<64Ju^4`9`|J7h=96(S^sPckT49DY~vVqW1r7?`mM1xbpnW zc>IxxamLPM;uyzqjANX{b&TT#JL`rt1e1m|%?6gHA#IZoLVy(5G)-x*W$8BMXqHlz zBDP|CwBq&Y}PzRlSM=G57nwv4d%Q-Mibn z)17pN%$xW9F>l_y_y73)f%rQcsjowtC|zOMq9E_A2aSE;`$&lyl$sY@l9)m2ynqO- zYy@ia0)h#xT0aK5pzS~cq>kbe6;_P`%WG=uBGLLn>+Q0nx3+O~$G7~ave8zLJ{1Kx z%7F*5%nafo4rrysm#D{oI^wN_ejL+3f<7xT%*_PFz6}47Atp>`KIK6`I8apN$$S8Y z(XUSnA4JFj>k(ebd@4!Ppab*4yy(ma6fM0EP4wy0* zt=5AG%|+U5-;C7P74Zh%{|fFUZbqhcg}yC>ILt6qiFMR>;RAg>L0z>R`gM1ZD$1<6 z2>5xkHoAgEK3k%c!|SH&4DRzDiaRlbwEAJ4`z46&MM{agJU8R_F0GMEGL<|fs*e4Wde@^^SacN8Vr@2rp=4K03? z*WGwWvH0|=mQ9;XipACuw%g0ycX(`Od&fW!G_&sR0|#V+-&dR^RVGuY+v#$HCIu?A zWSbJ_@4aI~o5dm}J59W+qRU$8%dn>7ON?_p6v!F-M&Hyh>=mr(p80e&M3!*YrW1G(_G~zelOU4`i~w5O zOGx-&DMLKw{9&TI)H|?daOp6hP*(+IF{3{FaxGPo96dukYpalUWxkY?0Q0 z7#iLlf4E^Jl-Wb-VElp5NW;VN?ZY84&>C@f%8&+AeIQP{LGJUr@s8=|724aGfKU_X zPU)wDnKJsQ5rM9#%2bA}ND&d}03-@={20ap$TPG<^(cRw@zl@;#RH~4LHgY;lTsjS zmb2-~Fac`L`YQ>764zTVB+Nir3M&2V1?2PY^%HB1_K0}xI0*b>fUyqO*-<5pW)-CB z=vzp#OUw0-Von-@HjAJ*<-& zPRw+)153T}!F}!Rdj}dD2ll=VlUqP0;bWNM!BF?~nbGZMrn}*8?>yLqu;%!Kdy)3R zc+RE0(KVd?Y+?o|+MBr0VtK^FqJ5CUZD*H01L{Jh95v-J?KEaVz`?ZHb(Q_G42MO=G>Dre@gz`AoUF z$67mxJaE?FUA{Cn&?))1}Ms%oQ!6ZlyUFNMC@}t4(`J1O_-0 z@_gE5huAdhkz9xk95hx4h_(!&WlO1ZWgn_&L0 zN4%ks_cDON&p4b5LqfzQXMD2LkO_Nk9Q6i+Uc;Ct{2@s;d^kXy5d9ou;>0iS`&j~;_hj>oJ#(XRo_b+wwai2fhc%#N2kNbV`_?4hb7||Ra zcfj`gg8}El`>x;>9BGV3UsQ|+k<#yPq(6F&JlBHx`XOi)Wu(`NwXjw*)H50Y!$LIA zLk%a*sGjSak=K2A8Cg5G22ON48$X1>UL@oL7y zUxpEbP%s#htO9>YaAhv;8^doOA38b4xAK!7Sf%nQP7kOQ?~GBqu;;#c!SJb31>d+I zoY=pCRZeY3U3xFqhj(LPZnkR!32lSp&4$!N6MGmylN|uvcOxp`c(b4^+;MLoHt5=MJM>2oc*rqZ z&Q*pGgs$R9s+K_VihWI&fkv)_Ip7)I$p;!58;FBPUs0SpXoAZ_k#U{Zi}Huxznd&2E*8w_MM|hMBM;^s)_~f)Q`(>gYT(R4D!6`msz|fh_R433IatS2q2R+}C0P(pL18=oY!y~mOZ)Lx6e9|FxwRQe#XyEPCq^ums zRb}`<5RZbJi(gF_7{WH$=dG@)5(~s5;4WG_V?Gb?pE`m{=B#)Orddov5XpSNKk(_v z4qLFvw6w$GlHm0rp~aSYTQD5~lOHQ@7tlckk8f3^{+SRM||T1j0x zhO;xtE|ox519Z1^4ZcFqB4X$yVq7d`PXnV*r<#snTrm`LCJE+qFDG)W}gjg zAcXQ8RL68d!L&uS7&yXoGk|xVtOo&`7ArN##Dr}@)M67o z8Ux9F^Rz2kZnjtQ?_R#lziYXC85TKVo%81B1_{^&b72f2l#M>fBPrOMalm6OCM%1kDtdJr=}25BF52tEQg&?r z#I^n^zqd#l&7?Y>gb6~AAo0DDt-@c`zwo7hZ2yUkd*)B{HxBHN#RcVZe{Yvx4ZrRm zn?Bi_nrh12$VAj-_w@E(;w|ly8zcR%&OgzA>L7jGc+LhJ13lsb&bhEDSWM5@QqSz_ zs9;N#k$NQ&xS;DgXLLdg6U1YEUxY^n)K_fg7NI0)e_#g=9FQZRD;DvJUW-@#EbO`D z4J~}6_$&wz;=VqQ@P@D7opGyP{@30xw!lqL$NtFI=N6J~!G|_sqW!P5dtiV*O4!gL zUd4M`4SAG$ATz9DFJwJf4KUTDVx{IFKHUOW1%%gZG0Yjz_nWh)dBB#@vTgDRkgCHP zy|URz;&fQU&2TV<@dl75cW;Kcm4~K3-UH!%HI|CF)sg+L_Vhg21u2g1;qmQ#ZqWir zHVAN>cliae#_je2*nNYHBWl>`4%zS)+rkj3wE*Y!_{0b2e>>9sWQU@v!~0+EZreT7 zKQhr_bGs~-uq)Fd!q|Zy-#3(T)Jg(VvfLew4TJ8Cy^ssj#C{c; znRr-`EGM1+K%G_vLNFBl3H#A9^!ZM`S7*d5M(%9k{5!K%)M4Qq3{j zxht*bx?gVU40$P0Bzl0xqkzsG;+ITc!VT^Cdd!Knkl5=7TEtsf%=svI5`%R50Mh4N z$D&jZ z=yn8=oVz^Ml&#xW&i4#hPf|Zq}#P?WcZjAAS4vo;|9;l5K zuZ$5)S`lb87-DALK&=99m;wnbsBA0`ti(4JWmXYtU9_Y$;1kBXfy50I?(XhG5tm z7?ifFH4B}6ZnqS$j>Y3+fDV=VTteq|71{d1)t@>IPXB43wBf6b=Y0e3e=$%n)@FBd z3Rsd@MnQfc!Sf2nXHs;iZ}3u?U^0mAUOY{Oq#bm17pD30Z*ZJ)ly<^9cztN-b>JO* zLhdK~$KO5N({uRUaq((?D5bhS)^q6Haf-*hl+ekzgpN|1*^2olN&tOm|6tOnFGRD{QY zMMFJ(woYrAPd|l~?R}WjB2k$r1=>JV2Pl=(Q}~)Bm_$f= zKL)1oDNNih!cm@C)4q;&am9}GhCaAe_OuU1yV6nYe*yf5kdU1O0Yt~lwq4_ta>}la zVeYFiSODSqN@hI<^O$KdGR_N=!7B#mHV1J8D@C9=R+7wL5pT?k_}WpwK0gylB;^XI z%)2kmyD!d?19C!r;;%_u^hPIL_mhAf(1c+J5MXX!Kt9jHf0zy97{zu#k+>g1LQTh@*_SfJs@3Q_ey?Y;a?@Ycx_9DoFpwi_qm>yp>N*bCi z-3W{$aP560ZFIO!+W`&r?_ujd49pN%DUNExa{8|@F_x}F-~{(5r|59F4Oi#I7Rj&VT3Z|5niL)%S0wx=>1C* z7{w4OAc_+e{mr{fQ?}NR7wf<6F4G+Le(Vm1-5*mczj;UdR7j&U%pV;CshXRK(sNFL z5zGWLB%tAWs-kv0QxB0nl63?=p%cwWX}DIvmXN)Fm3Wz$d4fL^B)&t99p8Opl3c^| z?(sk4HwqX4N`nDFk3HEg)==**(GXu^M^o%rM7()d!Rs!<+D$gA)`D}o6`YMJ?nUmT z@%LHzlV@PT%7)dP*Z!8N5Vh*0n^u|0*biYb80e~GJE04&=`=W9i>PG< z69~OncuCxxK=MDDU-xjEcTVw07m4|3s)!@ z$b#CAv*{odl!o)mcv04lo=xvX8TTUbqWLI*rEWT#cA<<7`KhOvoS2A)81hqtgS8GE zEHoP&(Ti(;x0==XgseS&Ha(6q9yv?AtYT#y@hZnyg9@QoHCx&O#%8Y8LQqm?m%27k zn)@zXL=lA=Y(9C`lJsi@UC&(j`)s&Ro~`t4`dVo?eIaF)UZ&pdLhOlVtAoQ|E3=lB z8KNsSV+G3?r7P7KXR(P~>?*y$T-B@P*|ybB>)g3cy+^tdSfRF8p6%XyFSS!2N7keD zdXI8xrsUcCrXcn<+e_EmdepD?D3=nYJw&C=4(Mg(^=Px+qg+aqxs{bU%F6tw*o6)@ zde6zTW6$lNzUNY+%$=;vU3Aruagt?xjIPxFr}Vn=I=hcLd#i*O<=JOnJc^L~S`OS^ z%k%Q=!RL?X_YQ;h0+lm+I5%`ZqoJF9>GlCc#-HmM^E!KiIy?Ky?OjGQPEs>w@N{mS z0JJDDEEotKa9JSDj0cq$`2vAyX!{Z~c(i%Jacm0`S}n*xfNe?4pyk9={dr;r^CmCZ ziG=n_Lff2}L1!t!7z{AJcr-7;$;1pskD_)av|S0J%{~O1@`)MD>AYm?6Em2)l&n87 zgK^J`noMY;32kcvvW?n(VACt>@*-bKXg^DkaAV6xPFD&nk^vS_>RRflfLK*ku(~$1 zA{uLmC%%_l)v~&6ZTq^;d%M?fxUY9p|3d?thqsRI7~8pP{E^AW9)IGgz5AY?diKC` z2cLi8@QX)(_R{g6pLpeDj&=NB>+=7%no9>n*wcLm+Ick({1jV6>;@U?MV`VW6GtFX zaS;3K}PRt!YYvk9wMzFU5rhLH2?{>9|1T#997W%V!NW$KqC-LBWlyacSV z@PVtvwJ@)$LJe-5lGLm!pdTfH76O7@lT&H3TALInl#D1sRViWw5t2)y7&wM6LH4@k zg`pG{sXId`N>!RsEb@&~KBv^AJKd6$$spfl5HO)>0#R0rC38(xF2T|Y%&|+t8DMju zc`hM{8(f@6EG{Xjpm{C}nmDYeNvD(A(+pF%sxz)Aai`iOp&B(?A?pYly4a*)i&JVg znVO;4g18}Sb+#|a=42gLP^82UBMPlRt*kJ5ER=mJ;5p% zR`2oD13>tNE16CF-(C3*Yo}RyBoz1m-R*)*My_2rrhG@cm>pKr(avXw5{aQ_JFi{t zd~QoJx#hV|qbC!(@fP4>FMdbM{!)FyzcfFd7pXabPfK=6lDbACfDE!qjhYy}UB}Uq z({Uu@Kx7!r3{^)Emhsd`)sg-Yta(o5k*PiYPt-wt4)lWcgQI2`IWmTKoq{P&;9Bo* zoV@-}QSx873LJ^>`^`Up5y`nXwVN>u2gF{|-bH)a5BW@=-NXd8q!6D$E>=r6mYgZn z$9|NB{!9wD#P}sA8~+4phB^HG`ep_w2PW}jaK+yM<>`%^S4|^mX%dn`5u}5u3K6Xk z&mpew=1s(F#yL_4f>iGrTs{C5{Up+#L0QOe^x$sJgZtdL2jxP{gH#*=X0yLkh3SqyzBV~*3HV@K^m{m9?N zNya^>e;R0RKv_ZBt4ND_(4GyPVmyuVy0`+vRivBL`!DW6m`3e|nVSgm9K$XNWf}%h z-W(7hr&!rH#0bjl1!C3+s~_WmxHFu^gz-Rs1#uthMgLh{tz3(E6!BeXuLE%?SJ;aQ z+sL_%ds%yIH1;%>Mrf3xv$e)?jO_sYY+TTeY1~htkA1LujJDE~&bdMt9xUqO1NtBL zd$>a=5Pz&pDi?piZ^TT{`$_fbP|tc=%AcDHh{8|UDZFDiY8*3lnm#eNn2(q*TZSzc zq!DSRFuX)uve(vWJ6+^0+Ag1#zqB88v=$F3KIOd+}QZh%9?mb{GCKk z;#A`Ork=))^`8VJ82z0p#@a(`5HAvyN`+6q=fPd;$=(Z` z4ODqO+<^Ou?7av%vma;gjmUc{dvAiR#b0Ibi@80}H`eo><970?)UKTq>nFw^-8|vl z_K0`TJ25^uyyfA+@g3e>Bi_{dyS*&I=&s$~yLV1(8Q(cLv2EAR!7=aJhlkpsnRhqr zXnKL-xD8TSTezLvBe*^c_hD`f;S{=yh4vtPEB7cu2f1-reB6RrHNxU1zBRoUz0J?D z5x#MhzK!Maf`=Q1lu@pxTlJ)}Wv<7ljHABIaH$=S;5vvu3LWHzQQE_-B|8wd3oY?- zDOmo#o4M5D3HU}4vl}6IGe6b86L}`GZ5U)dT#IssAPKPnsr6cNz4D@$gRI`IsBI@} zKjq$n+P%p0IIa`OwI#1kFKYcETD=W*jU$G}a4pG>f=K@Zh8~YUx=%QZeAow7I z<_CW)0IZrI_=Gi}HiaNL6b98ag7J@nPZR@+O(WzyyMg-ww-NNKUTDAcF)K0;a1VkWJHQR{B5y?R zM=&0{F;;spW>0c^c@wyd7QTR&_(I;wFM(iB5ij$0-oY0`vUe8zs$W9<@lD7?mp}&l z(Vg2O_+{NT-MuU8zl-^!*?71sC?0M!>(*!8Sk`UGx{X23pa*Psb_j&JifpVj#1xpkVQyEo1Ahwe|OOtrn0ntcB{ zP3ghSzWd8HQ*D1QrwQIQnxVE0@)c`lggXVum%(F!r=T+HF~eiAWj!W%%+F^%MtDq3 zS&s;hu`KH`z$3P0JrX=ZY1UH+kECQhR(J{vvz{gJSk1Zzz*X6H6(Q6X69C|wnncTF z@0v55?MFAc#Sl9Z$ZHq94tVW#i{4^*9qvW10&lTv(OUwqqAq$>cuPtay`}J~#fx4i dyruR!e+39MV4wg1 literal 0 HcmV?d00001 diff --git a/addons/project/static/src/font/mnmliconsv21-webfont.woff b/addons/project/static/src/font/mnmliconsv21-webfont.woff new file mode 100755 index 0000000000000000000000000000000000000000..3ddf14fb814acc5c5f9141432e95f6b6b4027d1d GIT binary patch literal 26348 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 Date: Wed, 4 Apr 2012 11:26:18 +0530 Subject: [PATCH 078/176] [IMP] bzr revid: sgo@tinyerp.com-20120404055618-lbd3oh70smsrcr47 --- addons/project/project_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 8ef5306fb79..de52d171473 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -206,7 +206,7 @@
    Deadline ,
    Progress/ days
    Progress/ days
    From 43b46a1623afa8d17601e0bd7965048e16db1f0f Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 4 Apr 2012 11:39:33 +0530 Subject: [PATCH 079/176] [IMP] bzr revid: apa@tinyerp.com-20120404060933-ejaapcvswhrisoou --- addons/project/project_view.xml | 70 +++++++++++-------- addons/project/static/src/css/project.css | 14 ++-- addons/project_issue/project_issue_view.xml | 17 ++--- .../project_long_term_view.xml | 17 ++--- .../project_timesheet_view.xml | 27 +++---- 5 files changed, 75 insertions(+), 70 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 8ef5306fb79..227eb754e2f 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -181,37 +181,51 @@ } -
    -
  • - B -
  • - - - - - - + + + + +
    diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 914e1b8d600..6951aee790a 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -119,19 +119,12 @@ - - - - - - + + + + + diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 6fbec2d84f2..7630f91fd8b 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -35,25 +35,26 @@ - - - - - - - + + + + + + + - To invoiced - + + To invoice + - - - + + + To hours h - + From e9cd2230b91bc26268e72454f2eefd8c285ea65d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 4 Apr 2012 11:42:19 +0530 Subject: [PATCH 080/176] [IMP] bzr revid: apa@tinyerp.com-20120404061219-ly96wkv9gv6ojlm5 --- addons/project_issue/project_issue_view.xml | 2 +- addons/project_long_term/project_long_term_view.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index afe31603619..5e58ad8a709 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -392,7 +392,7 @@ - + diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 6951aee790a..ff5cc6f9653 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -122,7 +122,7 @@ - + From 66daeff7746180dce5f38d1defcc24e3b381879a Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Wed, 4 Apr 2012 11:46:17 +0530 Subject: [PATCH 081/176] [IMP] bzr revid: sgo@tinyerp.com-20120404061617-r463yhakhd49ren7 --- addons/project_timesheet/project_timesheet.py | 11 ++++++++++- addons/project_timesheet/project_timesheet_view.xml | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 5e5285b1816..85231fe6f2c 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -47,11 +47,20 @@ class project_project(osv.osv): res[project.id]['hrs_to_invoice'] = hrs_to_invoice return res + + def _compute_timesheet(self, cr, uid, ids, field_name, arg, context=None): + res={} + aal_pool=self.pool.get('account.analytic.line') + for project in self.browse(cr, uid, ids, context=context): + timesheet = aal_pool.search(cr, uid, [("account_id","=", project.analytic_account_id.id)]) + res[project.id] = len(timesheet) + return res _columns = { 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view"), 'amt_to_invoice': fields.function(_to_invoice,string="Amount to Invoice",multi="sums"), - 'hrs_to_invoice': fields.function(_to_invoice,string="Hours to Invoice",multi="sums") + 'hrs_to_invoice': fields.function(_to_invoice,string="Hours to Invoice",multi="sums"), + 'total_timesheet': fields.function(_compute_timesheet , type='integer',string="Issue"), } _defaults = { 'timesheets' : True, diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 6fbec2d84f2..efe8edb9808 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -38,7 +38,7 @@ - + From 0d201ad04be4e54e3bd3e037281cae5d63ee33f6 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 4 Apr 2012 12:00:11 +0530 Subject: [PATCH 082/176] [IMP] bzr revid: apa@tinyerp.com-20120404063011-0dduyosdzckpzt39 --- addons/project/project_view.xml | 2 +- addons/project/static/src/css/project.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index e9a825b94b8..0778c0f9571 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -222,7 +222,7 @@ - + diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 4d695424e45..7e67f12b594 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -30,7 +30,7 @@ table { .project_vignettes li { float: left; } .project_vignettes .project_avatar { - margin-top: 20px; + /*margin-top: 20px;*/ width: 30px; height: 30px; } .project_vignettes .project_fields { From 5e8bf6b506a807356a6bbd17ccc6a14c02297dc6 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 4 Apr 2012 12:22:08 +0530 Subject: [PATCH 083/176] [IMP] bzr revid: apa@tinyerp.com-20120404065208-iab1fi19ceo0l4mc --- addons/project/project_view.xml | 14 +++++++++++--- addons/project/static/src/css/project.css | 19 ++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 0778c0f9571..4a6b8a43145 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -221,9 +221,17 @@ - - - + + + + + + +

    + + + +
    diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 7e67f12b594..60548cb578d 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -30,7 +30,10 @@ table { .project_vignettes li { float: left; } .project_vignettes .project_avatar { - /*margin-top: 20px;*/ + width: 30px; + height: 30px; } + .project_vignettes .project_avatar1 { + padding-top: 4px; width: 30px; height: 30px; } .project_vignettes .project_fields { @@ -64,14 +67,20 @@ table { } .project_avatar { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } - +.project_avatar1 { + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } .i { font-family: "mnmliconsRegular" !important; font-size: 21px; From a26daf0d129855bdf332c3602afc5b4afa21020f Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 4 Apr 2012 12:37:21 +0530 Subject: [PATCH 084/176] [IMP] bzr revid: apa@tinyerp.com-20120404070721-vwv7bn696x73s3ci --- addons/project/project_view.xml | 2 +- addons/project/static/src/css/project.css | 19 +++++-------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 4a6b8a43145..f85b0faa594 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -229,7 +229,7 @@

    - +
    diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 60548cb578d..b17094902ca 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -8,8 +8,9 @@ font-style: normal; } .project_fields { - margin-top: 10px; + margin-top: 1px; margin-bottom: 1px; + font-size: 11px; } .project_fields td { border: none; @@ -30,12 +31,8 @@ table { .project_vignettes li { float: left; } .project_vignettes .project_avatar { - width: 30px; - height: 30px; } - .project_vignettes .project_avatar1 { - padding-top: 4px; - width: 30px; - height: 30px; } + width: 28px; + height: 28px; } .project_vignettes .project_fields { width: 100%; } .project_vignettes .project_fields th { @@ -56,6 +53,7 @@ table { .oe_project_buttons { display: inline-block; padding: 0px 0px; + font-size: 13px; background-color: transparent; border: hidden; color: #8A89BA; @@ -74,13 +72,6 @@ table { -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } -.project_avatar1 { - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } .i { font-family: "mnmliconsRegular" !important; font-size: 21px; From 196564ffa2c87c7125301c5617355b483a3da5bf Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Wed, 4 Apr 2012 12:38:09 +0530 Subject: [PATCH 085/176] [IMP] bzr revid: sgo@tinyerp.com-20120404070809-lntog45xrxy8g3xs --- addons/project/project_view.xml | 4 ++-- addons/project_timesheet/project_timesheet_view.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 4a6b8a43145..967c094edc3 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -206,7 +206,7 @@ - + - + diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 222031d52b9..4e2d90aabc1 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -43,7 +43,7 @@ - +
    Deadline @@ -215,7 +215,7 @@
    ProgressProgress / days
    To invoice From 5c5edd965f7db39e8657cde66a5d3393cda2c829 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 4 Apr 2012 14:11:44 +0530 Subject: [PATCH 086/176] [IMP]kannban view extends bzr revid: kbh@tinyerp.com-20120404084144-1t9fs970zbztpv7p --- addons/project/__openerp__.py | 2 +- addons/project/static/src/js/project.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 addons/project/static/src/js/project.js diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index f438102d599..eb55e552259 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -71,7 +71,7 @@ Dashboard for project members that includes: 'auto_install': False, 'application': True, 'css': ['static/src/css/project.css'], - 'js': ['static/src/js/dropdown.js'], + 'js': ['static/src/js/dropdown.js','static/src/js/project.js'], 'certificate': '0075116868317', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js new file mode 100644 index 00000000000..ba9372ba937 --- /dev/null +++ b/addons/project/static/src/js/project.js @@ -0,0 +1,11 @@ +openerp.project = function(openerp) { + openerp.web_kanban.ProjectKanban = openerp.web_kanban.KanbanRecord.include({ + bind_events: function() { + self = this + self._super() + if(this.view.dataset.model == 'project.project') { + console.log("this"); + } + } + }); +} From 7a42d939a34a5252cbe0e94ecc82ba03524ad111 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 4 Apr 2012 14:25:52 +0530 Subject: [PATCH 087/176] [IMP]dropdown menu bzr revid: kbh@tinyerp.com-20120404085552-5ykkcivzdpowarnn --- addons/project/project_view.xml | 8 +------- addons/project/static/src/js/project.js | 9 ++++++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index f070082378c..db4f2a78c7e 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -175,15 +175,9 @@ -
  • - B + B
  • + +

    + From 27dd8054fad88f64112478fc118b2dbe35534de6 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Wed, 4 Apr 2012 14:31:14 +0530 Subject: [PATCH 089/176] [IMP]improve bzr revid: sgo@tinyerp.com-20120404090114-qhq64kye343ahw7r --- addons/project/project_view.xml | 3 ++- addons/project_issue/project_issue_view.xml | 2 +- addons/project_long_term/project_long_term_view.xml | 3 ++- addons/project_timesheet/project_timesheet_view.xml | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index f070082378c..6cbbe39c3c1 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -173,6 +173,7 @@ + diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index a1cb503af59..e2384d50d27 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -4,17 +4,11 @@ openerp.project = function(openerp) { self = this; self._super(); if(this.view.dataset.model == 'project.project') { - //open dropdwon when click on the icon. - $('.dropdown-toggle').dropdown(); - - //show and hide the dropdown icon when mouseover and mouseour. - $('.oe_project_kanban_vignette').mouseover(function() { - return $(this).find('.oe_project_kanban_action').show(); - }).mouseout(function() { - return $(this).find('.oe_project_kanban_action').hide(); - }); - - //set avatar title for members. + + /*set avatar title for members. + In many2many fields, returns only list of ids. + we can implement return value of m2m fields like [(1,"Adminstration"),...]. + */ _.each($(this.$element).find('.project_avatar'),function(avatar){ var dataset = new openerp.web.DataSetSearch(this, 'res.users', self.session.context, [['id','=',avatar.id]]); dataset.read_slice(['name']).then(function(result){ @@ -35,7 +29,9 @@ openerp.project = function(openerp) { }); $('#list').replaceWith(my_list); - // set background color + /* set background color. + we can do other way to implement new widget. + */ this.$element.find('.bgcolor').click(function(){ color = parseInt($(this).find('span').attr('class').split(' ')[0].substring(16)) color_class = $(this).find('span').attr('class').split(' ')[0] diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 90423032324..f9290e5c7e1 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -366,11 +366,9 @@ - - - - - + + IssueIssues() + diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 9cb4bb0ba41..2e90659126b 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -121,11 +121,9 @@ - - - - - + + PhasePhases() + diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index af335bd5384..6f7277f4aea 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -37,11 +37,9 @@ - - - - - + + TimesheetTimesheets() + From 49eb72d417485457c9ec93570ae3e82739563a30 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 27 Apr 2012 12:01:52 +0530 Subject: [PATCH 157/176] [IMP]:improved code. bzr revid: apa@tinyerp.com-20120427063152-9qp4k3mz6dhgz7ho --- addons/project/static/src/js/project.js | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index e2384d50d27..5365e0b0942 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -31,6 +31,7 @@ openerp.project = function(openerp) { /* set background color. we can do other way to implement new widget. + because we need to rpc call for that. */ this.$element.find('.bgcolor').click(function(){ color = parseInt($(this).find('span').attr('class').split(' ')[0].substring(16)) From d2b70d38c34a4a30f02c8de1c221765d15a153e1 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 30 Apr 2012 16:19:34 +0530 Subject: [PATCH 158/176] [IMP]change color and improved as per said bzr revid: sgo@tinyerp.com-20120430104934-34tsnkf24rms9izx --- addons/project/static/src/css/project.css | 3 ++- addons/project_long_term/project_long_term_view.xml | 2 +- addons/project_timesheet/project_timesheet.py | 11 ++++++++++- addons/project_timesheet/project_timesheet_view.xml | 6 +++--- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index be87c7c0e17..cfe0559b6ad 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -24,6 +24,7 @@ .project_vignettes .project_fields { width: 100%; } .project_vignettes .project_fields th { + width: 120px; font-weight: normal; } .project_vignettes .project_fields td { color: #888888; } @@ -117,7 +118,7 @@ a.oe_project_kanban_action { background: #B1DCFE; } .oe_kanban_color_2 { - background: firebrick; + background: #FFB8B8; } .oe_kanban_color_3 { background: khaki; diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 2e90659126b..1f258ff2ead 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -308,7 +308,7 @@ - + diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 64b9c7f298b..cd2821e9487 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -76,6 +76,15 @@ class project_project(osv.osv): factor_id = data_obj.browse(cr, uid, data_id).res_id res['value'].update({'to_invoice': factor_id}) return res + + def getAnalyticJournal(self, cr, uid, context=None): + md = self.pool.get('ir.model.data') + try: + result = md.get_object_reference(cr, uid, 'hr_timesheet', 'analytic_journal') + return result[1] + except ValueError: + pass + return False def open_timesheets(self, cr, uid, ids, context=None): #Open the View for the Timesheet of the project @@ -87,7 +96,7 @@ class project_project(osv.osv): context = {} if ids: project = self.browse(cr, uid, ids[0], context=context) - context = dict(context, search_default_account_id=project.analytic_account_id.id) + context = dict(context, search_default_account_id=project.analytic_account_id.id,default_account_id=project.analytic_account_id.id,default_journal_id=self.getAnalyticJournal(cr, uid, context)) return { 'name': _('Bill Tasks Works'), 'context': context, diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 6f7277f4aea..0efc228136d 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -32,7 +32,7 @@ - + @@ -44,13 +44,13 @@ - To invoice + Amount to invoice - To hours + Hours to Invoice h From c43e5dfe7e57e73d60d5e3ca2320ea52958726b2 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 3 May 2012 14:32:02 +0530 Subject: [PATCH 159/176] [IMP] bzr revid: apa@tinyerp.com-20120503090202-w2ciwyb22endil26 --- addons/project/static/src/css/project.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/project/static/src/css/project.css b/addons/project/static/src/css/project.css index 08ee57655f5..93437c878ba 100644 --- a/addons/project/static/src/css/project.css +++ b/addons/project/static/src/css/project.css @@ -67,6 +67,11 @@ font-size: 11px; -webkit-box-align: baseline; } + + +.click_button:hover { + cursor: default !important; +} .dropdown-menu { display: none; position: absolute; } From bfd96de42bc942fa24158a8c87b9e905c2460b72 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 7 May 2012 12:50:49 +0530 Subject: [PATCH 160/176] [IMP]rename all fields which r required in project and another module and improve code and bzr revid: sgo@tinyerp.com-20120507072049-u00lsqra9x34nf73 --- addons/project/project.py | 18 +++++------------- addons/project/project_view.xml | 12 ++++++------ addons/project/static/src/js/project.js | 4 ++-- addons/project_issue/project_issue.py | 8 ++++---- addons/project_issue/project_issue_view.xml | 17 +++++++---------- .../static/src/js/project_issue.js | 4 ++-- addons/project_long_term/project_long_term.py | 8 ++++---- .../project_long_term_view.xml | 14 +++++++------- addons/project_timesheet/project_timesheet.py | 8 ++++---- .../project_timesheet_view.xml | 14 +++++++------- .../static/src/js/project_timesheet.js | 4 ++-- 11 files changed, 50 insertions(+), 61 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 27370363140..29816f5f922 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -155,7 +155,7 @@ class project(osv.osv): raise osv.except_osv(_('Operation Not Permitted !'), _('You cannot delete a project containing tasks. I suggest you to desactivate it.')) return super(project, self).unlink(cr, uid, ids, *args, **kwargs) - def _open_task(self, cr, uid, ids, field_name, arg, context=None): + def _task_count(self, cr, uid, ids, field_name, arg, context=None): open_task={} task_pool=self.pool.get('project.task') for id in ids: @@ -163,14 +163,6 @@ class project(osv.osv): open_task[id] = len(task_ids) return open_task - def company_uom_id(self, cr, uid, ids, field_name, arg, context=None): - uom_company = {} - for project in self.browse(cr,uid,ids): - user_browse = self.pool.get('res.users').browse(cr,uid,project.user_id.id) - uom_company[project.id] = project.company_id.project_time_mode_id.name or user_browse.company_id.project_time_mode_id.name - return uom_company - - _columns = { 'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250), 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the project without removing it."), @@ -207,10 +199,10 @@ class project(osv.osv): 'warn_header': fields.text('Mail Header', help="Header added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), - 'task': fields.boolean('Task',help = "If you check this field tasks appears in kanban view"), - 'open_task': fields.function(_open_task , type='integer',string="Open Tasks"), + 'use_tasks': fields.boolean('Task',help = "If you check this field tasks appears in kanban view"), + 'task_count': fields.function(_task_count , type='integer',string="Open Tasks"), 'color': fields.integer('Color Index'), - 'company_uom_id': fields.function(company_uom_id,type="char"), + 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'), } def dummy(self, cr, uid, ids, context=None): return False @@ -247,7 +239,7 @@ class project(osv.osv): 'priority': 1, 'sequence': 10, 'type_ids': _get_type_common, - 'task' : True, + 'use_tasks' : True, } # TODO: Why not using a SQL contraints ? diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 1b317d671ca..a9886e3b1c7 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -45,7 +45,7 @@ - + @@ -172,11 +172,11 @@ - + - +
    @@ -198,8 +198,8 @@

    ...


    @@ -216,7 +216,7 @@ Progress - / s + / diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index 5365e0b0942..001777103d6 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -17,8 +17,8 @@ openerp.project = function(openerp) { }); //if task is true , then open the task when click on the anywhere in the box. - if(this.record.task.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); - if(!this.record.task.raw_value)$(this.$element).find('.click_button').attr('data-name','dummy'); + if(this.record.use_tasks.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); + if(!this.record.use_tasks.raw_value)$(this.$element).find('.click_button').attr('data-name','dummy'); // set sequence like Tasks,Issues,Timesheets and Phases my_list = $("#list a") diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 575d51e7b1c..db2ad97b414 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -517,7 +517,7 @@ project_issue() class project(osv.osv): _inherit = "project.project" - def _compute_issue(self, cr, uid, ids, field_name, arg, context=None): + def _issue_count(self, cr, uid, ids, field_name, arg, context=None): res={} issue_pool=self.pool.get('project.issue') for project in self.browse(cr, uid, ids, context=context): @@ -528,12 +528,12 @@ class project(osv.osv): _columns = { 'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'reply_to' : fields.char('Reply-To Email Address', size=256), - 'issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view"), - 'total_issues': fields.function(_compute_issue , type='integer',string="Issue"), + 'use_issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view"), + 'issue_count': fields.function(_issue_count , type='integer'), } _defaults = { - 'issues' : True, + 'use_issues' : True, } def open_issues(self, cr, uid, ids, context=None): diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index f9290e5c7e1..66ad9c04e30 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -345,8 +345,8 @@ form - - + + @@ -361,19 +361,16 @@ kanban - - - + + + - - IssueIssues() + + IssueIssues() - - - diff --git a/addons/project_issue/static/src/js/project_issue.js b/addons/project_issue/static/src/js/project_issue.js index 61ee078bd0d..b0433055160 100644 --- a/addons/project_issue/static/src/js/project_issue.js +++ b/addons/project_issue/static/src/js/project_issue.js @@ -4,8 +4,8 @@ openerp.project_issue = function(openerp) { self = this; self._super(); if(this.view.dataset.model == 'project.project') { - if(this.record.task.raw_value && this.record.issues.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); - if(!this.record.task.raw_value && this.record.issues.raw_value)$(this.$element).find('.click_button').attr('data-name','open_issues'); + if(this.record.use_tasks.raw_value && this.record.use_issues.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); + if(!this.record.use_tasks.raw_value && this.record.use_issues.raw_value)$(this.$element).find('.click_button').attr('data-name','open_issues'); }; } diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 7806bc0abb9..582a5ed8ef0 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -217,7 +217,7 @@ project_user_allocation() class project(osv.osv): _inherit = "project.project" - def _open_phase(self, cr, uid, ids, field_name, arg, context=None): + def _phase_count(self, cr, uid, ids, field_name, arg, context=None): open_phase={} phase_pool=self.pool.get('project.phase') for id in ids: @@ -227,12 +227,12 @@ class project(osv.osv): _columns = { 'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"), - 'phases' : fields.boolean('Phase',help = "If you check this field Phases are appears in kanban view"), - 'open_phases' : fields.function(_open_phase , type='integer',string="Open Phases"), + 'use_phases' : fields.boolean('Phase',help = "If you check this field Phases are appears in kanban view"), + 'phase_count' : fields.function(_phase_count , type='integer',string="Open Phases"), } _defaults = { - 'phases' : True, + 'use_phases' : True, } def open_phase(self, cr, uid, ids, context=None): #Open the View for the Tasks for the project diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 1f258ff2ead..f5dcb48576d 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -104,8 +104,8 @@ form - - + + @@ -116,13 +116,13 @@ kanban - - - + + + - - PhasePhases() + + PhasePhases() diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 59cb4be9321..9a718e08acc 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -48,7 +48,7 @@ class project_project(osv.osv): return res - def _compute_timesheet(self, cr, uid, ids, field_name, arg, context=None): + def _timesheet_count(self, cr, uid, ids, field_name, arg, context=None): res={} aal_pool=self.pool.get('account.analytic.line') for project in self.browse(cr, uid, ids, context=context): @@ -57,13 +57,13 @@ class project_project(osv.osv): return res _columns = { - 'timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view"), + 'use_timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view"), 'amt_to_invoice': fields.function(_to_invoice,string="Amount to Invoice",multi="sums"), 'hrs_to_invoice': fields.function(_to_invoice,string="Hours to Invoice",multi="sums"), - 'total_timesheet': fields.function(_compute_timesheet , type='integer',string="Issue"), + 'timesheet_count': fields.function(_timesheet_count , type='integer',string="Issue"), } _defaults = { - 'timesheets' : True, + 'use_timesheets' : True, } def onchange_partner_id(self, cr, uid, ids, part=False, context=None): diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 0efc228136d..6ac8afcfaf8 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -7,8 +7,8 @@ form - - + + @@ -31,14 +31,14 @@ kanban - - - + + + - - TimesheetTimesheets() + + TimesheetTimesheets() diff --git a/addons/project_timesheet/static/src/js/project_timesheet.js b/addons/project_timesheet/static/src/js/project_timesheet.js index ef8bbc02f2e..3eff53a8651 100644 --- a/addons/project_timesheet/static/src/js/project_timesheet.js +++ b/addons/project_timesheet/static/src/js/project_timesheet.js @@ -11,9 +11,9 @@ openerp.project_timesheet = function(openerp) { } if(include(this.view.fields_keys,"issues")) { - if(!this.record.task.raw_value && !this.record.issues.raw_value && this.record.timesheets.raw_value)$(this.$element).find('.click_button').attr('data-name','open_timesheets'); + if(!this.record.use_tasks.raw_value && !this.record.use_issues.raw_value && this.record.use_timesheets.raw_value)$(this.$element).find('.click_button').attr('data-name','open_timesheets'); }; - if(this.record.task.raw_value && this.record.timesheets.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); + if(this.record.use_tasks.raw_value && this.record.use_timesheets.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); }; } }); From cb30916a6a3f62f6db86ad96507ed8f98002ec15 Mon Sep 17 00:00:00 2001 From: "apa-tiny (apa@tinyerp.com)" <> Date: Mon, 7 May 2012 14:53:28 +0530 Subject: [PATCH 161/176] [IMP]:project:In kanban view, simply use . removed hardcoded. bzr revid: apa@tinyerp.com-20120507092328-t03v7kosvjg8omrz --- addons/project/project_view.xml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index a9886e3b1c7..3a9a825e950 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -169,7 +169,6 @@ - @@ -207,11 +206,7 @@ - + From a72ea59bd634e2c5fac1ed2242f1c491f7b25265 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 7 May 2012 15:37:42 +0530 Subject: [PATCH 162/176] [IMP]improve count method of model improve code bzr revid: sgo@tinyerp.com-20120507100742-gy5e5ur5b93h1zty --- addons/project/project.py | 11 +++++------ addons/project_issue/project_issue.py | 10 +++++----- addons/project_long_term/project_long_term.py | 12 ++++++------ 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 29816f5f922..7916b85bcc2 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -156,12 +156,11 @@ class project(osv.osv): return super(project, self).unlink(cr, uid, ids, *args, **kwargs) def _task_count(self, cr, uid, ids, field_name, arg, context=None): - open_task={} - task_pool=self.pool.get('project.task') - for id in ids: - task_ids = task_pool.search(cr, uid, [('project_id', '=', id)]) - open_task[id] = len(task_ids) - return open_task + res = dict.fromkeys(ids, 0) + task_ids = self.pool.get('project.task').search(cr, uid, [('project_id', 'in', ids)]) + for task in self.pool.get('project.task').browse(cr, uid, task_ids, context): + res[task.project_id.id] += 1 + return res _columns = { 'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250), diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index db2ad97b414..ad870b08106 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -518,11 +518,11 @@ class project(osv.osv): _inherit = "project.project" def _issue_count(self, cr, uid, ids, field_name, arg, context=None): - res={} - issue_pool=self.pool.get('project.issue') - for project in self.browse(cr, uid, ids, context=context): - issues = issue_pool.search(cr, uid, [('project_id','=',project.id)]) - res[project.id] = len(issues) + res = dict.fromkeys(ids, 0) + issue_pool = self.pool.get('project.issue') + issue_ids = issue_pool.search(cr, uid, [('project_id', 'in', ids)]) + for issue in issue_pool.browse(cr, uid, issue_ids, context): + res[issue.project_id.id] += 1 return res _columns = { diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 582a5ed8ef0..85e821703fc 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -218,12 +218,12 @@ class project(osv.osv): _inherit = "project.project" def _phase_count(self, cr, uid, ids, field_name, arg, context=None): - open_phase={} - phase_pool=self.pool.get('project.phase') - for id in ids: - phase_ids = phase_pool.search(cr, uid, [('project_id', '=', id)]) - open_phase[id] = len(phase_ids) - return open_phase + res = dict.fromkeys(ids, 0) + phase_pool = self.pool.get('project.phase') + phase_ids = phase_pool.search(cr, uid, [('project_id', 'in', ids)]) + for phase in phase_pool.browse(cr, uid, phase_ids, context): + res[phase.project_id.id] += 1 + return res _columns = { 'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"), From 38fd7fa19df5d752c05eb21fad9f07daccca4395 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 7 May 2012 18:27:08 +0530 Subject: [PATCH 163/176] [IMP]:project:Used a relate action like 'project.act_project_project_2_project_task_all' instead (easier to configure and maintain) and remove default value for project_id. bzr revid: apa@tinyerp.com-20120507125708-7gcxl8915us0xoio --- addons/project/project.py | 25 ------------------------ addons/project/project_view.xml | 26 ++++++++++++------------- addons/project/static/src/js/project.js | 6 +++--- 3 files changed, 16 insertions(+), 41 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 7916b85bcc2..3a65449ff69 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -203,31 +203,7 @@ class project(osv.osv): 'color': fields.integer('Color Index'), 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'), } - def dummy(self, cr, uid, ids, context=None): - return False - def open_tasks(self, cr, uid, ids, context=None): - #Open the View for the Tasks for the project - """ - This opens Tasks views - @return :Dictionary value for task view - """ - if context is None: - context = {} - if ids: - context = dict(context, search_default_project_id=ids[0]) - return { - 'name': _('Task'), - 'context': context, - 'view_type': 'form', - 'view_mode': 'kanban,tree,calendar,form', - 'res_model': 'project.task', - 'view_id': False, - 'domain':[('project_id','in',ids)], - 'type': 'ir.actions.act_window', - 'nodestroy': True - } - def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) return ids @@ -757,7 +733,6 @@ class task(osv.osv): 'sequence': 10, 'active': True, 'user_id': lambda obj, cr, uid, context: uid, - 'project_id':lambda self, cr, uid, context: context.get('active_id',False), 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=c) } diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 3a9a825e950..1e8b6ce77bc 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -161,6 +161,16 @@ + + + project.project.kanban project.project @@ -198,11 +208,11 @@

    ...


    -
    Deadline - - , - -
    Progress
    @@ -397,8 +407,7 @@ - - + project.task.kanban @@ -717,15 +726,6 @@ - - res.company.task.config res.company diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index 001777103d6..27874b24f25 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -16,9 +16,6 @@ openerp.project = function(openerp) { }); }); - //if task is true , then open the task when click on the anywhere in the box. - if(this.record.use_tasks.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); - if(!this.record.use_tasks.raw_value)$(this.$element).find('.click_button').attr('data-name','dummy'); // set sequence like Tasks,Issues,Timesheets and Phases my_list = $("#list a") @@ -29,6 +26,9 @@ openerp.project = function(openerp) { }); $('#list').replaceWith(my_list); + //if task is true , then open the task when click on the anywhere in the box. + if(this.record.use_tasks.raw_value)$(this.$element).find('.click_button').attr('data-name',my_list[0].getAttribute('data-name')); + /* set background color. we can do other way to implement new widget. because we need to rpc call for that. From a6a7276d890488085bc2eec46f57e44425df3a4b Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Tue, 8 May 2012 14:51:43 +0530 Subject: [PATCH 164/176] [IMP]remove open_model method from project related module and add action as per required bzr revid: sgo@tinyerp.com-20120508092143-ah3siaudwp7jixc8 --- addons/project/project.py | 3 +++ addons/project/static/src/js/project.js | 13 +++++++--- addons/project_issue/__openerp__.py | 1 - addons/project_issue/project_issue.py | 22 ----------------- addons/project_issue/project_issue_menu.xml | 10 -------- addons/project_issue/project_issue_view.xml | 11 ++++++++- .../static/src/img/issue_icon.png | Bin 5841 -> 0 bytes .../static/src/js/project_issue.js | 13 ---------- addons/project_long_term/project_long_term.py | 23 +----------------- .../project_long_term_view.xml | 22 ++++++++--------- .../static/src/img/phases_icon.jpg | Bin 19688 -> 0 bytes addons/project_timesheet/__openerp__.py | 1 - .../static/src/img/timesheet_icon.png | Bin 6712 -> 0 bytes .../static/src/js/project_timesheet.js | 20 --------------- 14 files changed, 35 insertions(+), 104 deletions(-) delete mode 100644 addons/project_issue/static/src/img/issue_icon.png delete mode 100644 addons/project_issue/static/src/js/project_issue.js delete mode 100644 addons/project_long_term/static/src/img/phases_icon.jpg delete mode 100644 addons/project_timesheet/static/src/img/timesheet_icon.png delete mode 100644 addons/project_timesheet/static/src/js/project_timesheet.js diff --git a/addons/project/project.py b/addons/project/project.py index 3a65449ff69..6f662b519a2 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -203,6 +203,9 @@ class project(osv.osv): 'color': fields.integer('Color Index'), 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'), } + + def dummy(self, cr, uid,ids,context): + return False def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index 27874b24f25..d841734bacf 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -16,7 +16,6 @@ openerp.project = function(openerp) { }); }); - // set sequence like Tasks,Issues,Timesheets and Phases my_list = $("#list a") my_list.sort(function (a, b) { @@ -26,8 +25,16 @@ openerp.project = function(openerp) { }); $('#list').replaceWith(my_list); - //if task is true , then open the task when click on the anywhere in the box. - if(this.record.use_tasks.raw_value)$(this.$element).find('.click_button').attr('data-name',my_list[0].getAttribute('data-name')); + //it opens action in sequence which ever is first. + if (my_list.length!=0){ + $(this.$element).find('.click_button').attr('data-name',my_list[0].getAttribute('data-name')); + } + else{ + $(this.$element).find('.click_button').attr('data-name','dummy'); + } + if(isNaN(parseInt($(this.$element).find('.click_button').attr('data-name')))){ + $(this.$element).find('.click_button').attr('data-type',"object") + } /* set background color. we can do other way to implement new widget. diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py index dfb40c82ce1..6ddbfb07ea4 100644 --- a/addons/project_issue/__openerp__.py +++ b/addons/project_issue/__openerp__.py @@ -64,7 +64,6 @@ and decide on their status as they evolve. 'installable': True, 'auto_install': False, 'application': True, - 'js': ['static/src/js/project_issue.js'], 'certificate' : '001236490750848623845', } diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index ad870b08106..ffc6017adaf 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -536,28 +536,6 @@ class project(osv.osv): 'use_issues' : True, } - def open_issues(self, cr, uid, ids, context=None): - #Open the View for the Tasks for the project - """ - This opens Issues views - @return :Dictionary value for issue view - """ - if context is None: - context = {} - if ids: - context = dict(context, search_default_project_id=ids[0]) - return { - 'name': _('Issue'), - 'view_type': 'form', - 'view_mode': 'kanban,tree,calendar,form', - 'res_model': 'project.issue', - 'view_id': False, - 'domain':[('project_id','in',ids)], - 'context': context, - 'type': 'ir.actions.act_window', - 'nodestroy': True - } - def _check_escalation(self, cr, uid, ids, context=None): project_obj = self.browse(cr, uid, ids[0], context=context) if project_obj.project_escalation_id: diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml index 3be4cb0f0f9..1c4cecfe439 100644 --- a/addons/project_issue/project_issue_menu.xml +++ b/addons/project_issue/project_issue_menu.xml @@ -45,16 +45,6 @@ - - - diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 66ad9c04e30..c2db50e8584 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -334,6 +334,15 @@ + + # ------------------------------------------------------ # Project @@ -367,7 +376,7 @@ - IssueIssues() + IssueIssues() diff --git a/addons/project_issue/static/src/img/issue_icon.png b/addons/project_issue/static/src/img/issue_icon.png deleted file mode 100644 index ce3ccf0f4bc3ab9f59a7835c3fe00a9c65a6a2a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5841 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 b*69BNWj4|W4>=I300000NkvXXu0mjfD;QzH diff --git a/addons/project_issue/static/src/js/project_issue.js b/addons/project_issue/static/src/js/project_issue.js deleted file mode 100644 index b0433055160..00000000000 --- a/addons/project_issue/static/src/js/project_issue.js +++ /dev/null @@ -1,13 +0,0 @@ -openerp.project_issue = function(openerp) { - openerp.web_kanban.ProjectIssueKanban = openerp.web_kanban.KanbanRecord.include({ - bind_events: function() { - self = this; - self._super(); - if(this.view.dataset.model == 'project.project') { - if(this.record.use_tasks.raw_value && this.record.use_issues.raw_value)$(this.$element).find('.click_button').attr('data-name','open_tasks'); - if(!this.record.use_tasks.raw_value && this.record.use_issues.raw_value)$(this.$element).find('.click_button').attr('data-name','open_issues'); - }; - - } - }); -} diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 85e821703fc..0e7fcee25fb 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -234,28 +234,7 @@ class project(osv.osv): _defaults = { 'use_phases' : True, } - def open_phase(self, cr, uid, ids, context=None): - #Open the View for the Tasks for the project - """ - This opens Tasks views - @return :Dictionary value for task view - """ - if context is None: - context = {} - if ids: - context = dict(context, search_default_project_id=ids[0]) - return { - 'name': _('Phase'), - 'view_type': 'form', - 'view_mode': 'tree,calendar,form', - 'res_model': 'project.phase', - 'view_id': False, - 'domain':[('project_id','in',ids)], - 'context': context, - 'type': 'ir.actions.act_window', - 'nodestroy': True - } - + def schedule_phases(self, cr, uid, ids, context=None): context = context or {} if type(ids) in (long, int,): diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index f5dcb48576d..5747ebba5e7 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -110,6 +110,16 @@ + + project.project.kanban.inherited project.project @@ -122,7 +132,7 @@ - PhasePhases() + PhasePhases() @@ -357,16 +367,6 @@ view_mode="tree,form" /> - - # ------------------------------------------------------ # Menu Items # ------------------------------------------------------ diff --git a/addons/project_long_term/static/src/img/phases_icon.jpg b/addons/project_long_term/static/src/img/phases_icon.jpg deleted file mode 100644 index df58a827b1179baecfed85e7b81916be15295c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19688 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Ç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 diff --git a/addons/project_timesheet/__openerp__.py b/addons/project_timesheet/__openerp__.py index 465702917ff..2dccbb2e38b 100644 --- a/addons/project_timesheet/__openerp__.py +++ b/addons/project_timesheet/__openerp__.py @@ -44,7 +44,6 @@ the Timesheet line entries for particular date and particular user with the eff ], 'installable': True, 'auto_install': False, - 'js': ['static/src/js/project_timesheet.js'], 'certificate': '0075123647453', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_timesheet/static/src/img/timesheet_icon.png b/addons/project_timesheet/static/src/img/timesheet_icon.png deleted file mode 100644 index 7d421231891a472a0a358f984a02a1c847918685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6712 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 Date: Tue, 8 May 2012 16:13:02 +0530 Subject: [PATCH 165/176] [IMP]:forgot to remove def dummy in project.py bzr revid: apa@tinyerp.com-20120508104302-muuplhcl44u55rjl --- addons/project/project.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 6f662b519a2..f1f6c5f285f 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -204,9 +204,7 @@ class project(osv.osv): 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'), } - def dummy(self, cr, uid,ids,context): - return False - + def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) return ids From 5e1413aca654901cdabb93c72e9a32e4da0320da Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 8 May 2012 16:16:07 +0530 Subject: [PATCH 166/176] [IMP]:improved js code. bzr revid: apa@tinyerp.com-20120508104607-w3q12gphejt3zauw --- addons/project/static/src/js/project.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index cc228e5e931..d00b0762f86 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -26,10 +26,12 @@ openerp.project = function(openerp) { $('#list').replaceWith(my_list); //it opens action in sequence which ever is first. + if (my_list.length!=0){ - $(this.$element).find('.click_button').attr('data-name',my_list[0].getAttribute('data-name')); - if(isNaN(parseInt($(this.$element).find('.click_button').attr('data-name')))){ - $(this.$element).find('.click_button').attr('data-type',"object") + click_button = $(this.$element).find('.click_button') + click_button.attr('data-name',my_list[0].getAttribute('data-name')); + if(isNaN(parseInt(click_button.attr('data-name')))){ + click_button.attr('data-type',"object") } } /* set background color. From 645d2437e0a3897c9731ba22152c7351c4c5ff52 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 8 May 2012 16:17:05 +0530 Subject: [PATCH 167/176] [IMP]:set indentation in js file. bzr revid: apa@tinyerp.com-20120508104705-zri4xvoc4k1d4e9q --- addons/project/static/src/js/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index d00b0762f86..f5e6bdd99d6 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -31,7 +31,7 @@ openerp.project = function(openerp) { click_button = $(this.$element).find('.click_button') click_button.attr('data-name',my_list[0].getAttribute('data-name')); if(isNaN(parseInt(click_button.attr('data-name')))){ - click_button.attr('data-type',"object") + click_button.attr('data-type',"object") } } /* set background color. From abdc6e0383c795190ccffc226a536504d67e9271 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 8 May 2012 16:25:21 +0530 Subject: [PATCH 168/176] [IMP]:added def dummy bzr revid: apa@tinyerp.com-20120508105521-1mqur1isvkw0j5n7 --- addons/project/project.py | 2 ++ addons/project/static/src/js/project.js | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index f1f6c5f285f..826cc43c780 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -204,6 +204,8 @@ class project(osv.osv): 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'), } + def dummy(self, cr, uid,ids, context): + return False def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index f5e6bdd99d6..b7c37d9671e 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -26,14 +26,15 @@ openerp.project = function(openerp) { $('#list').replaceWith(my_list); //it opens action in sequence which ever is first. - + click_button = $(this.$element).find('.click_button') if (my_list.length!=0){ - click_button = $(this.$element).find('.click_button') click_button.attr('data-name',my_list[0].getAttribute('data-name')); - if(isNaN(parseInt(click_button.attr('data-name')))){ - click_button.attr('data-type',"object") - } } + else{ + click_button.attr('data-name','dummy'); + } + if(isNaN(parseInt(click_button.attr('data-name'))))click_button.attr('data-type',"object"); + /* set background color. we can do other way to implement new widget. because we need to rpc call for that. From e9d359a7ed408b886012c021357a8e328586e1c9 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Tue, 8 May 2012 16:13:05 +0200 Subject: [PATCH 169/176] [IMP] analytic: do clean type check with isinstance bzr revid: rco@openerp.com-20120508141305-m96be66gtw1lztik --- addons/analytic/analytic.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index 67034f4420b..248eee3d103 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -96,7 +96,7 @@ class account_analytic_account(osv.osv): return self._compute_level_tree(cr, uid, ids, child_ids, res, fields, context) def name_get(self, cr, uid, ids, context=None): - if type(ids) != type([]): + if isinstance(ids, (int, long)): ids=[ids] if not ids: return [] @@ -134,7 +134,7 @@ class account_analytic_account(osv.osv): return accounts def _set_company_currency(self, cr, uid, ids, name, value, arg, context=None): - if type(ids) != type([]): + if isinstance(ids, (int, long)): ids=[ids] for account in self.browse(cr, uid, ids, context=context): if account.company_id: From 7dab19c32b6a8303711cdfb6d5da5d96d177e43d Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 9 May 2012 08:55:22 +0200 Subject: [PATCH 170/176] [IMP] project: small code cleanup for project kanban view bzr revid: rco@openerp.com-20120509065522-16ouzxqiwqgjdcyd --- addons/project/project.py | 14 +++++++------- addons/project/project_view.xml | 8 ++++---- addons/project/static/src/js/project.js | 23 ++++++++++------------- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 826cc43c780..a25e55d12e5 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -154,14 +154,14 @@ class project(osv.osv): if proj.tasks: raise osv.except_osv(_('Operation Not Permitted !'), _('You cannot delete a project containing tasks. I suggest you to desactivate it.')) return super(project, self).unlink(cr, uid, ids, *args, **kwargs) - + def _task_count(self, cr, uid, ids, field_name, arg, context=None): res = dict.fromkeys(ids, 0) task_ids = self.pool.get('project.task').search(cr, uid, [('project_id', 'in', ids)]) for task in self.pool.get('project.task').browse(cr, uid, task_ids, context): res[task.project_id.id] += 1 return res - + _columns = { 'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250), 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the project without removing it."), @@ -198,14 +198,14 @@ class project(osv.osv): 'warn_header': fields.text('Mail Header', help="Header added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), - 'use_tasks': fields.boolean('Task',help = "If you check this field tasks appears in kanban view"), - 'task_count': fields.function(_task_count , type='integer',string="Open Tasks"), + 'use_tasks': fields.boolean('Use Tasks', help="Check this field if this project is aimed at managing tasks"), + 'task_count': fields.function(_task_count, type='integer', string="Open Tasks"), 'color': fields.integer('Color Index'), 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'), } - def dummy(self, cr, uid,ids, context): - return False + def dummy(self, cr, uid, ids, context): + return True def _get_type_common(self, cr, uid, context): ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) @@ -217,7 +217,7 @@ class project(osv.osv): 'priority': 1, 'sequence': 10, 'type_ids': _get_type_common, - 'use_tasks' : True, + 'use_tasks': True, } # TODO: Why not using a SQL contraints ? diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 1e8b6ce77bc..19a1d0d4454 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -207,12 +207,12 @@

    ...


    -
    Deadline
    diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js index b7c37d9671e..09a7c9eb256 100644 --- a/addons/project/static/src/js/project.js +++ b/addons/project/static/src/js/project.js @@ -1,7 +1,7 @@ openerp.project = function(openerp) { openerp.web_kanban.ProjectKanban = openerp.web_kanban.KanbanRecord.include({ bind_events: function() { - self = this; + var self = this; self._super(); if(this.view.dataset.model == 'project.project') { @@ -17,7 +17,7 @@ openerp.project = function(openerp) { }); // set sequence like Tasks,Issues,Timesheets and Phases - my_list = $("#list a") + var my_list = $("#list a") my_list.sort(function (a, b) { var aValue = parseInt(a.id); var bValue = parseInt(b.id); @@ -25,27 +25,24 @@ openerp.project = function(openerp) { }); $('#list').replaceWith(my_list); - //it opens action in sequence which ever is first. - click_button = $(this.$element).find('.click_button') - if (my_list.length!=0){ - click_button.attr('data-name',my_list[0].getAttribute('data-name')); + // when vignette is clicked, it opens the first action in sequence + if (my_list.length != 0) { + var click_button = $(this.$element).find('.click_button') + click_button.attr('data-name', my_list[0].getAttribute('data-name')); + click_button.attr('data-type', "action"); } - else{ - click_button.attr('data-name','dummy'); - } - if(isNaN(parseInt(click_button.attr('data-name'))))click_button.attr('data-type',"object"); /* set background color. we can do other way to implement new widget. because we need to rpc call for that. */ this.$element.find('.bgcolor').click(function(){ - color = parseInt($(this).find('span').attr('class').split(' ')[0].substring(16)) - color_class = $(this).find('span').attr('class').split(' ')[0] + var color = parseInt($(this).find('span').attr('class').split(' ')[0].substring(16)) + var color_class = $(this).find('span').attr('class').split(' ')[0] $(this).closest('#oe_project_kanban_vignette').removeClass().addClass(color_class + ' oe_project_kanban_vignette'); self.view.dataset.write(parseInt(this.id), {color:color}); }); - }; + } } }); } From 0c1334bd62a2054dc304d0464f8b10539fbee140 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 9 May 2012 08:56:44 +0200 Subject: [PATCH 171/176] [IMP] project_issue: small code cleanup for project kanban view bzr revid: rco@openerp.com-20120509065644-5piwp0fw4qqy434c --- addons/project_issue/project_issue.py | 21 ++++++--------------- addons/project_issue/project_issue_view.xml | 19 +++++++++---------- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index ffc6017adaf..5a792ac4d28 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -222,14 +222,6 @@ class project_issue(crm.crm_case, osv.osv): }), } - def _get_project(self, cr, uid, context=None): - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - if user.context_project_id: - return user.context_project_id.id - else: - project_id = context.get('active_id',False) - return project_id - def on_change_project(self, cr, uid, ids, project_id, context=None): return {} @@ -519,21 +511,20 @@ class project(osv.osv): def _issue_count(self, cr, uid, ids, field_name, arg, context=None): res = dict.fromkeys(ids, 0) - issue_pool = self.pool.get('project.issue') - issue_ids = issue_pool.search(cr, uid, [('project_id', 'in', ids)]) - for issue in issue_pool.browse(cr, uid, issue_ids, context): + issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)]) + for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context): res[issue.project_id.id] += 1 return res _columns = { 'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'reply_to' : fields.char('Reply-To Email Address', size=256), - 'use_issues' : fields.boolean('Issues',help = "If you check this field issues are appears in kanban view"), - 'issue_count': fields.function(_issue_count , type='integer'), + 'use_issues' : fields.boolean('Use Issues', help="Check this field if this project manages issues"), + 'issue_count': fields.function(_issue_count, type='integer'), } - + _defaults = { - 'use_issues' : True, + 'use_issues': True, } def _check_escalation(self, cr, uid, ids, context=None): diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index c2db50e8584..35a256be17e 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -335,14 +335,13 @@ - + context="{'search_default_project_id': [active_id], 'default_project_id': active_id}"/> # ------------------------------------------------------ # Project @@ -354,9 +353,9 @@ form - + - + @@ -375,9 +374,9 @@ - - IssueIssues() - + + Issues() From 479d6009864daf4fff69e7dbcc84a2c9d3098949 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 9 May 2012 09:26:54 +0200 Subject: [PATCH 172/176] [IMP] project_long_term: small code cleanup for project kanban view bzr revid: rco@openerp.com-20120509072654-mp3uxp2qo8m7qlhi --- addons/project_long_term/project_long_term.py | 18 +++++------ .../project_long_term_view.xml | 32 +++++++++---------- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 0e7fcee25fb..11656b4bebd 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -216,25 +216,23 @@ project_user_allocation() class project(osv.osv): _inherit = "project.project" - + def _phase_count(self, cr, uid, ids, field_name, arg, context=None): res = dict.fromkeys(ids, 0) - phase_pool = self.pool.get('project.phase') - phase_ids = phase_pool.search(cr, uid, [('project_id', 'in', ids)]) - for phase in phase_pool.browse(cr, uid, phase_ids, context): + phase_ids = self.pool.get('project.phase').search(cr, uid, [('project_id', 'in', ids)]) + for phase in self.pool.get('project.phase').browse(cr, uid, phase_ids, context): res[phase.project_id.id] += 1 return res - + _columns = { 'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"), - 'use_phases' : fields.boolean('Phase',help = "If you check this field Phases are appears in kanban view"), - 'phase_count' : fields.function(_phase_count , type='integer',string="Open Phases"), - + 'use_phases': fields.boolean('Use Phases', help="Check this field if project manages phases"), + 'phase_count': fields.function(_phase_count, type='integer', string="Open Phases"), } _defaults = { - 'use_phases' : True, + 'use_phases': True, } - + def schedule_phases(self, cr, uid, ids, context=None): context = context or {} if type(ids) in (long, int,): diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 5747ebba5e7..b4042fc42e7 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -84,12 +84,12 @@ - + Planning of Users project.user.allocation form gantt,tree,form,calendar - {} + {} @@ -104,22 +104,21 @@ form - + - + - - - + project.project.kanban.inherited project.project @@ -131,9 +130,8 @@ - - PhasePhases() - + Phases() From e4fdf1b061b7cc859e3d257dcab504caf8e8ebf2 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 9 May 2012 10:14:21 +0200 Subject: [PATCH 173/176] [IMP] Support @placeholder in all text based inputs bzr revid: fme@openerp.com-20120509081421-ycoovbxzmrmsd72f --- addons/web/static/src/js/view_form.js | 1 - addons/web/static/src/xml/base.xml | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index b1289512f4f..09dd69074d8 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1827,7 +1827,6 @@ instance.web.form.FieldChar = instance.web.form.AbstractField.extend(_.extend({} init: function (field_manager, node) { this._super(field_manager, node); this.password = this.node.attrs.password === 'True' || this.node.attrs.password === '1'; - this.placeholder = this.node.attrs.placeholder || ''; }, initialize_content: function() { var self = this; diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 6c540fd6957..65be05e3d34 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -917,7 +917,7 @@ t-att-tabindex="widget.node.attrs.tabindex" t-att-autofocus="widget.node.attrs.autofocus" t-attf-class="field_char #{widget.is_field_number ? 'oe-number' : ''}" - t-att-placeholder="widget.placeholder" + t-att-placeholder="widget.node.attrs.placeholder" /> @@ -934,6 +934,7 @@ t-att-id="widget.id_for_label" t-att-tabindex="widget.node.attrs.tabindex" t-att-autofocus="widget.node.attrs.autofocus" + t-att-placeholder="widget.node.attrs.placeholder" /> - - - - - - - - + + Timesheets() + + + + + + + + + + + + + From 36346f081ee6a0732b4d4e19d6942259d8b69630 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 9 May 2012 10:24:51 +0200 Subject: [PATCH 175/176] [IMP] project_timesheet: improve field names for project kanban view bzr revid: rco@openerp.com-20120509082451-jfsd0pgn7o4vddf5 --- addons/project_timesheet/project_timesheet.py | 8 ++++---- addons/project_timesheet/project_timesheet_view.xml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 85ffc99807c..585b3cd6ec8 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -36,8 +36,8 @@ class project_project(osv.osv): line_ids = account_analytic_line.search(cr, uid, [('account_id', '=', project.analytic_account_id.id), ('to_invoice','=',1), ('invoice_id','=',False)]) lines = account_analytic_line.browse(cr, uid, line_ids, context) res[project.id] = { - 'amt_to_invoice': sum(line.amount for line in lines), - 'hrs_to_invoice': sum(line.unit_amount for line in lines), + 'amount_to_invoice': sum(line.amount for line in lines), + 'time_to_invoice': sum(line.unit_amount for line in lines), } return res @@ -51,8 +51,8 @@ class project_project(osv.osv): _columns = { 'use_timesheets': fields.boolean('Timesheets', help="Check this field if this project manages timesheets"), - 'amt_to_invoice': fields.function(_to_invoice, string="Amount to Invoice", multi="sums"), - 'hrs_to_invoice': fields.function(_to_invoice, string="Time to Invoice", multi="sums"), + 'amount_to_invoice': fields.function(_to_invoice, string="Amount to Invoice", multi="sums"), + 'time_to_invoice': fields.function(_to_invoice, string="Time to Invoice", multi="sums"), 'timesheet_count': fields.function(_timesheet_count, type='integer', string="Issue"), } _defaults = { diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 8e3d2d7fcd6..f0b2e2abc20 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -9,8 +9,8 @@ - - + + @@ -45,13 +45,13 @@ From 700061a30a4dea502d6e73f623d4704bdce0e8b0 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 9 May 2012 12:08:51 +0200 Subject: [PATCH 176/176] [FIX] project_long_term: remove inappropriate (and useless) default value bzr revid: rco@openerp.com-20120509100851-zd29xff7jk9pzuld --- addons/project_long_term/project_long_term.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 11656b4bebd..925e4258ed9 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -123,7 +123,6 @@ class project_phase(osv.osv): _defaults = { 'state': 'draft', 'sequence': 10, - 'project_id':lambda self, cr, uid, context: context.get('active_id',False), 'product_uom': lambda self,cr,uid,c: self.pool.get('product.uom').search(cr, uid, [('name', '=', _('Day'))], context=c)[0] } _order = "project_id, date_start, sequence"
    Deadline @@ -959,6 +960,7 @@ t-att-id="widget.id_for_label" t-att-tabindex="widget.node.attrs.tabindex" t-att-autofocus="widget.node.attrs.autofocus" + t-att-placeholder="widget.node.attrs.placeholder" /> @@ -982,6 +984,7 @@ class="field_text" t-att-tabindex="widget.node.attrs.tabindex" t-att-autofocus="widget.node.attrs.autofocus" + t-att-placeholder="widget.node.attrs.placeholder" > @@ -992,6 +995,7 @@ @@ -1024,6 +1028,7 @@ t-att-id="widget.id_for_label" t-att-tabindex="widget.node.attrs.tabindex" t-att-autofocus="widget.node.attrs.autofocus" + t-att-placeholder="widget.node.attrs.placeholder" /> From 85e4f9c4f239590cfd2e9e09ca7349da1c30d22f Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 9 May 2012 10:19:55 +0200 Subject: [PATCH 174/176] [IMP] project_timesheet: code cleanup for project kanban view bzr revid: rco@openerp.com-20120509081955-2p5u2z4xkycbmpdd --- addons/project_timesheet/project_timesheet.py | 94 ++++++++----------- .../project_timesheet_view.xml | 58 ++++++------ 2 files changed, 66 insertions(+), 86 deletions(-) diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py index 9a718e08acc..85ffc99807c 100644 --- a/addons/project_timesheet/project_timesheet.py +++ b/addons/project_timesheet/project_timesheet.py @@ -29,41 +29,34 @@ from tools.translate import _ class project_project(osv.osv): _inherit = 'project.project' - def _to_invoice(self, cr, uid, ids,field_name, arg, context=None): + def _to_invoice(self, cr, uid, ids, field_name, arg, context=None): + account_analytic_line = self.pool.get("account.analytic.line") res = {} - aal_pool = self.pool.get("account.analytic.line") for project in self.browse(cr,uid,ids,context=context): - line_ids = aal_pool.search(cr, uid, [('account_id','=',project.analytic_account_id.id),('to_invoice','=',1),('invoice_id','=',False)]) + line_ids = account_analytic_line.search(cr, uid, [('account_id', '=', project.analytic_account_id.id), ('to_invoice','=',1), ('invoice_id','=',False)]) + lines = account_analytic_line.browse(cr, uid, line_ids, context) res[project.id] = { - 'amt_to_invoice': 0.0, - 'hrs_to_invoice': 0.0, - } - if line_ids: - amt_to_invoice,hrs_to_invoice = 0.0,0.0 - for line in aal_pool.browse(cr,uid,line_ids,context=context): - amt_to_invoice += line.amount - hrs_to_invoice += line.unit_amount - res[project.id]['amt_to_invoice'] = (amt_to_invoice)*-1 - res[project.id]['hrs_to_invoice'] = hrs_to_invoice - + 'amt_to_invoice': sum(line.amount for line in lines), + 'hrs_to_invoice': sum(line.unit_amount for line in lines), + } return res - + def _timesheet_count(self, cr, uid, ids, field_name, arg, context=None): - res={} - aal_pool=self.pool.get('account.analytic.line') - for project in self.browse(cr, uid, ids, context=context): - timesheet = aal_pool.search(cr, uid, [("account_id","=", project.analytic_account_id.id)]) - res[project.id] = len(timesheet) + account_analytic_line = self.pool.get('account.analytic.line') + res = {} + for project in self.browse(cr, uid, ids, context): + line_ids = account_analytic_line.search(cr, uid, [('account_id', '=', project.analytic_account_id.id)]) + res[project.id] = len(line_ids) return res _columns = { - 'use_timesheets' : fields.boolean('Timesheets',help = "If you check this field timesheets appears in kanban view"), - 'amt_to_invoice': fields.function(_to_invoice,string="Amount to Invoice",multi="sums"), - 'hrs_to_invoice': fields.function(_to_invoice,string="Hours to Invoice",multi="sums"), - 'timesheet_count': fields.function(_timesheet_count , type='integer',string="Issue"), + 'use_timesheets': fields.boolean('Timesheets', help="Check this field if this project manages timesheets"), + 'amt_to_invoice': fields.function(_to_invoice, string="Amount to Invoice", multi="sums"), + 'hrs_to_invoice': fields.function(_to_invoice, string="Time to Invoice", multi="sums"), + 'timesheet_count': fields.function(_timesheet_count, type='integer', string="Issue"), } _defaults = { - 'use_timesheets' : True, + 'use_timesheets': True, } def onchange_partner_id(self, cr, uid, ids, part=False, context=None): @@ -77,40 +70,27 @@ class project_project(osv.osv): res['value'].update({'to_invoice': factor_id}) return res - def getAnalyticJournal(self, cr, uid, context=None): - md = self.pool.get('ir.model.data') - try: - result = md.get_object_reference(cr, uid, 'hr_timesheet', 'analytic_journal') - return result[1] - except ValueError: - pass - return False - def open_timesheets(self, cr, uid, ids, context=None): - #Open the View for the Timesheet of the project - """ - This opens Timesheets views - @return :Dictionary value for timesheet view - """ - if context is None: - context = {} - if ids: - project = self.browse(cr, uid, ids[0], context=context) - context = dict(context, - search_default_account_id = project.analytic_account_id.id, - default_account_id = project.analytic_account_id.id, - default_journal_id = self.getAnalyticJournal(cr, uid, context) - ) + """ open Timesheets view """ + project = self.browse(cr, uid, ids[0], context) + try: + journal_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_timesheet', 'analytic_journal').id + except ValueError: + journal_id = False + view_context = { + 'search_default_account_id': [project.analytic_account_id.id], + 'default_account_id': project.analytic_account_id.id, + 'default_journal_id': journal_id, + } return { - 'name': _('Bill Tasks Works'), - 'context': context, - 'view_type': 'form', - 'view_mode': 'tree,form', - 'res_model': 'account.analytic.line', - 'view_id': False, - 'type': 'ir.actions.act_window', - 'nodestroy': True - } + 'type': 'ir.actions.act_window', + 'name': _('Bill Tasks Works'), + 'res_model': 'account.analytic.line', + 'view_type': 'form', + 'view_mode': 'tree,form', + 'context': view_context, + 'nodestroy': True, + } project_project() diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 6ac8afcfaf8..8e3d2d7fcd6 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -7,12 +7,11 @@ form - - - - - - + + + + + @@ -31,31 +30,32 @@ kanban - - + + - + + - - - TimesheetTimesheets() - - - - -
    Amount to invoice - -
    Hours to Invoice - h -
    Amount to invoice + +
    Time to Invoice + +
    Amount to invoice - +
    Time to Invoice - +