diff options
Diffstat (limited to 'addons/project_long_term')
| -rw-r--r-- | addons/project_long_term/i18n/de.po | 549 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/fr.po | 2 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/pl.po | 551 | ||||
| -rw-r--r-- | addons/project_long_term/project_long_term.py | 41 | ||||
| -rw-r--r-- | addons/project_long_term/project_long_term_view.xml | 95 | ||||
| -rw-r--r-- | addons/project_long_term/wizard/project_compute_phases.py | 2 | ||||
| -rw-r--r-- | addons/project_long_term/wizard/project_compute_tasks.py | 4 | ||||
| -rw-r--r-- | addons/project_long_term/wizard/project_schedule_tasks.py | 3 |
8 files changed, 1206 insertions, 41 deletions
diff --git a/addons/project_long_term/i18n/de.po b/addons/project_long_term/i18n/de.po new file mode 100644 index 00000000000..b78d2f7d390 --- /dev/null +++ b/addons/project_long_term/i18n/de.po @@ -0,0 +1,549 @@ +# German translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2010-08-20 10:11+0000\n" +"PO-Revision-Date: 2010-10-05 13:36+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: German <de@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-10-08 04:40+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: project_long_term +#: model:ir.module.module,shortdesc:project_long_term.module_meta_information +msgid "Long Term Project Management" +msgstr "" + +#. module: project_long_term +#: view:project.compute.phases:0 +#: view:project.compute.tasks:0 +msgid "Compute Scheduling of Phases" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,next_phase_ids:0 +msgid "Next Phases" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Project's Tasks" +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_project_phases +#: view:project.phase:0 +msgid "Phases" +msgstr "" + +#. module: project_long_term +#: view:project.compute.phases:0 +msgid "_Compute" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: view:project.resource.allocation:0 +msgid "Group By..." +msgstr "" + +#. module: project_long_term +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: project_long_term +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "" + +#. module: project_long_term +#: field:project.compute.phases,target_project:0 +msgid "Schedule" +msgstr "" + +#. module: project_long_term +#: model:ir.module.module,description:project_long_term.module_meta_information +msgid "" +"\n" +"\n" +" Long Term Project management module that tracks planning, " +"scheduling, resources allocation.\n" +" Mainly used with Big project management.\n" +" - Project Phases will be maintained by Manager of the project\n" +" - Compute Phase Scheduling: Compute start date and end date of " +"the phases which are in draft,open and pending state of the project given.\n" +" If no project given then all the " +"draft,open and pending state phases will be taken\n" +" - Compute Task Scheduling: This works same as the scheduler " +"button on project.phase. It takes the project as argument and computes all " +"the open,draft and pending tasks\n" +" - Schedule Tasks: All the tasks which are in draft,pending and " +"open state are scheduled with taking the phase's start date\n" +"\n" +" " +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation +#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation +#: view:project.resource.allocation:0 +msgid "Resource Allocations" +msgstr "" + +#. module: project_long_term +#: view:project.resource.allocation:0 +msgid "R.A." +msgstr "" + +#. module: project_long_term +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:0 +#, python-format +msgid "Day" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_task +msgid "Task" +msgstr "" + +#. module: project_long_term +#: selection:project.compute.phases,target_project:0 +msgid "Compute a Single Project" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,previous_phase_ids:0 +msgid "Previous Phases" +msgstr "" + +#. module: project_long_term +#: help:project.phase,product_uom:0 +msgid "UoM (Unit of Measure) is the unit of measurement for Duration" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_project +#: field:project.compute.phases,project_id:0 +#: field:project.compute.tasks,project_id:0 +#: view:project.phase:0 +#: field:project.phase,project_id:0 +msgid "Project" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "Error!" +msgstr "" + +#. module: project_long_term +#: selection:project.phase,state:0 +msgid "Cancelled" +msgstr "" + +#. module: project_long_term +#: field:project.resource.allocation,useability:0 +msgid "Usability" +msgstr "" + +#. module: project_long_term +#: help:project.resource.allocation,useability:0 +msgid "" +"Usability of this resource for this project phase in percentage (=50%)" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +#: field:project.resource.allocation,phase_id_date_end:0 +msgid "Ending Date of the phase" +msgstr "" + +#. module: project_long_term +#: view:project.compute.phases:0 +msgid "This wizard will schedule phases for all or specified project" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Planning" +msgstr "" + +#. module: project_long_term +#: view:project.compute.phases:0 +#: view:project.compute.tasks:0 +msgid "_Cancel" +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases +#: model:ir.ui.menu,name:project_long_term.menu_compute_phase +msgid "Compute Phase Scheduling" +msgstr "" + +#. module: project_long_term +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "" + +#. module: project_long_term +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Dates" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,state:0 +msgid "State" +msgstr "" + +#. module: project_long_term +#: field:project.phase,product_uom:0 +msgid "Duration UoM" +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks +#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks +msgid "Compute Task Scheduling" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_resource_allocation +#: view:project.phase:0 +#: view:project.resource.allocation:0 +msgid "Project Resource Allocation" +msgstr "" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1 +#: model:ir.ui.menu,name:project_long_term.menu_view_resource +msgid "Resources" +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list +msgid "Related Tasks" +msgstr "" + +#. module: project_long_term +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: project_long_term +#: help:project.phase,constraint_date_start:0 +msgid "force the phase to start after this date" +msgstr "" + +#. module: project_long_term +#: field:project.phase,task_ids:0 +msgid "Project Tasks" +msgstr "" + +#. module: project_long_term +#: field:project.phase,resource_ids:0 +msgid "Project Resources" +msgstr "" + +#. module: project_long_term +#: view:project.schedule.tasks:0 +msgid "_Ok" +msgstr "" + +#. module: project_long_term +#: constraint:project.phase:0 +msgid "Phase start-date must be lower than phase end-date." +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_schedule_tasks +msgid "project.schedule.tasks" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,constraint_date_start:0 +#: field:project.phase,date_start:0 +msgid "Start Date" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Resource Allocation" +msgstr "" + +#. module: project_long_term +#: help:project.phase,constraint_date_end:0 +msgid "force the phase to finish before this date" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_tasks.py:0 +#, python-format +msgid "Project must have members assigned !" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Draft" +msgstr "" + +#. module: project_long_term +#: constraint:ir.ui.menu:0 +msgid "Error ! You can not create recursive Menu." +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Pending" +msgstr "" + +#. module: project_long_term +#: constraint:project.task:0 +msgid "Error! Task start-date must be lower then task end-date." +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Remaining Hours" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "User" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Task Detail" +msgstr "" + +#. module: project_long_term +#: view:project.compute.tasks:0 +msgid "Compute" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_compute_tasks +msgid "Project Compute Tasks" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "No responsible person assigned !" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_tasks.py:0 +#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0 +#, python-format +msgid "Error" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "You must assign a responsible person for phase '%s' !" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Constraints" +msgstr "" + +#. module: project_long_term +#: help:project.phase,sequence:0 +msgid "Gives the sequence order when displaying a list of phases." +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_project_phase +#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list +#: model:ir.ui.menu,name:project_long_term.menu_project_phase +#: view:project.phase:0 +#: field:project.project,phase_ids:0 +msgid "Project Phases" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Done" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Cancel" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "In Progress" +msgstr "" + +#. module: project_long_term +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0 +#, python-format +msgid "Phase must have resources assigned !" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Other Info" +msgstr "" + +#. module: project_long_term +#: field:project.phase,responsible_id:0 +msgid "Responsible" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Start Phase" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "Please Specify Project to be schedule" +msgstr "" + +#. module: project_long_term +#: view:project.schedule.tasks:0 +msgid "Task Scheduling completed successfully." +msgstr "" + +#. module: project_long_term +#: view:project.resource.allocation:0 +msgid "Phase" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_start:0 +#: field:project.resource.allocation,phase_id_date_start:0 +msgid "Starting Date of the phase" +msgstr "" + +#. module: project_long_term +#: help:project.phase,state:0 +msgid "" +"If the phase is created the state 'Draft'.\n" +" If the phase is started, the state becomes 'In Progress'.\n" +" If review is needed the phase is in 'Pending' state. " +" \n" +" If the phase is over, the states is set to 'Done'." +msgstr "" + +#. module: project_long_term +#: field:project.phase,constraint_date_end:0 +#: field:project.phase,date_end:0 +msgid "End Date" +msgstr "" + +#. module: project_long_term +#: view:project.resource.allocation:0 +#: field:project.resource.allocation,resource_id:0 +msgid "Resource" +msgstr "" + +#. module: project_long_term +#: field:project.phase,name:0 +msgid "Name" +msgstr "" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar +msgid "Working Period" +msgstr "" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule +#: view:project.phase:0 +msgid "Scheduling" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_phase +#: view:project.phase:0 +#: field:project.resource.allocation,phase_id:0 +#: field:project.task,phase_id:0 +msgid "Project Phase" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_compute_phases +msgid "Project Compute Phases" +msgstr "" + +#. module: project_long_term +#: field:project.schedule.tasks,msg:0 +msgid "Message" +msgstr "" + +#. module: project_long_term +#: constraint:project.phase:0 +msgid "Loops in phases not allowed" +msgstr "" + +#. module: project_long_term +#: field:project.phase,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: project_long_term +#: selection:project.compute.phases,target_project:0 +msgid "Compute All Projects" +msgstr "" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves +msgid "Resource Leaves" +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_schedule_tasks +#: view:project.phase:0 +#: view:project.schedule.tasks:0 +msgid "Schedule Tasks" +msgstr "" + +#. module: project_long_term +#: help:project.phase,duration:0 +msgid "By default in days" +msgstr "" + +#. module: project_long_term +#: field:project.phase,duration:0 +msgid "Duration" +msgstr "" diff --git a/addons/project_long_term/i18n/fr.po b/addons/project_long_term/i18n/fr.po index dbafb922c94..4428edc8638 100644 --- a/addons/project_long_term/i18n/fr.po +++ b/addons/project_long_term/i18n/fr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-08-31 03:59+0000\n" +"X-Launchpad-Export-Date: 2010-09-29 05:18+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_long_term diff --git a/addons/project_long_term/i18n/pl.po b/addons/project_long_term/i18n/pl.po new file mode 100644 index 00000000000..506f739e8fe --- /dev/null +++ b/addons/project_long_term/i18n/pl.po @@ -0,0 +1,551 @@ +# Polish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2010-08-20 10:11+0000\n" +"PO-Revision-Date: 2010-09-29 10:37+0000\n" +"Last-Translator: OpenERP Administrators <Unknown>\n" +"Language-Team: Polish <pl@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-09-30 04:44+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: project_long_term +#: model:ir.module.module,shortdesc:project_long_term.module_meta_information +msgid "Long Term Project Management" +msgstr "" + +#. module: project_long_term +#: view:project.compute.phases:0 +#: view:project.compute.tasks:0 +msgid "Compute Scheduling of Phases" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,next_phase_ids:0 +msgid "Next Phases" +msgstr "Nastepna faza" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Project's Tasks" +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_project_phases +#: view:project.phase:0 +msgid "Phases" +msgstr "Fazy" + +#. module: project_long_term +#: view:project.compute.phases:0 +msgid "_Compute" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: view:project.resource.allocation:0 +msgid "Group By..." +msgstr "Grupuj wg..." + +#. module: project_long_term +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nieprawidłowa nazwa modelu w definicji akcji." + +#. module: project_long_term +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "" + +#. module: project_long_term +#: field:project.compute.phases,target_project:0 +msgid "Schedule" +msgstr "Harmonogram" + +#. module: project_long_term +#: model:ir.module.module,description:project_long_term.module_meta_information +msgid "" +"\n" +"\n" +" Long Term Project management module that tracks planning, " +"scheduling, resources allocation.\n" +" Mainly used with Big project management.\n" +" - Project Phases will be maintained by Manager of the project\n" +" - Compute Phase Scheduling: Compute start date and end date of " +"the phases which are in draft,open and pending state of the project given.\n" +" If no project given then all the " +"draft,open and pending state phases will be taken\n" +" - Compute Task Scheduling: This works same as the scheduler " +"button on project.phase. It takes the project as argument and computes all " +"the open,draft and pending tasks\n" +" - Schedule Tasks: All the tasks which are in draft,pending and " +"open state are scheduled with taking the phase's start date\n" +"\n" +" " +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation +#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation +#: view:project.resource.allocation:0 +msgid "Resource Allocations" +msgstr "" + +#. module: project_long_term +#: view:project.resource.allocation:0 +msgid "R.A." +msgstr "" + +#. module: project_long_term +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:0 +#, python-format +msgid "Day" +msgstr "Dzień" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_task +msgid "Task" +msgstr "Zadanie" + +#. module: project_long_term +#: selection:project.compute.phases,target_project:0 +msgid "Compute a Single Project" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,previous_phase_ids:0 +msgid "Previous Phases" +msgstr "" + +#. module: project_long_term +#: help:project.phase,product_uom:0 +msgid "UoM (Unit of Measure) is the unit of measurement for Duration" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_project +#: field:project.compute.phases,project_id:0 +#: field:project.compute.tasks,project_id:0 +#: view:project.phase:0 +#: field:project.phase,project_id:0 +msgid "Project" +msgstr "Projekt" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "Error!" +msgstr "Błąd!" + +#. module: project_long_term +#: selection:project.phase,state:0 +msgid "Cancelled" +msgstr "Anulowano" + +#. module: project_long_term +#: field:project.resource.allocation,useability:0 +msgid "Usability" +msgstr "Użyteczność" + +#. module: project_long_term +#: help:project.resource.allocation,useability:0 +msgid "" +"Usability of this resource for this project phase in percentage (=50%)" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +#: field:project.resource.allocation,phase_id_date_end:0 +msgid "Ending Date of the phase" +msgstr "" + +#. module: project_long_term +#: view:project.compute.phases:0 +msgid "This wizard will schedule phases for all or specified project" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Planning" +msgstr "Planowanie" + +#. module: project_long_term +#: view:project.compute.phases:0 +#: view:project.compute.tasks:0 +msgid "_Cancel" +msgstr "_Anuluj" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases +#: model:ir.ui.menu,name:project_long_term.menu_compute_phase +msgid "Compute Phase Scheduling" +msgstr "" + +#. module: project_long_term +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "" + +#. module: project_long_term +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Błąd! Nie możesz tworzyć rekurencyjnych kont analitycznych" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Dates" +msgstr "Daty" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,state:0 +msgid "State" +msgstr "Stan" + +#. module: project_long_term +#: field:project.phase,product_uom:0 +msgid "Duration UoM" +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks +#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks +msgid "Compute Task Scheduling" +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_resource_allocation +#: view:project.phase:0 +#: view:project.resource.allocation:0 +msgid "Project Resource Allocation" +msgstr "" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1 +#: model:ir.ui.menu,name:project_long_term.menu_view_resource +msgid "Resources" +msgstr "Zasoby" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list +msgid "Related Tasks" +msgstr "" + +#. module: project_long_term +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Niewłaściwy XML dla architektury widoku!" + +#. module: project_long_term +#: help:project.phase,constraint_date_start:0 +msgid "force the phase to start after this date" +msgstr "" + +#. module: project_long_term +#: field:project.phase,task_ids:0 +msgid "Project Tasks" +msgstr "Zadania projektu" + +#. module: project_long_term +#: field:project.phase,resource_ids:0 +msgid "Project Resources" +msgstr "" + +#. module: project_long_term +#: view:project.schedule.tasks:0 +msgid "_Ok" +msgstr "" + +#. module: project_long_term +#: constraint:project.phase:0 +msgid "Phase start-date must be lower than phase end-date." +msgstr "" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_schedule_tasks +msgid "project.schedule.tasks" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: field:project.phase,constraint_date_start:0 +#: field:project.phase,date_start:0 +msgid "Start Date" +msgstr "Data Początkowa" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Resource Allocation" +msgstr "" + +#. module: project_long_term +#: help:project.phase,constraint_date_end:0 +msgid "force the phase to finish before this date" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_tasks.py:0 +#, python-format +msgid "Project must have members assigned !" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Draft" +msgstr "Projekt" + +#. module: project_long_term +#: constraint:ir.ui.menu:0 +msgid "Error ! You can not create recursive Menu." +msgstr "Błąd ! Nie możesz tworzyć rekurencyjnych menu." + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Pending" +msgstr "Oczekujące" + +#. module: project_long_term +#: constraint:project.task:0 +msgid "Error! Task start-date must be lower then task end-date." +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Remaining Hours" +msgstr "Pozostałe godziny" + +#. module: project_long_term +#: view:project.phase:0 +msgid "User" +msgstr "Użytkownik" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Task Detail" +msgstr "" + +#. module: project_long_term +#: view:project.compute.tasks:0 +msgid "Compute" +msgstr "Oblicz" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_compute_tasks +msgid "Project Compute Tasks" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "No responsible person assigned !" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_tasks.py:0 +#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0 +#, python-format +msgid "Error" +msgstr "Błąd" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "You must assign a responsible person for phase '%s' !" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Constraints" +msgstr "Ograniczenia" + +#. module: project_long_term +#: help:project.phase,sequence:0 +msgid "Gives the sequence order when displaying a list of phases." +msgstr "" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.act_project_phase +#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list +#: model:ir.ui.menu,name:project_long_term.menu_project_phase +#: view:project.phase:0 +#: field:project.project,phase_ids:0 +msgid "Project Phases" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "Done" +msgstr "Wykonano" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Cancel" +msgstr "Anuluj" + +#. module: project_long_term +#: view:project.phase:0 +#: selection:project.phase,state:0 +msgid "In Progress" +msgstr "W toku" + +#. module: project_long_term +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków " +"specjalnych !" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0 +#, python-format +msgid "Phase must have resources assigned !" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Other Info" +msgstr "Inne informacje" + +#. module: project_long_term +#: field:project.phase,responsible_id:0 +msgid "Responsible" +msgstr "Odpowiedzialny" + +#. module: project_long_term +#: view:project.phase:0 +msgid "Start Phase" +msgstr "" + +#. module: project_long_term +#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#, python-format +msgid "Please Specify Project to be schedule" +msgstr "" + +#. module: project_long_term +#: view:project.schedule.tasks:0 +msgid "Task Scheduling completed successfully." +msgstr "" + +#. module: project_long_term +#: view:project.resource.allocation:0 +msgid "Phase" +msgstr "Faza" + +#. module: project_long_term +#: help:project.phase,date_start:0 +#: field:project.resource.allocation,phase_id_date_start:0 +msgid "Starting Date of the phase" +msgstr "Data rozpoczęcia fazy" + +#. module: project_long_term +#: help:project.phase,state:0 +msgid "" +"If the phase is created the state 'Draft'.\n" +" If the phase is started, the state becomes 'In Progress'.\n" +" If review is needed the phase is in 'Pending' state. " +" \n" +" If the phase is over, the states is set to 'Done'." +msgstr "" + +#. module: project_long_term +#: field:project.phase,constraint_date_end:0 +#: field:project.phase,date_end:0 +msgid "End Date" +msgstr "Data końcowa" + +#. module: project_long_term +#: view:project.resource.allocation:0 +#: field:project.resource.allocation,resource_id:0 +msgid "Resource" +msgstr "Zasób" + +#. module: project_long_term +#: field:project.phase,name:0 +msgid "Name" +msgstr "Nazwa" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar +msgid "Working Period" +msgstr "Godziny pracy" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule +#: view:project.phase:0 +msgid "Scheduling" +msgstr "Harmonogram" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_phase +#: view:project.phase:0 +#: field:project.resource.allocation,phase_id:0 +#: field:project.task,phase_id:0 +msgid "Project Phase" +msgstr "Faza projektu" + +#. module: project_long_term +#: model:ir.model,name:project_long_term.model_project_compute_phases +msgid "Project Compute Phases" +msgstr "" + +#. module: project_long_term +#: field:project.schedule.tasks,msg:0 +msgid "Message" +msgstr "Wiadomość" + +#. module: project_long_term +#: constraint:project.phase:0 +msgid "Loops in phases not allowed" +msgstr "" + +#. module: project_long_term +#: field:project.phase,sequence:0 +msgid "Sequence" +msgstr "Numeracja" + +#. module: project_long_term +#: selection:project.compute.phases,target_project:0 +msgid "Compute All Projects" +msgstr "" + +#. module: project_long_term +#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves +msgid "Resource Leaves" +msgstr "Niebecności zasobu" + +#. module: project_long_term +#: model:ir.actions.act_window,name:project_long_term.action_project_schedule_tasks +#: view:project.phase:0 +#: view:project.schedule.tasks:0 +msgid "Schedule Tasks" +msgstr "Planuj zadania" + +#. module: project_long_term +#: help:project.phase,duration:0 +msgid "By default in days" +msgstr "" + +#. module: project_long_term +#: field:project.phase,duration:0 +msgid "Duration" +msgstr "Czas trwania" diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 79837416d97..0c31c485753 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -19,8 +19,8 @@ # ############################################################################## -import time -from datetime import date, datetime, timedelta +from datetime import datetime +from dateutil.relativedelta import relativedelta from tools.translate import _ from osv import fields, osv from resource.faces import task as Task @@ -91,13 +91,24 @@ class project_phase(osv.osv): model_data_obj = self.pool.get('ir.model.data') model_data_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour') return model_data_obj.read(cr, uid, [model_data_id], ['res_id'])[0]['res_id'] + + def _compute(self, cr, uid, ids,field_name, arg, context=None): + res = {} + if not ids: + return res + for phase in self.browse(cr, uid, ids, context=context): + tot = 0.0 + for task in phase.task_ids: + tot += task.planned_hours + res[phase.id] = tot + return res _columns = { 'name': fields.char("Name", size=64, required=True), 'date_start': fields.date('Start Date', help="Starting Date of the phase", states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'date_end': fields.date('End Date', help="Ending Date of the phase", states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}), - 'constraint_date_start': fields.date('Start Date', help='force the phase to start after this date', states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}), - 'constraint_date_end': fields.date('End Date', help='force the phase to finish before this date', states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}), + 'constraint_date_start': fields.date('Minimum Start Date', help='force the phase to start after this date', states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}), + 'constraint_date_end': fields.date('Deadline', help='force the phase to finish before this date', states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'project_id': fields.many2one('project.project', 'Project', required=True), 'next_phase_ids': fields.many2many('project.phase', 'project_phase_rel', 'prv_phase_id', 'next_phase_id', 'Next Phases', states={'cancelled':[('readonly',True)]}), 'previous_phase_ids': fields.many2many('project.phase', 'project_phase_rel', 'next_phase_id', 'prv_phase_id', 'Previous Phases', states={'cancelled':[('readonly',True)]}), @@ -109,7 +120,8 @@ class project_phase(osv.osv): 'responsible_id': fields.many2one('res.users', 'Responsible', states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'state': fields.selection([('draft', 'Draft'), ('open', 'In Progress'), ('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')], 'State', readonly=True, required=True, help='If the phase is created the state \'Draft\'.\n If the phase is started, the state becomes \'In Progress\'.\n If review is needed the phase is in \'Pending\' state.\ - \n If the phase is over, the states is set to \'Done\'.') + \n If the phase is over, the states is set to \'Done\'.'), + 'total_hours': fields.function(_compute, method=True, string='Total Hours'), } _defaults = { 'responsible_id': lambda obj,cr,uid,context: uid, @@ -131,6 +143,14 @@ class project_phase(osv.osv): project_id = project_obj.browse(cr, uid, project, context=context) result['date_start'] = project_id.date_start return {'value': result} + + def onchange_days(self, cr, uid, ids, project, context=None): + result = {} + for id in ids: + project_id = self.browse(cr, uid, id, context=context) + newdate = datetime.strptime(project_id.date_start, '%Y-%m-%d') + relativedelta(days=project_id.duration or 0.0) + result['date_end'] = newdate.strftime('%Y-%m-%d') + return {'value': result} def _check_date_start(self, cr, uid, phase, date_end, context=None): if context is None: @@ -278,7 +298,6 @@ class project_phase(osv.osv): context = {} resource_pool = self.pool.get('resource.resource') uom_pool = self.pool.get('product.uom') - phase_resource = False if context is None: context = {} default_uom_id = self._get_default_uom_id(cr, uid) @@ -291,11 +310,11 @@ class project_phase(osv.osv): duration = str(avg_hours) + 'H' # Create a new project for each phase def Project(): + # If project has working calendar then that + # else the default one would be considered start = start_date minimum_time_unit = 1 resource = phase_resource_obj - # If project has working calendar then that - # else the default one would be considered if calendar_id: working_days = resource_pool.compute_working_calendar(cr, uid, calendar_id, context=context) vacation = tuple(resource_pool.compute_vacation(cr, uid, calendar_id)) @@ -373,8 +392,10 @@ class project_resource_allocation(osv.osv): _columns = { 'resource_id': fields.many2one('resource.resource', 'Resource', required=True), 'phase_id': fields.many2one('project.phase', 'Project Phase', ondelete='cascade', required=True), - 'phase_id_date_start': fields.related('phase_id', 'date_start', type='date', string='Starting Date of the phase'), - 'phase_id_date_end': fields.related('phase_id', 'date_end', type='date', string='Ending Date of the phase'), + 'project_id': fields.related('phase_id', 'project_id', type='many2one', relation="project.project", string='Project', store=True), + 'user_id': fields.related('resource_id', 'user_id', type='many2one', relation="res.users", string='User'), + 'date_start': fields.date('Start Date', help="Starting Date"), + 'date_end': fields.date('End Date', help="Ending Date"), 'useability': fields.float('Usability', help="Usability of this resource for this project phase in percentage (=50%)"), } _defaults = { diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index a3ff3b39669..f2e4c6efd68 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -13,14 +13,27 @@ <field name="model">project.resource.allocation</field> <field name="type">gantt</field> <field name="arch" type="xml"> - <gantt color="phase_id" date_start="phase_id_date_start" date_stop="phase_id_date_end" string="R.A." mode="year"> - <level object="project.resource" link="resource_id" domain="[]"> - <field name="useability"/> + <gantt color="phase_id" date_start="date_start" date_stop="date_end" string="R.A." mode="year"> + <level object="res.users" link="user_id" domain="[]"> + <field name="useability" string="Availability"/> </level> </gantt> </field> </record> + <record id="view_project_resource_allocation_calendar" model="ir.ui.view"> + <field name="name">project.resource.allocation.calendar</field> + <field name="model">project.resource.allocation</field> + <field name="type">calendar</field> + <field eval="2" name="priority"/> + <field name="arch" type="xml"> + <calendar color="user_id" date_start="date_start" date_stop="date_end" day_length="12" string="Resources"> + <field name="phase_id"/> + <field name="project_id"/> + </calendar> + </field> + </record> + <record id="view_project_resource_allocation_form" model="ir.ui.view"> <field name="name">project.resource.allocation.form</field> @@ -28,9 +41,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Project Resource Allocation"> - <field name="resource_id" select="1"/> - <field name="phase_id"/> - <field name="useability" string="Availability"/> + <group colspan="4" col="6"> + <field name="resource_id"/> + <field name="phase_id"/> + <field name="project_id"/> + <field name="date_start"/> + <field name="date_end"/> + <field name="useability" string="Availability"/> + </group> </form> </field> </record> @@ -44,6 +62,7 @@ <tree editable="bottom" string="Project Resource Allocation"> <field name="resource_id"/> <field name="phase_id"/> + <field name="project_id"/> <field name="useability"/> </tree> </field> @@ -58,11 +77,13 @@ <group colspan="4" col="20"> <field name="resource_id"/> <field name="phase_id"/> + <field name="project_id"/> </group> <newline/> <group expand="0" string="Group By..." colspan="4" col="20"> <filter name="resource" string="Resource" icon="terp-folder-blue" domain="[]" context="{'group_by':'resource_id'}"/> <separator orientation="vertical"/> + <filter string="Project" icon="terp-project" domain="[]" context="{'group_by':'project_id'}"/> <filter string="Phase" icon="terp-project" domain="[]" context="{'group_by':'phase_id'}"/> </group> </search> @@ -73,7 +94,7 @@ <field name="name">Resource Allocations</field> <field name="res_model">project.resource.allocation</field> <field name="view_type">form</field> - <field name="view_mode">tree,form,gantt</field> + <field name="view_mode">gantt,tree,form,calendar</field> <field name="context">{}</field> <field name="search_view_id" ref="view_project_resource_allocation_search"/> </record> @@ -89,42 +110,47 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Project Phase"> - <group colspan="6" col="6"> - <group colspan="2" col="2"> + <group colspan="8" col="7"> + <group colspan="8"> <field name="name" select="1"/> - <field name="date_start"/> + <field name="total_hours"/> + <field name="project_id" on_change="onchange_project(project_id)" colspan="2"/> + <field name="responsible_id" colspan="2"/> </group> - <group colspan="2" col="4"> - <field name="project_id" on_change="onchange_project(project_id)" colspan="4"/> - <newline/> - <field name="duration" colspan="1"/> + <newline/> + <group colspan="2"> + <field name="date_start"/> + <field name="date_end"/> + </group> + <group colspan="2"> + <field name="duration" on_change="onchange_days(project_id)"/> <field name="product_uom" nolabel="1" domain="[('category_id.name', '=', 'Working Time')]"/> - </group> - <group colspan="2" col="2"> - <field name="responsible_id"/> - <field name="date_end"/> </group> - </group> + </group> <notebook colspan="4"> <page string="Resource Allocation"> <field colspan="4" name="resource_ids" nolabel="1"> <tree editable="bottom" string="Project Resource Allocation"> <field name="resource_id" context="{'project_id':parent.project_id}"/> + <field name="date_start"/> + <field name="date_end"/> <field name="useability"/> </tree> <form string="Project Resource Allocation"> <field name="resource_id" context="{'project_id':parent.project_id}"/> + <field name="date_start"/> + <field name="date_end"/> <field name="useability"/> </form> </field> <separator string="" colspan="4"/> <group col="12" colspan="4"> <field name="state" select="1"/> + <button string="Cancel" name="set_cancel" states="draft,open,pending" icon="gtk-cancel"/> <button string="Draft" name="set_draft" states="open" icon="gtk-indent"/> <button string="Pending" name="set_pending" states="open" icon="gtk-media-pause"/> <button string="Done" name="set_done" states="pending,open" icon="terp-dialog-close"/> <button string="Start Phase" name="set_open" states="pending,draft" icon="gtk-execute"/> - <button string="Cancel" name="set_cancel" states="draft,open,pending" icon="gtk-cancel"/> </group> </page> <page string="Task Detail"> @@ -134,6 +160,7 @@ <field name="user_id"/> <field name="planned_hours" widget="float_time"/> <field name="project_id" invisible="1"/> + <field name="total_hours" sum='Total Hours'/> </tree> <form string="Project's Tasks"> <notebook colspan="4"> @@ -151,6 +178,7 @@ <group colspan="2" col="2"> <separator string="Planning" colspan="2"/> <field name="planned_hours" widget="float_time"/> + <field name="total_hours" widget="float_time"/> <field name="remaining_hours" widget="float_time" sum="Remaining Hours"/> <field name="effective_hours" invisible="1"/> </group> @@ -263,7 +291,7 @@ <field name="name">Project Phases</field> <field name="res_model">project.phase</field> <field name="view_type">form</field> - <field name="view_mode">tree,form,gantt,calendar</field> + <field name="view_mode">gantt,tree,form,calendar</field> <field name="context">{'search_default_responsible_id':uid}</field> <field name="search_view_id" ref="view_project_phase_search"/> <field name="help">You can subdivide your larger projects into several phases. For each phase, you can define your resources allocation (humans or engine), describe de differend task and link your phase with previous and next one, add constraints date and scheduling. A gantt view of your project phase is also available from this menu. Gantt view is a graphically draw of the project plan; it includes any task dependencies by visually adjusting task durations and priorities, and by linking tasks to each other.</field> @@ -299,7 +327,30 @@ # ------------------------------------------------------ # Project Task # ------------------------------------------------------ - + + <record id="view_phase_task_form2" model="ir.ui.view"> + <field name="name">phase.task.form2</field> + <field name="model">project.task</field> + <field name="type">form</field> + <field name="inherit_id" ref="project.view_task_form2"/> + <field name="arch" type="xml"> + <field name="sequence" position="after"> + <field name="phase_id"/> + </field> + </field> + </record> + <record id="view_phase_task_search_form" model="ir.ui.view"> + <field name="name">phase.task.search.form</field> + <field name="model">project.task</field> + <field name="type">search</field> + <field name="inherit_id" ref="project.view_task_search_form"/> + <field name="arch" type="xml"> + <field name="project_id" position="after"> + <field name="phase_id" select="1"/> + </field> + </field> + </record> + <act_window id="project_phase_task_list" name="Related Tasks" diff --git a/addons/project_long_term/wizard/project_compute_phases.py b/addons/project_long_term/wizard/project_compute_phases.py index c43dea56e91..ade1da5c9d9 100644 --- a/addons/project_long_term/wizard/project_compute_phases.py +++ b/addons/project_long_term/wizard/project_compute_phases.py @@ -18,7 +18,6 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## -import datetime from tools.translate import _ from osv import fields, osv @@ -38,7 +37,6 @@ class project_compute_phases(osv.osv_memory): } def check_selection(self, cr, uid, ids, context=None): - data_select = self.read(cr, uid, ids, ['target_project'])[0] return self.compute_date(cr, uid, ids, context=context) diff --git a/addons/project_long_term/wizard/project_compute_tasks.py b/addons/project_long_term/wizard/project_compute_tasks.py index cb74649502f..0d5fa22e6a8 100644 --- a/addons/project_long_term/wizard/project_compute_tasks.py +++ b/addons/project_long_term/wizard/project_compute_tasks.py @@ -19,12 +19,8 @@ # ############################################################################## -import datetime - -from tools.translate import _ from osv import osv, fields - class project_compute_tasks(osv.osv_memory): _name = 'project.compute.tasks' _description = 'Project Compute Tasks' diff --git a/addons/project_long_term/wizard/project_schedule_tasks.py b/addons/project_long_term/wizard/project_schedule_tasks.py index 0d9e9f381f1..48039112e86 100644 --- a/addons/project_long_term/wizard/project_schedule_tasks.py +++ b/addons/project_long_term/wizard/project_schedule_tasks.py @@ -19,9 +19,8 @@ # ############################################################################## -import datetime -from tools.translate import _ from osv import fields, osv + class project_schedule_task(osv.osv_memory): _name = "project.schedule.tasks" _description = 'project.schedule.tasks' |
