diff options
| author | Thibault Francois <tfr@openerp.com> | 2011-01-07 09:54:18 +0100 |
|---|---|---|
| committer | Thibault Francois <tfr@openerp.com> | 2011-01-07 09:54:18 +0100 |
| commit | da3adeb1c86cc63ff3a8df35876bb5b2114665d1 (patch) | |
| tree | 2f5fbbb8eaf4acdff5b647a53a3f5776db1e8b85 /addons/project_long_term | |
| parent | a9476d60a5c3c8a09ebe0f66a0d73b1998800619 (diff) | |
| parent | 4b0121e09db16efc00766ea912dc4ef786741534 (diff) | |
[MERGE]
bzr revid: tfr@openerp.com-20110107084814-uvd01l1rg9gq0t26
bzr revid: tfr@openerp.com-20110107085418-zw86wjhev6epjxec
Diffstat (limited to 'addons/project_long_term')
| -rw-r--r-- | addons/project_long_term/__openerp__.py | 7 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/de.po | 138 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/es.po | 103 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/fr.po | 149 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/lv.po | 107 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/pl.po | 111 | ||||
| -rw-r--r-- | addons/project_long_term/i18n/pt.po | 107 | ||||
| -rw-r--r-- | addons/project_long_term/project_long_term.py | 68 | ||||
| -rw-r--r-- | addons/project_long_term/test/phase_constraint.yml | 134 | ||||
| -rw-r--r-- | addons/project_long_term/test/schedule_phase_tasks.yml | 4 | ||||
| -rw-r--r-- | addons/project_long_term/test/test_schedule_phases_case2.yml | 14 | ||||
| -rw-r--r-- | addons/project_long_term/test/test_schedule_tasks_case1.yml | 263 |
12 files changed, 862 insertions, 343 deletions
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py index 795e0d758f8..68142f820ca 100644 --- a/addons/project_long_term/__openerp__.py +++ b/addons/project_long_term/__openerp__.py @@ -42,12 +42,13 @@ Features. "test": [ 'test/schedule_project_phases.yml', 'test/project_schedule_consecutive_day.yml', - 'test/project_schedule_without_wroking_hour.yml' + 'test/project_schedule_without_wroking_hour.yml', + 'test/phase_constraint.yml', + 'test/test_schedule_phases_case2.yml', # 'test/schedule_project_tasks.yml', -# 'test/test_project_long_term.yml', # 'test/schedule_phase_tasks.yml', # 'test/test_schedule_phases_case1.yml', -# 'test/test_schedule_phases_case2.yml', + ], "update_xml": [ "security/ir.model.access.csv", diff --git a/addons/project_long_term/i18n/de.po b/addons/project_long_term/i18n/de.po index d7f05a7a7fb..0d489ba8fbd 100644 --- a/addons/project_long_term/i18n/de.po +++ b/addons/project_long_term/i18n/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2010-12-21 19:44+0000\n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" "PO-Revision-Date: 2010-12-31 14:22+0000\n" "Last-Translator: Thorsten Vocks (OpenBig.org) <thorsten.vocks@big-" "consulting.net>\n" @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-01-01 05:05+0000\n" +"X-Launchpad-Export-Date: 2011-01-06 05:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_long_term @@ -60,6 +60,11 @@ msgid "Resources Allocation" msgstr "Ressourcenaufteilung" #. module: project_long_term +#: view:project.phase:0 +msgid "Displaying settings" +msgstr "" + +#. module: project_long_term #: field:project.compute.phases,target_project:0 msgid "Schedule" msgstr "Zeitplanung" @@ -125,7 +130,7 @@ msgid "Error! You cannot assign escalation to the same project!" msgstr "Fehler ! Sie können keine Eskalation in dasselbe Projekt vornehmen!" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:130 #, python-format msgid "Day" msgstr "Tag" @@ -152,6 +157,20 @@ msgid "UoM (Unit of Measure) is the unit of measurement for Duration" msgstr "ME (Mengeneinheit) entspr. Einheit für die Dauer" #. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:489 +#, python-format +msgid "" +"Resources should be allocated to your phases and Members should be assigned " +"to your Project!" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +msgid "" +" It's computed by the scheduler according to the start date and the 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 @@ -164,7 +183,7 @@ msgid "Project" msgstr "Projekt" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Error!" msgstr "Fehler!" @@ -175,7 +194,7 @@ msgid "Cancelled" msgstr "Abgebrochen" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:426 #, python-format msgid "No tasks to compute for Project '%s'." msgstr "Keine Aufgaben zur Berechnung für Projekt '%s'." @@ -186,12 +205,6 @@ msgid "Ending Date" msgstr "Ende Datum" #. module: project_long_term -#: help:project.phase,date_end:0 -msgid "" -"It's computed by the scheduler according to the start date and the duration." -msgstr "Ende Datum d. Phase" - -#. module: project_long_term #: view:project.phase:0 msgid "Planning" msgstr "Planung" @@ -214,12 +227,13 @@ msgid "Compute Phase Scheduling" msgstr "Berechne Terminierung der Phasen" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:192 #, python-format msgid " (copy)" msgstr " (Kopie)" #. module: project_long_term +#: view:project.phase:0 #: view:project.resource.allocation:0 #: field:project.resource.allocation,useability:0 msgid "Availability" @@ -333,6 +347,11 @@ msgstr "OK" #. module: project_long_term #: view:project.phase:0 +msgid "Schedule and Display info" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 msgid "Month" msgstr "Monat" @@ -347,6 +366,17 @@ msgid "project.schedule.tasks" msgstr "" #. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.act_project_phase +msgid "" +"A project can be split into the different phases. For each phase, you can " +"define your resources allocation, describe different tasks and link your " +"phase to previous and next phases, add date constraints for the automated " +"scheduling. Use the long term planning in order to planify your available " +"human resources, convert your phases into a series of tasks when you start " +"working on the project." +msgstr "" + +#. module: project_long_term #: field:project.phase,date_start:0 #: field:project.resource.allocation,date_start:0 msgid "Start Date" @@ -369,25 +399,6 @@ msgid "Draft" msgstr "Entwurf" #. module: project_long_term -#: model:ir.actions.act_window,help:project_long_term.act_project_phase -msgid "" -"A project can be split into the different phases. For each phase, you can " -"define your resources allocation, describe different tasks and link your " -"phase to previous and next ones, add date constraints for the automated " -"scheduling. Use the long term planning in order to planify your available " -"human resources, convert your phases into a series of tasks when you start " -"working on it." -msgstr "" -"Ein Projekt kann in verschiedene Phasen aufgeteilt werden. Für jede Phase " -"können Sie zur automatischen Terminierung die Ressourcenaufteilung " -"definieren, Aufgaben beschreiben und die Phase sowohl mit vorhergehenden als " -"auch nachfolgenden Phasen verknüpfen oder Bedingungen für feste Termine " -"hinterlegen. Benutzen Sie das Modul Planung für Langzeitprojekte zur " -"langfristigen Planung und Aufteilung verfügbarer Personalressourcen. " -"Konvertieren Sie die Phasen in konkrete Aufgabenlisten, wenn Sie die " -"Bearbeitung der Phasen eröffnen." - -#. module: project_long_term #: view:project.phase:0 #: selection:project.phase,state:0 msgid "Pending" @@ -404,6 +415,14 @@ msgid "User" msgstr "Benutzer" #. module: project_long_term +#: help:project.phase,date_start:0 +msgid "" +"It's computed according to the phases order : the start date of the 1st " +"phase is set by you while the other start dates depend on the end date of " +"their previous phases" +msgstr "Beginn der Phase" + +#. module: project_long_term #: view:project.phase:0 msgid "Task Detail" msgstr "Aufgaben Detail" @@ -419,31 +438,24 @@ msgid "Project Compute Tasks" msgstr "Berechnung Aufgaben f. Projekt" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "No responsible person assigned !" msgstr "Keinen Verantwortlichen zugewiesen!" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:489 #, python-format msgid "Error" msgstr "Fehler" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "You must assign a responsible person for phase '%s' !" msgstr "Sie müssen einen Verantwortlichen für die Phase zuweisen '%s' !" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 -#, python-format -msgid "Should have Resources Allocation or Project Members!" -msgstr "" -"Es sollte eine Ressourcenaufteilung oder Projektmitarbeiter existieren!" - -#. module: project_long_term #: view:project.phase:0 msgid "Constraints" msgstr "Bedingungen" @@ -487,11 +499,6 @@ msgstr "Verbleib. Stunden" #. module: project_long_term #: view:project.phase:0 -msgid "Other Info" -msgstr "Weitere Info" - -#. module: project_long_term -#: view:project.phase:0 #: field:project.phase,responsible_id:0 msgid "Responsible" msgstr "Verantwortlicher" @@ -512,7 +519,7 @@ msgid "Start Phase" msgstr "Start der Phase" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Please Specify Project to be schedule" msgstr "" @@ -578,6 +585,11 @@ msgid "Name" msgstr "Bezeichnung" #. module: project_long_term +#: view:project.phase:0 +msgid "Tasks Details" +msgstr "" + +#. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar msgid "Working Period" msgstr "Arbeitszeitmodell" @@ -589,12 +601,11 @@ msgstr "Ressource Detail" #. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_phase_schedule -#: view:project.phase:0 msgid "Scheduling" msgstr "Terminierung" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:329 #, python-format msgid "No tasks to compute for Phase '%s'." msgstr "Keine Aufgaben zur Berechnung für Phase: '%s'." @@ -706,11 +717,40 @@ msgstr "Dauer" #~ msgid "Phase must have resources assigned !" #~ msgstr "Phase muss zugewiesene Ressource haben!" +#~ msgid "Other Info" +#~ msgstr "Weitere Info" + #~ msgid "The certificate ID of the module must be unique !" #~ msgstr "Die Zertifikat ID des Moduls sollte eindeutig sein !" +#~ msgid "" +#~ "A project can be split into the different phases. For each phase, you can " +#~ "define your resources allocation, describe different tasks and link your " +#~ "phase to previous and next ones, add date constraints for the automated " +#~ "scheduling. Use the long term planning in order to planify your available " +#~ "human resources, convert your phases into a series of tasks when you start " +#~ "working on it." +#~ msgstr "" +#~ "Ein Projekt kann in verschiedene Phasen aufgeteilt werden. Für jede Phase " +#~ "können Sie zur automatischen Terminierung die Ressourcenaufteilung " +#~ "definieren, Aufgaben beschreiben und die Phase sowohl mit vorhergehenden als " +#~ "auch nachfolgenden Phasen verknüpfen oder Bedingungen für feste Termine " +#~ "hinterlegen. Benutzen Sie das Modul Planung für Langzeitprojekte zur " +#~ "langfristigen Planung und Aufteilung verfügbarer Personalressourcen. " +#~ "Konvertieren Sie die Phasen in konkrete Aufgabenlisten, wenn Sie die " +#~ "Bearbeitung der Phasen eröffnen." + #~ msgid "The name of the module must be unique !" #~ msgstr "Die Modulbezeichnung sollte eindeutig sein !" +#, python-format +#~ msgid "Should have Resources Allocation or Project Members!" +#~ msgstr "" +#~ "Es sollte eine Ressourcenaufteilung oder Projektmitarbeiter existieren!" + #~ msgid "Size of the field can never be less than 1 !" #~ msgstr "Die Größe des Feldes sollte niemals kleiner als 1 sein !" + +#~ msgid "" +#~ "It's computed by the scheduler according to the start date and the duration." +#~ msgstr "Ende Datum d. Phase" diff --git a/addons/project_long_term/i18n/es.po b/addons/project_long_term/i18n/es.po index 129794858f0..f28ffa8a67e 100644 --- a/addons/project_long_term/i18n/es.po +++ b/addons/project_long_term/i18n/es.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-12-21 19:44+0000\n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" "PO-Revision-Date: 2010-12-31 10:23+0000\n" "Last-Translator: Borja López Soilán <borjalopezsoilan@gmail.com>\n" "Language-Team: Spanish <es@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: 2011-01-01 05:05+0000\n" +"X-Launchpad-Export-Date: 2011-01-06 05:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_long_term @@ -62,6 +62,11 @@ msgid "Resources Allocation" msgstr "Asignación de recursos" #. module: project_long_term +#: view:project.phase:0 +msgid "Displaying settings" +msgstr "" + +#. module: project_long_term #: field:project.compute.phases,target_project:0 msgid "Schedule" msgstr "Programa" @@ -105,7 +110,7 @@ msgid "Error! You cannot assign escalation to the same project!" msgstr "¡Error! No puede asignar un escalado al mismo proyecto." #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:130 #, python-format msgid "Day" msgstr "Día" @@ -132,6 +137,20 @@ msgid "UoM (Unit of Measure) is the unit of measurement for Duration" msgstr "UdM (Unidad de Medida) es la unidad de medida para la duración" #. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:489 +#, python-format +msgid "" +"Resources should be allocated to your phases and Members should be assigned " +"to your Project!" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +msgid "" +" It's computed by the scheduler according to the start date and the 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 @@ -144,7 +163,7 @@ msgid "Project" msgstr "Proyecto" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Error!" msgstr "¡Error!" @@ -155,7 +174,7 @@ msgid "Cancelled" msgstr "Cancelado" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:426 #, python-format msgid "No tasks to compute for Project '%s'." msgstr "" @@ -166,12 +185,6 @@ msgid "Ending Date" msgstr "Fecha de fin" #. module: project_long_term -#: help:project.phase,date_end:0 -msgid "" -"It's computed by the scheduler according to the start date and the duration." -msgstr "" - -#. module: project_long_term #: view:project.phase:0 msgid "Planning" msgstr "Planificación" @@ -194,12 +207,13 @@ msgid "Compute Phase Scheduling" msgstr "Calcular planificación de fases" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:192 #, python-format msgid " (copy)" msgstr " (copia)" #. module: project_long_term +#: view:project.phase:0 #: view:project.resource.allocation:0 #: field:project.resource.allocation,useability:0 msgid "Availability" @@ -310,6 +324,11 @@ msgstr "_Aceptar" #. module: project_long_term #: view:project.phase:0 +msgid "Schedule and Display info" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 msgid "Month" msgstr "Mes" @@ -324,6 +343,17 @@ msgid "project.schedule.tasks" msgstr "" #. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.act_project_phase +msgid "" +"A project can be split into the different phases. For each phase, you can " +"define your resources allocation, describe different tasks and link your " +"phase to previous and next phases, add date constraints for the automated " +"scheduling. Use the long term planning in order to planify your available " +"human resources, convert your phases into a series of tasks when you start " +"working on the project." +msgstr "" + +#. module: project_long_term #: field:project.phase,date_start:0 #: field:project.resource.allocation,date_start:0 msgid "Start Date" @@ -346,17 +376,6 @@ msgid "Draft" msgstr "Borrador" #. module: project_long_term -#: model:ir.actions.act_window,help:project_long_term.act_project_phase -msgid "" -"A project can be split into the different phases. For each phase, you can " -"define your resources allocation, describe different tasks and link your " -"phase to previous and next ones, add date constraints for the automated " -"scheduling. Use the long term planning in order to planify your available " -"human resources, convert your phases into a series of tasks when you start " -"working on it." -msgstr "" - -#. module: project_long_term #: view:project.phase:0 #: selection:project.phase,state:0 msgid "Pending" @@ -373,6 +392,14 @@ msgid "User" msgstr "Usuario" #. module: project_long_term +#: help:project.phase,date_start:0 +msgid "" +"It's computed according to the phases order : the start date of the 1st " +"phase is set by you while the other start dates depend on the end date of " +"their previous phases" +msgstr "" + +#. module: project_long_term #: view:project.phase:0 msgid "Task Detail" msgstr "Detalles tarea" @@ -388,30 +415,24 @@ msgid "Project Compute Tasks" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "No responsible person assigned !" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:489 #, python-format msgid "Error" msgstr "Error" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "You must assign a responsible person for phase '%s' !" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 -#, python-format -msgid "Should have Resources Allocation or Project Members!" -msgstr "" - -#. module: project_long_term #: view:project.phase:0 msgid "Constraints" msgstr "Restricciones" @@ -455,11 +476,6 @@ msgstr "Horas restantes" #. module: project_long_term #: view:project.phase:0 -msgid "Other Info" -msgstr "Otra información" - -#. module: project_long_term -#: view:project.phase:0 #: field:project.phase,responsible_id:0 msgid "Responsible" msgstr "Responsable" @@ -480,7 +496,7 @@ msgid "Start Phase" msgstr "Comenzar fase" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Please Specify Project to be schedule" msgstr "" @@ -540,6 +556,11 @@ msgid "Name" msgstr "Nombre" #. module: project_long_term +#: view:project.phase:0 +msgid "Tasks Details" +msgstr "" + +#. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar msgid "Working Period" msgstr "Periodo de trabajo" @@ -551,12 +572,11 @@ msgstr "Detalle recurso" #. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_phase_schedule -#: view:project.phase:0 msgid "Scheduling" msgstr "Planificación" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:329 #, python-format msgid "No tasks to compute for Phase '%s'." msgstr "" @@ -617,5 +637,8 @@ msgstr "Por defecto en días" msgid "Duration" msgstr "Duración" +#~ msgid "Other Info" +#~ msgstr "Otra información" + #~ msgid "Ending Date of the phase" #~ msgstr "Fecha de fin de la fase" diff --git a/addons/project_long_term/i18n/fr.po b/addons/project_long_term/i18n/fr.po index cf3abfec33e..fd50676d9e0 100644 --- a/addons/project_long_term/i18n/fr.po +++ b/addons/project_long_term/i18n/fr.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2010-12-21 19:44+0000\n" -"PO-Revision-Date: 2010-12-31 11:08+0000\n" -"Last-Translator: lolivier <olivier.lenoir@free.fr>\n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" +"PO-Revision-Date: 2011-01-05 09:46+0000\n" +"Last-Translator: Aline (OpenERP) <Unknown>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-01-01 05:05+0000\n" +"X-Launchpad-Export-Date: 2011-01-06 05:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_long_term @@ -59,6 +59,11 @@ msgid "Resources Allocation" msgstr "Allocation des ressources" #. module: project_long_term +#: view:project.phase:0 +msgid "Displaying settings" +msgstr "" + +#. module: project_long_term #: field:project.compute.phases,target_project:0 msgid "Schedule" msgstr "Planifier" @@ -102,7 +107,7 @@ 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 +#: code:addons/project_long_term/project_long_term.py:130 #, python-format msgid "Day" msgstr "Jour" @@ -115,7 +120,7 @@ msgstr "Tâche" #. module: project_long_term #: selection:project.compute.phases,target_project:0 msgid "Compute a Single Project" -msgstr "" +msgstr "Calculer un seul projet" #. module: project_long_term #: view:project.phase:0 @@ -129,6 +134,20 @@ msgid "UoM (Unit of Measure) is the unit of measurement for Duration" msgstr "UdM (unité de mesure) est l'unité de mesure de la durée" #. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:489 +#, python-format +msgid "" +"Resources should be allocated to your phases and Members should be assigned " +"to your Project!" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +msgid "" +" It's computed by the scheduler according to the start date and the 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 @@ -141,7 +160,7 @@ msgid "Project" msgstr "Projet" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Error!" msgstr "Erreur!" @@ -152,7 +171,7 @@ msgid "Cancelled" msgstr "Annulé" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:426 #, python-format msgid "No tasks to compute for Project '%s'." msgstr "Pas de tâches à calculer pour le projet '%s'." @@ -163,12 +182,6 @@ msgid "Ending Date" msgstr "Date de fin" #. module: project_long_term -#: help:project.phase,date_end:0 -msgid "" -"It's computed by the scheduler according to the start date and the duration." -msgstr "Date de fin de la phase" - -#. module: project_long_term #: view:project.phase:0 msgid "Planning" msgstr "Planification" @@ -188,15 +201,16 @@ msgstr "_Annuler" #: 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 "" +msgstr "Calculer la planification des phases" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:192 #, python-format msgid " (copy)" msgstr " (copie)" #. module: project_long_term +#: view:project.phase:0 #: view:project.resource.allocation:0 #: field:project.resource.allocation,useability:0 msgid "Availability" @@ -218,6 +232,7 @@ msgstr "Calculer" #: view:project.compute.phases:0 msgid "Compute Scheduling of phases for all or specified project" msgstr "" +"Calculer la plannification des phases pour tous les projets ou celui spécifié" #. module: project_long_term #: field:project.phase,product_uom:0 @@ -311,6 +326,11 @@ msgstr "_Ok" #. module: project_long_term #: view:project.phase:0 +msgid "Schedule and Display info" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 msgid "Month" msgstr "Mois" @@ -327,6 +347,17 @@ msgid "project.schedule.tasks" msgstr "project.schedule.tasks" #. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.act_project_phase +msgid "" +"A project can be split into the different phases. For each phase, you can " +"define your resources allocation, describe different tasks and link your " +"phase to previous and next phases, add date constraints for the automated " +"scheduling. Use the long term planning in order to planify your available " +"human resources, convert your phases into a series of tasks when you start " +"working on the project." +msgstr "" + +#. module: project_long_term #: field:project.phase,date_start:0 #: field:project.resource.allocation,date_start:0 msgid "Start Date" @@ -349,23 +380,6 @@ msgid "Draft" msgstr "Brouillon" #. module: project_long_term -#: model:ir.actions.act_window,help:project_long_term.act_project_phase -msgid "" -"A project can be split into the different phases. For each phase, you can " -"define your resources allocation, describe different tasks and link your " -"phase to previous and next ones, add date constraints for the automated " -"scheduling. Use the long term planning in order to planify your available " -"human resources, convert your phases into a series of tasks when you start " -"working on it." -msgstr "" -"Un projet peut être divisé en différentes phases. Pour chaque phase, vous " -"pouvez allouer des ressources, décrire les différentes tâches et relier les " -"phases les unes aux autres, ajouter des contraintes sur les dates pour " -"l'ordonnancement automatique. Utilisez la planification à long terme pour " -"planifier les ressources humaines disponibles, et convertissez vos phases en " -"une série de tâches quand vous commencez à travailler sur le projet." - -#. module: project_long_term #: view:project.phase:0 #: selection:project.phase,state:0 msgid "Pending" @@ -382,6 +396,14 @@ msgid "User" msgstr "Utilisateur" #. module: project_long_term +#: help:project.phase,date_start:0 +msgid "" +"It's computed according to the phases order : the start date of the 1st " +"phase is set by you while the other start dates depend on the end date of " +"their previous phases" +msgstr "Date de début de la phase" + +#. module: project_long_term #: view:project.phase:0 msgid "Task Detail" msgstr "Détails de la tâche" @@ -396,33 +418,27 @@ msgstr "" #. module: project_long_term #: model:ir.model,name:project_long_term.model_project_compute_tasks msgid "Project Compute Tasks" -msgstr "" +msgstr "Calculer les tâches du projet" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "No responsible person assigned !" msgstr "Aucun responsable n'a été assigné !" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:489 #, python-format msgid "Error" msgstr "Erreur" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "You must assign a responsible person for phase '%s' !" msgstr "Vous devez assigner une personne responsable de la phase '%s' !" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 -#, python-format -msgid "Should have Resources Allocation or Project Members!" -msgstr "" - -#. module: project_long_term #: view:project.phase:0 msgid "Constraints" msgstr "Contraintes" @@ -430,7 +446,7 @@ msgstr "Contraintes" #. module: project_long_term #: help:project.phase,sequence:0 msgid "Gives the sequence order when displaying a list of phases." -msgstr "" +msgstr "Donne la séquence lors de l'affichage des phases dans la liste." #. module: project_long_term #: model:ir.actions.act_window,name:project_long_term.act_project_phase @@ -466,11 +482,6 @@ msgstr "Heures restantes" #. module: project_long_term #: view:project.phase:0 -msgid "Other Info" -msgstr "Autres Informations" - -#. module: project_long_term -#: view:project.phase:0 #: field:project.phase,responsible_id:0 msgid "Responsible" msgstr "Responsable" @@ -491,10 +502,10 @@ msgid "Start Phase" msgstr "Démarrer la phase" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Please Specify Project to be schedule" -msgstr "" +msgstr "Veuillez définir le projet à planifier" #. module: project_long_term #: view:project.phase:0 @@ -555,6 +566,11 @@ msgid "Name" msgstr "Nom" #. module: project_long_term +#: view:project.phase:0 +msgid "Tasks Details" +msgstr "" + +#. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar msgid "Working Period" msgstr "Période de travail" @@ -566,12 +582,11 @@ msgstr "Détail de la ressource" #. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_phase_schedule -#: view:project.phase:0 msgid "Scheduling" msgstr "Ordonnancement" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:329 #, python-format msgid "No tasks to compute for Phase '%s'." msgstr "Pas de tâches à calculer pour la phase '%s'." @@ -598,7 +613,7 @@ msgstr "Message" #. module: project_long_term #: constraint:project.phase:0 msgid "Loops in phases not allowed" -msgstr "" +msgstr "Les boucles ne sont pas autorisées dans les phases" #. module: project_long_term #: field:project.phase,sequence:0 @@ -608,7 +623,7 @@ msgstr "Séquence" #. module: project_long_term #: selection:project.compute.phases,target_project:0 msgid "Compute All Projects" -msgstr "" +msgstr "Calculer tous les projets" #. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves @@ -620,7 +635,7 @@ msgstr "Congés de la ressource" #: view:project.phase:0 #: view:project.schedule.tasks:0 msgid "Schedule Tasks" -msgstr "" +msgstr "Planifier les tâches" #. module: project_long_term #: help:project.phase,duration:0 @@ -631,3 +646,25 @@ msgstr "Par défaut en jour" #: field:project.phase,duration:0 msgid "Duration" msgstr "Durée" + +#~ msgid "Other Info" +#~ msgstr "Autres Informations" + +#~ msgid "" +#~ "A project can be split into the different phases. For each phase, you can " +#~ "define your resources allocation, describe different tasks and link your " +#~ "phase to previous and next ones, add date constraints for the automated " +#~ "scheduling. Use the long term planning in order to planify your available " +#~ "human resources, convert your phases into a series of tasks when you start " +#~ "working on it." +#~ msgstr "" +#~ "Un projet peut être divisé en différentes phases. Pour chaque phase, vous " +#~ "pouvez allouer des ressources, décrire les différentes tâches et relier les " +#~ "phases les unes aux autres, ajouter des contraintes sur les dates pour " +#~ "l'ordonnancement automatique. Utilisez la planification à long terme pour " +#~ "planifier les ressources humaines disponibles, et convertissez vos phases en " +#~ "une série de tâches quand vous commencez à travailler sur le projet." + +#~ msgid "" +#~ "It's computed by the scheduler according to the start date and the duration." +#~ msgstr "Date de fin de la phase" diff --git a/addons/project_long_term/i18n/lv.po b/addons/project_long_term/i18n/lv.po index ce5130c1a1a..e01d607b031 100644 --- a/addons/project_long_term/i18n/lv.po +++ b/addons/project_long_term/i18n/lv.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-12-21 19:44+0000\n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" "PO-Revision-Date: 2010-12-31 10:24+0000\n" "Last-Translator: OpenERP Administrators <Unknown>\n" "Language-Team: Latvian <lv@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: 2011-01-01 05:05+0000\n" +"X-Launchpad-Export-Date: 2011-01-06 05:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_long_term @@ -60,6 +60,11 @@ msgid "Resources Allocation" msgstr "Resursu iedalīšana" #. module: project_long_term +#: view:project.phase:0 +msgid "Displaying settings" +msgstr "" + +#. module: project_long_term #: field:project.compute.phases,target_project:0 msgid "Schedule" msgstr "Grafiks" @@ -103,7 +108,7 @@ msgid "Error! You cannot assign escalation to the same project!" msgstr "Kļūda! Nedrīkst piešķirt eskalāciju uz to pašu projektu!" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:130 #, python-format msgid "Day" msgstr "Diena" @@ -130,6 +135,20 @@ msgid "UoM (Unit of Measure) is the unit of measurement for Duration" msgstr "Mērv. (mērvienība) ir ilguma mērvienība" #. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:489 +#, python-format +msgid "" +"Resources should be allocated to your phases and Members should be assigned " +"to your Project!" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +msgid "" +" It's computed by the scheduler according to the start date and the 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 @@ -142,7 +161,7 @@ msgid "Project" msgstr "Projekts" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Error!" msgstr "Kļūda!" @@ -153,7 +172,7 @@ msgid "Cancelled" msgstr "Atcelts" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:426 #, python-format msgid "No tasks to compute for Project '%s'." msgstr "Projektam '%s' nav uzdevumu ko aprēķināt." @@ -164,12 +183,6 @@ msgid "Ending Date" msgstr "Beigu Datums" #. module: project_long_term -#: help:project.phase,date_end:0 -msgid "" -"It's computed by the scheduler according to the start date and the duration." -msgstr "" - -#. module: project_long_term #: view:project.phase:0 msgid "Planning" msgstr "Plānošana" @@ -192,12 +205,13 @@ msgid "Compute Phase Scheduling" msgstr "Aprēķināt fāzes grafiku" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:192 #, python-format msgid " (copy)" msgstr " (kopija)" #. module: project_long_term +#: view:project.phase:0 #: view:project.resource.allocation:0 #: field:project.resource.allocation,useability:0 msgid "Availability" @@ -307,6 +321,11 @@ msgstr "_Labi" #. module: project_long_term #: view:project.phase:0 +msgid "Schedule and Display info" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 msgid "Month" msgstr "Mēnesis" @@ -321,6 +340,17 @@ msgid "project.schedule.tasks" msgstr "project.schedule.tasks" #. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.act_project_phase +msgid "" +"A project can be split into the different phases. For each phase, you can " +"define your resources allocation, describe different tasks and link your " +"phase to previous and next phases, add date constraints for the automated " +"scheduling. Use the long term planning in order to planify your available " +"human resources, convert your phases into a series of tasks when you start " +"working on the project." +msgstr "" + +#. module: project_long_term #: field:project.phase,date_start:0 #: field:project.resource.allocation,date_start:0 msgid "Start Date" @@ -343,17 +373,6 @@ msgid "Draft" msgstr "Melnraksts" #. module: project_long_term -#: model:ir.actions.act_window,help:project_long_term.act_project_phase -msgid "" -"A project can be split into the different phases. For each phase, you can " -"define your resources allocation, describe different tasks and link your " -"phase to previous and next ones, add date constraints for the automated " -"scheduling. Use the long term planning in order to planify your available " -"human resources, convert your phases into a series of tasks when you start " -"working on it." -msgstr "" - -#. module: project_long_term #: view:project.phase:0 #: selection:project.phase,state:0 msgid "Pending" @@ -370,6 +389,14 @@ msgid "User" msgstr "Lietotājs" #. module: project_long_term +#: help:project.phase,date_start:0 +msgid "" +"It's computed according to the phases order : the start date of the 1st " +"phase is set by you while the other start dates depend on the end date of " +"their previous phases" +msgstr "" + +#. module: project_long_term #: view:project.phase:0 msgid "Task Detail" msgstr "Uzdevuma informācija" @@ -385,30 +412,24 @@ msgid "Project Compute Tasks" msgstr "Projekts - aprēķināt uzdevumus" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "No responsible person assigned !" msgstr "Nav nozīmēta atbildīgā persona!" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:489 #, python-format msgid "Error" msgstr "Kļūda" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "You must assign a responsible person for phase '%s' !" msgstr "Fāzei '%s' jānozīmē atbildīgo personu!" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 -#, python-format -msgid "Should have Resources Allocation or Project Members!" -msgstr "Nepieciešama resursu iedalīšana vai projekta dalībnieki!" - -#. module: project_long_term #: view:project.phase:0 msgid "Constraints" msgstr "Ierobežojumi" @@ -452,11 +473,6 @@ msgstr "Atlikušās Stundas" #. module: project_long_term #: view:project.phase:0 -msgid "Other Info" -msgstr "Cita informācija" - -#. module: project_long_term -#: view:project.phase:0 #: field:project.phase,responsible_id:0 msgid "Responsible" msgstr "Atbildīgais" @@ -477,7 +493,7 @@ msgid "Start Phase" msgstr "Sākt fāzi" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Please Specify Project to be schedule" msgstr "Lūdzu, norādiet plānojamo projektu" @@ -537,6 +553,11 @@ msgid "Name" msgstr "Nosaukums" #. module: project_long_term +#: view:project.phase:0 +msgid "Tasks Details" +msgstr "" + +#. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar msgid "Working Period" msgstr "Darba laiks" @@ -548,12 +569,11 @@ msgstr "Resursa informācija" #. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_phase_schedule -#: view:project.phase:0 msgid "Scheduling" msgstr "Plānošana" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:329 #, python-format msgid "No tasks to compute for Phase '%s'." msgstr "Fāzei '%s' nav uzdevumu ko aprēķināt" @@ -617,5 +637,12 @@ msgstr "Ilgums" #~ msgid "Ending Date of the phase" #~ msgstr "Fāzes beigu datums" +#~ msgid "Other Info" +#~ msgstr "Cita informācija" + #~ msgid "Starting Date of the phase" #~ msgstr "Fāzes sākuma datums" + +#, python-format +#~ msgid "Should have Resources Allocation or Project Members!" +#~ msgstr "Nepieciešama resursu iedalīšana vai projekta dalībnieki!" diff --git a/addons/project_long_term/i18n/pl.po b/addons/project_long_term/i18n/pl.po index a4047fbc04c..d2c668a3472 100644 --- a/addons/project_long_term/i18n/pl.po +++ b/addons/project_long_term/i18n/pl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-12-21 19:44+0000\n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" "PO-Revision-Date: 2010-12-31 11:08+0000\n" "Last-Translator: Sbh (Open ERP) <sbh@tinyerp.com>\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: 2011-01-01 05:05+0000\n" +"X-Launchpad-Export-Date: 2011-01-06 05:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_long_term @@ -60,6 +60,11 @@ msgid "Resources Allocation" msgstr "Alokacja zasobów" #. module: project_long_term +#: view:project.phase:0 +msgid "Displaying settings" +msgstr "" + +#. module: project_long_term #: field:project.compute.phases,target_project:0 msgid "Schedule" msgstr "Harmonogram" @@ -103,7 +108,7 @@ 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 +#: code:addons/project_long_term/project_long_term.py:130 #, python-format msgid "Day" msgstr "Dzień" @@ -130,6 +135,20 @@ msgid "UoM (Unit of Measure) is the unit of measurement for Duration" msgstr "JM (Jednostka Miary) jest jednostką miary dla czasu trwania" #. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:489 +#, python-format +msgid "" +"Resources should be allocated to your phases and Members should be assigned " +"to your Project!" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +msgid "" +" It's computed by the scheduler according to the start date and the 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 @@ -142,7 +161,7 @@ msgid "Project" msgstr "Projekt" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Error!" msgstr "Błąd!" @@ -153,7 +172,7 @@ msgid "Cancelled" msgstr "Anulowano" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:426 #, python-format msgid "No tasks to compute for Project '%s'." msgstr "Brak zadań do obliczeń w Projekcie '%s'" @@ -164,12 +183,6 @@ msgid "Ending Date" msgstr "Data końcowa" #. module: project_long_term -#: help:project.phase,date_end:0 -msgid "" -"It's computed by the scheduler according to the start date and the duration." -msgstr "Końcowa data fazy" - -#. module: project_long_term #: view:project.phase:0 msgid "Planning" msgstr "Planowanie" @@ -192,12 +205,13 @@ msgid "Compute Phase Scheduling" msgstr "Oblicz planowanie fazy" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:192 #, python-format msgid " (copy)" msgstr " (kopia)" #. module: project_long_term +#: view:project.phase:0 #: view:project.resource.allocation:0 #: field:project.resource.allocation,useability:0 msgid "Availability" @@ -307,6 +321,11 @@ msgstr "" #. module: project_long_term #: view:project.phase:0 +msgid "Schedule and Display info" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 msgid "Month" msgstr "Miesiąc" @@ -321,6 +340,17 @@ msgid "project.schedule.tasks" msgstr "" #. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.act_project_phase +msgid "" +"A project can be split into the different phases. For each phase, you can " +"define your resources allocation, describe different tasks and link your " +"phase to previous and next phases, add date constraints for the automated " +"scheduling. Use the long term planning in order to planify your available " +"human resources, convert your phases into a series of tasks when you start " +"working on the project." +msgstr "" + +#. module: project_long_term #: field:project.phase,date_start:0 #: field:project.resource.allocation,date_start:0 msgid "Start Date" @@ -343,17 +373,6 @@ msgid "Draft" msgstr "Projekt" #. module: project_long_term -#: model:ir.actions.act_window,help:project_long_term.act_project_phase -msgid "" -"A project can be split into the different phases. For each phase, you can " -"define your resources allocation, describe different tasks and link your " -"phase to previous and next ones, add date constraints for the automated " -"scheduling. Use the long term planning in order to planify your available " -"human resources, convert your phases into a series of tasks when you start " -"working on it." -msgstr "" - -#. module: project_long_term #: view:project.phase:0 #: selection:project.phase,state:0 msgid "Pending" @@ -370,6 +389,14 @@ msgid "User" msgstr "Użytkownik" #. module: project_long_term +#: help:project.phase,date_start:0 +msgid "" +"It's computed according to the phases order : the start date of the 1st " +"phase is set by you while the other start dates depend on the end date of " +"their previous phases" +msgstr "" + +#. module: project_long_term #: view:project.phase:0 msgid "Task Detail" msgstr "Szczegóły zadania" @@ -386,30 +413,24 @@ msgid "Project Compute Tasks" msgstr "Obliczanie zadań projektu" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "No responsible person assigned !" msgstr "Nie przypisano osoby odpowiedzialnej" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:489 #, python-format msgid "Error" msgstr "Błąd" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "You must assign a responsible person for phase '%s' !" msgstr "Musisz podać osobę odpowiedzialną za fazę '%s' !" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 -#, python-format -msgid "Should have Resources Allocation or Project Members!" -msgstr "Musi być Alokacja zasobów lub Członkowie projektu!" - -#. module: project_long_term #: view:project.phase:0 msgid "Constraints" msgstr "Ograniczenia" @@ -453,11 +474,6 @@ msgstr "Pozostałe godziny" #. module: project_long_term #: view:project.phase:0 -msgid "Other Info" -msgstr "Inne informacje" - -#. module: project_long_term -#: view:project.phase:0 #: field:project.phase,responsible_id:0 msgid "Responsible" msgstr "Odpowiedzialny" @@ -478,7 +494,7 @@ msgid "Start Phase" msgstr "Rozpocznij fazę" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Please Specify Project to be schedule" msgstr "Wybierz projekt do zaplanowania" @@ -543,6 +559,11 @@ msgid "Name" msgstr "Nazwa" #. module: project_long_term +#: view:project.phase:0 +msgid "Tasks Details" +msgstr "" + +#. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar msgid "Working Period" msgstr "Godziny pracy" @@ -554,12 +575,11 @@ msgstr "Szczegóły zasobu" #. 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 -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:329 #, python-format msgid "No tasks to compute for Phase '%s'." msgstr "Brak zadań do obliczania dla Fazy '%s'." @@ -644,6 +664,17 @@ msgstr "Czas trwania" #~ "Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków " #~ "specjalnych !" +#~ msgid "Other Info" +#~ msgstr "Inne informacje" + +#, python-format +#~ msgid "Should have Resources Allocation or Project Members!" +#~ msgstr "Musi być Alokacja zasobów lub Członkowie projektu!" + +#~ msgid "" +#~ "It's computed by the scheduler according to the start date and the duration." +#~ msgstr "Końcowa data fazy" + #~ msgid "" #~ "It's computed according to the phases order : the start date of the 1st " #~ "phase is set by you while the other start dates depend on the end date of " diff --git a/addons/project_long_term/i18n/pt.po b/addons/project_long_term/i18n/pt.po index 8ecf7c498aa..9c09ac02943 100644 --- a/addons/project_long_term/i18n/pt.po +++ b/addons/project_long_term/i18n/pt.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-12-21 19:44+0000\n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" "PO-Revision-Date: 2010-12-31 11:07+0000\n" "Last-Translator: Sbh (Open ERP) <sbh@tinyerp.com>\n" "Language-Team: Portuguese <pt@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: 2011-01-01 05:05+0000\n" +"X-Launchpad-Export-Date: 2011-01-06 05:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: project_long_term @@ -60,6 +60,11 @@ msgid "Resources Allocation" msgstr "" #. module: project_long_term +#: view:project.phase:0 +msgid "Displaying settings" +msgstr "" + +#. module: project_long_term #: field:project.compute.phases,target_project:0 msgid "Schedule" msgstr "" @@ -103,7 +108,7 @@ 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 +#: code:addons/project_long_term/project_long_term.py:130 #, python-format msgid "Day" msgstr "Dia" @@ -130,6 +135,20 @@ msgid "UoM (Unit of Measure) is the unit of measurement for Duration" msgstr "" #. module: project_long_term +#: code:addons/project_long_term/project_long_term.py:489 +#, python-format +msgid "" +"Resources should be allocated to your phases and Members should be assigned " +"to your Project!" +msgstr "" + +#. module: project_long_term +#: help:project.phase,date_end:0 +msgid "" +" It's computed by the scheduler according to the start date and the 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 @@ -142,7 +161,7 @@ msgid "Project" msgstr "Projeto" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Error!" msgstr "Erro!" @@ -153,7 +172,7 @@ msgid "Cancelled" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:426 #, python-format msgid "No tasks to compute for Project '%s'." msgstr "" @@ -164,12 +183,6 @@ msgid "Ending Date" msgstr "Data de fim" #. module: project_long_term -#: help:project.phase,date_end:0 -msgid "" -"It's computed by the scheduler according to the start date and the duration." -msgstr "Data de fim da fase" - -#. module: project_long_term #: view:project.phase:0 msgid "Planning" msgstr "Planeamento" @@ -192,12 +205,13 @@ msgid "Compute Phase Scheduling" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:192 #, python-format msgid " (copy)" msgstr " (cópia)" #. module: project_long_term +#: view:project.phase:0 #: view:project.resource.allocation:0 #: field:project.resource.allocation,useability:0 msgid "Availability" @@ -307,6 +321,11 @@ msgstr "" #. module: project_long_term #: view:project.phase:0 +msgid "Schedule and Display info" +msgstr "" + +#. module: project_long_term +#: view:project.phase:0 msgid "Month" msgstr "Mês" @@ -321,6 +340,17 @@ msgid "project.schedule.tasks" msgstr "project.schedule.tasks" #. module: project_long_term +#: model:ir.actions.act_window,help:project_long_term.act_project_phase +msgid "" +"A project can be split into the different phases. For each phase, you can " +"define your resources allocation, describe different tasks and link your " +"phase to previous and next phases, add date constraints for the automated " +"scheduling. Use the long term planning in order to planify your available " +"human resources, convert your phases into a series of tasks when you start " +"working on the project." +msgstr "" + +#. module: project_long_term #: field:project.phase,date_start:0 #: field:project.resource.allocation,date_start:0 msgid "Start Date" @@ -343,17 +373,6 @@ msgid "Draft" msgstr "Rascunho" #. module: project_long_term -#: model:ir.actions.act_window,help:project_long_term.act_project_phase -msgid "" -"A project can be split into the different phases. For each phase, you can " -"define your resources allocation, describe different tasks and link your " -"phase to previous and next ones, add date constraints for the automated " -"scheduling. Use the long term planning in order to planify your available " -"human resources, convert your phases into a series of tasks when you start " -"working on it." -msgstr "" - -#. module: project_long_term #: view:project.phase:0 #: selection:project.phase,state:0 msgid "Pending" @@ -370,6 +389,14 @@ msgid "User" msgstr "Utilizador" #. module: project_long_term +#: help:project.phase,date_start:0 +msgid "" +"It's computed according to the phases order : the start date of the 1st " +"phase is set by you while the other start dates depend on the end date of " +"their previous phases" +msgstr "Data de início da fase" + +#. module: project_long_term #: view:project.phase:0 msgid "Task Detail" msgstr "Detalhe da tarefa" @@ -385,30 +412,24 @@ msgid "Project Compute Tasks" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "No responsible person assigned !" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:489 #, python-format msgid "Error" msgstr "Erro" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:244 #, python-format msgid "You must assign a responsible person for phase '%s' !" msgstr "" #. module: project_long_term -#: code:addons/project_long_term/project_long_term.py:0 -#, python-format -msgid "Should have Resources Allocation or Project Members!" -msgstr "" - -#. module: project_long_term #: view:project.phase:0 msgid "Constraints" msgstr "" @@ -452,11 +473,6 @@ msgstr "Horas restantes" #. module: project_long_term #: view:project.phase:0 -msgid "Other Info" -msgstr "Outras informações" - -#. module: project_long_term -#: view:project.phase:0 #: field:project.phase,responsible_id:0 msgid "Responsible" msgstr "Responsável" @@ -477,7 +493,7 @@ msgid "Start Phase" msgstr "Iniciar fase" #. module: project_long_term -#: code:addons/project_long_term/wizard/project_compute_phases.py:0 +#: code:addons/project_long_term/wizard/project_compute_phases.py:50 #, python-format msgid "Please Specify Project to be schedule" msgstr "" @@ -537,6 +553,11 @@ msgid "Name" msgstr "Nome" #. module: project_long_term +#: view:project.phase:0 +msgid "Tasks Details" +msgstr "" + +#. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar msgid "Working Period" msgstr "" @@ -548,12 +569,11 @@ 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 -#: code:addons/project_long_term/project_long_term.py:0 +#: code:addons/project_long_term/project_long_term.py:329 #, python-format msgid "No tasks to compute for Phase '%s'." msgstr "" @@ -613,3 +633,10 @@ msgstr "" #: field:project.phase,duration:0 msgid "Duration" msgstr "Duração" + +#~ msgid "Other Info" +#~ msgstr "Outras informações" + +#~ msgid "" +#~ "It's computed by the scheduler according to the start date and the duration." +#~ msgstr "Data de fim da fase" diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 00e7c850702..8b82108bdba 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -231,6 +231,7 @@ class project_phase(osv.osv): # Create a new project for each phase str_resource = ('%s | '*len(phase.resource_ids))[:-2] str_vals = str_resource % tuple(map(lambda x: 'Resource_%s'%x.resource_id.id, phase.resource_ids)) + # Phases Defination for the Project s = ''' def Phase_%s(): @@ -238,16 +239,35 @@ class project_phase(osv.osv): effort = \'%s\' resource = %s '''%(phase.id, phase.name, duration, str_vals or False) - if parent: - start = 'up.Phase_%s.end' % (parent.id) + + # Recalculate date_start and date_end + # according to constraints on date start and date end on phase + start_date = '' + end_date = '' + if phase.constraint_date_start: + start_date = datetime.strptime(phase.constraint_date_start, '%Y-%m-%d') s += ''' + start = \"%s\" +'''%(datetime.strftime(start_date, "%Y-%m-%d")) + else: + if parent: + start = 'up.Phase_%s.end' % (parent.id) + s += ''' start = %s '''%(start) - else: - start = phase.project_id.date_start or phase.date_start - s += ''' + else: + start = phase.project_id.date_start or phase.date_start + s += ''' start = \"%s\" -'''%(start) +'''%(start) + + if phase.constraint_date_end : + end_date= datetime.strptime(phase.constraint_date_end, '%Y-%m-%d') + s += ''' + end = \"%s\" +'''%(datetime.strftime(end_date, "%Y-%m-%d")) + + #start = datetime.strftime((datetime.strptime(start, "%Y-%m-%d")), "%Y-%m-%d") phase_ids.append(phase.id) @@ -513,12 +533,25 @@ def Project_%d(): phase = eval("project.Phase_%d" % phase_id) start_date = phase.start.to_datetime() end_date = phase.end.to_datetime() + # Write the calculated dates back +# if act_phase.constraint_date_start and str(start_date) < act_phase.constraint_date_start: +# start_date = datetime.strptime(act_phase.constraint_date_start, '%Y-%m-%d') +# else: +# start_date = start_date +# if act_phase.constraint_date_end and str(end_date) > act_phase.constraint_date_end: +# end_date= datetime.strptime(act_phase.constraint_date_end, '%Y-%m-%d') +# date_start = act_phase.constraint_date_end +# else: +# end_date = start_date +# start_date = end_date + ctx = context.copy() + ctx.update({'scheduler': True}) if resources: for res in resources: vals = {} vals.update({'date_start' : start_date }) vals.update({'date_end' : end_date}) - resource_allocation_pool.write(cr, uid, res.id, vals) + resource_allocation_pool.write(cr, uid, res.id, vals, context=ctx) if act_phase.task_ids: for task in act_phase.task_ids: vals = {} @@ -526,28 +559,13 @@ def Project_%d(): temp = eval("phase.Task_%s"%task.id) vals.update({'date_start' : temp.start.strftime('%Y-%m-%d %H:%M:%S')}) vals.update({'date_end' : temp.end.strftime('%Y-%m-%d %H:%M:%S')}) - task_pool.write(cr, uid, task.id, vals, context=context) - # Recalculate date_start and date_end - # according to constraints on date start and date end on phase - - #if phase.constraint_date_start and str(s_date) < phase.constraint_date_start: - # start_date = datetime.strptime(phase.constraint_date_start, '%Y-%m-%d') - #else: - # start_date = s_date - #if phase.constraint_date_end and str(e_date) > phase.constraint_date_end: - # end_date= datetime.strptime(phase.constraint_date_end, '%Y-%m-%d') - # date_start = phase.constraint_date_end - #else: - # end_date = e_date - # date_start = end_date + task_pool.write(cr, uid, task.id, vals, context=ctx) + - # Write the calculated dates back - #ctx = context.copy() - #ctx.update({'scheduler': True}) phase_pool.write(cr, uid, [phase_id], { 'date_start': start_date.strftime('%Y-%m-%d'), 'date_end': end_date.strftime('%Y-%m-%d') - }, context=context) + }, context=ctx) return True #TODO: DO Resource allocation and compute availability diff --git a/addons/project_long_term/test/phase_constraint.yml b/addons/project_long_term/test/phase_constraint.yml index added4782ef..cf6bfa844a6 100644 --- a/addons/project_long_term/test/phase_constraint.yml +++ b/addons/project_long_term/test/phase_constraint.yml @@ -1,36 +1,72 @@ - - I have a project 'Develop yaml Project Module' starting on 01/05/2010. + I have a project 'Develop yaml Project Module'. - !record {model: project.project, id: project_project_developyamlproject0}: name: "Develop Yaml Project Module" - date_start: '2010-01-05' - + date_start: !eval time.strftime('%Y-%m-%d') - - I have set Working Time "from Monday to Friday, from 9am to 17pm". + I have set Working Time from Monday to Friday from 9am to 17pm. - !record {model: resource.calendar, id: resource_calendar_hoursweeks0}: - attendance_ids: - - dayofweek: '0' - hour_from: 9.0 - hour_to: 17.0 - name: Monday - - dayofweek: '1' - hour_from: 9.0 - hour_to: 17.0 - name: tuesday - - dayofweek: '2' - hour_from: 9.0 - hour_to: 17.0 - name: Wednesday - - dayofweek: '3' - hour_from: 9.0 - hour_to: 17.0 - name: Thursday - - dayofweek: '4' - hour_from: 9.0 - hour_to: 17.0 - name: Friday - name: 40 hours/weeks + name: "from Monday to Friday, from 9am to 17pm" + +- + I have set Day1 Working Time for Monday to Friday from 9am to 17pm working hour +- + !record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}: + name: "Day1" + hour_from : 09.00 + hour_to : 17.00 + dayofweek : "0" + calendar_id : resource_calendar_hoursweeks0 + +- + I have set Day2 Working Time for Monday to Friday from 9am to 17pm working hour +- + !record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}: + name: "Day2" + hour_from : 09.00 + hour_to : 17.00 + dayofweek : "1" + calendar_id : resource_calendar_hoursweeks0 + +- + I have set Day3 Working Time for Monday to Friday from 9am to 17pm working hour +- + !record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}: + name: "Day3" + hour_from : 09.00 + hour_to : 17.00 + dayofweek : "2" + calendar_id : resource_calendar_hoursweeks0 + +- + I have set Day4 Working Time for Monday to Friday from 9am to 17pm working hour +- + !record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}: + name: "Day4" + hour_from : 09.00 + hour_to : 17.00 + dayofweek : "3" + calendar_id : resource_calendar_hoursweeks0 + +- + I have set Day5 Working Time for Monday to Friday from 9am to 17pm working hour +- + !record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}: + name: "Day5" + hour_from : 09.00 + hour_to : 17.00 + dayofweek : "4" + calendar_id : resource_calendar_hoursweeks0 + + +- + Now Set working period to Project 'Develop yaml Project Module' +- + !python {model: project.project}: | + self.write(cr, uid, [ref("project_project_developyamlproject0")], {'resource_calendar_id': ref("resource_calendar_hoursweeks0")}) + - Creating 3 consecutive 5-days phases. @@ -68,40 +104,56 @@ Creating First 'Analysis Flow for Yaml' Project Phase. - !record {model: project.phase, id: project_phase_analysisflowforyaml0}: - date_start: '2010-01-05' - duration: 5.0 + date_start: !eval time.strftime('%Y-%m-%d') + duration: 6.0 name: "Analysis Flow for Yaml" product_uom: product.uom_day project_id: project_project_developyamlproject0 responsible_id: project.res_users_analyst state: draft - resource_ids: - - resource_id: resource_resource_analyst1 + +- + I update the Constrain Date Start adn Date End for phase Analysis Flow for Yaml +- + !python {model : project.phase }: | + import datetime + from dateutil.relativedelta import * + start = datetime.date.today() - relativedelta(days=2) + end = datetime.date.today() + relativedelta(days=6) + self.write(cr,uid, [(ref("project_phase_analysisflowforyaml0"))], {'constraint_date_start': start, 'constraint_date_end':end}) - Create project phase 'Develop yaml' with constraint date. - !record {model: project.phase, id: project_phase_developyaml0}: - date_start: '2010-01-05' - constraint_date_start: '2010-01-07' - duration: 5.0 + duration: 6.0 name: Develop Yaml product_uom: product.uom_day project_id: project_project_developyamlproject0 - resource_ids: - - resource_id: resource_resource_develop0 -- + previous_phase_ids: + - project_phase_analysisflowforyaml0 + +- + I update the Constrain Date Start adn Date End for phase Develop yaml +- + !python {model : project.phase }: | + import datetime + from dateutil.relativedelta import * + start = datetime.date.today() - relativedelta(days=5) + end = datetime.date.today() + relativedelta(days=10) + self.write(cr,uid, [(ref("project_phase_developyaml0"))], {'constraint_date_start': start, 'constraint_date_end':end}) +- Create project phase 'Test Yaml' - !record {model: project.phase, id: project_phase_testyaml0}: - date_start: '2010-01-05' - duration: 5.0 + duration: 6.0 name: Testing Yaml product_uom: product.uom_day project_id: project_project_developyamlproject0 - resource_ids: - - resource_id: resource_resource_tester1 - + previous_phase_ids: + - project_phase_developyaml0 + constraint_date_start : + constraint_date_end : - Compute Schedule of phases For One project - diff --git a/addons/project_long_term/test/schedule_phase_tasks.yml b/addons/project_long_term/test/schedule_phase_tasks.yml index aa54fa1ac57..1526d04f933 100644 --- a/addons/project_long_term/test/schedule_phase_tasks.yml +++ b/addons/project_long_term/test/schedule_phase_tasks.yml @@ -23,12 +23,8 @@ state: draft resource_ids: - resource_id: project_long_term.resource_analyst - useability: 80.0 - resource_id: project_long_term.resource_developer - useability: 30.0 - resource_id: project_long_term.resource_designer - useability: 30.0 - - Create the phase task 'Develop GUI for Server Configuration' diff --git a/addons/project_long_term/test/test_schedule_phases_case2.yml b/addons/project_long_term/test/test_schedule_phases_case2.yml index a381ecb045f..67a7332cf5b 100644 --- a/addons/project_long_term/test/test_schedule_phases_case2.yml +++ b/addons/project_long_term/test/test_schedule_phases_case2.yml @@ -23,6 +23,7 @@ hour_to: 16.0 name: Thursday name: Working Time A + - Creating a resource.calendar.attendance record - @@ -129,11 +130,19 @@ state: draft total_hours: 10.0 total_hours: 10.0 + members: + - project.res_users_analyst + - project.res_users_project_manager + - project.res_users_technical_leader + - project.res_users_developer + - project.res_users_designer + - project.res_users_tester type_ids: - project.project_tt_specification - project.project_tt_development - project.project_tt_testing - project.project_tt_merge + - I create a phase 'Initial Phase' for project 'Development and Testing'. - @@ -143,11 +152,6 @@ name: Initial Phase product_uom: product.uom_day project_id: project_project_project0 - resource_ids: - - project_id: project_project_project0 - resource_id: resource_resource_resourcex0 - - project_id: project_project_project0 - resource_id: resource_resource_resourcey0 state: draft - I create first task 'Developing module' and assign 10h. diff --git a/addons/project_long_term/test/test_schedule_tasks_case1.yml b/addons/project_long_term/test/test_schedule_tasks_case1.yml new file mode 100644 index 00000000000..78bf5e318a4 --- /dev/null +++ b/addons/project_long_term/test/test_schedule_tasks_case1.yml @@ -0,0 +1,263 @@ +- + In order to test scheduling of tasks, I create four tasks with different sequences and schedule them. +- + I create address for first user. +- + !record {model: res.partner.address, id: res_partner_address_user0}: + name: User 1 +- + I create address for second user. +- + !record {model: res.partner.address, id: res_partner_address_user1}: + name: User 2 +- + I create first user. +- + !record {model: res.users, id: res_users_user0}: + address_id: res_partner_address_user0 + company_id: base.main_company + context_lang: en_US + groups_id: + - base.group_partner_manager + - base.group_user + login: user1 + name: User 1 + password: user1 +- + I create second user. +- + !record {model: res.users, id: res_users_user1}: + address_id: res_partner_address_user1 + company_id: base.main_company + context_lang: en_US + groups_id: + - base.group_partner_manager + - base.group_user + login: user2 + name: User 2 + password: user2 +- + I create a Project. +- + !record {model: project.project, id: project_project_projecta0}: + balance: 0.0 + credit: 0.0 + currency_id: base.EUR + debit: 0.0 + effective_hours: 0.0 + name: Project A + members: + - res_users_user0 + - res_users_user1 + phase_ids: + - date_start: '2011-01-06' + duration: 2.0 + name: Phase A + product_uom: product.uom_day + state: draft + task_ids: + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task D + planned_hours: 5.0 + remaining_hours: 5.0 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task C + planned_hours: 5.0 + remaining_hours: 5.0 + sequence: 11 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task B + planned_hours: 5.0 + remaining_hours: 5.0 + sequence: 13 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task A + planned_hours: 5.0 + remaining_hours: 5.0 + sequence: 14 + state: draft + total_hours: 5.0 + planned_hours: 20.0 + progress_rate: 0.0 + quantity: 0.0 + quantity_max: 0.0 + state: open + tasks: + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task D + planned_hours: 5.0 + remaining_hours: 5.0 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task C + planned_hours: 5.0 + remaining_hours: 5.0 + sequence: 11 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task B + planned_hours: 5.0 + remaining_hours: 5.0 + sequence: 13 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task A + planned_hours: 5.0 + remaining_hours: 5.0 + sequence: 14 + state: draft + total_hours: 5.0 + total_hours: 15.0 +- + I create first task with highest sequence. +- + !record {model: project.task, id: project_task_taska0}: + delay_hours: 0.0 + effective_hours: 0.0 + name: Task A + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + sequence: 14 + state: draft + total_hours: 5.0 +- + I create second task. +- + !record {model: project.task, id: project_task_taskb0}: + delay_hours: 0.0 + effective_hours: 0.0 + name: Task B + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + sequence: 13 + state: draft + total_hours: 5.0 +- + I create third task. +- + !record {model: project.task, id: project_task_taskc0}: + delay_hours: 0.0 + effective_hours: 0.0 + name: Task C + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + sequence: 11 + state: draft + total_hours: 5.0 +- + I create fourth task with lowest sequence. +- + !record {model: project.task, id: project_task_taskd0}: + delay_hours: 0.0 + effective_hours: 0.0 + name: Task D + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + state: draft + total_hours: 5.0 +- + Now I create a resource for first user. +- + !record {model: resource.resource, id: resource_resource_user0}: + name: User 1 + resource_type: user + time_efficiency: 1.0 + user_id: res_users_user0 +- + I create a resource for second user. +- + !record {model: resource.resource, id: resource_resource_user1}: + name: User 2 + resource_type: user + time_efficiency: 1.0 + user_id: res_users_user1 +- + Now I create one phase for the project. +- + !record {model: project.phase, id: project_phase_phasea0}: + date_start: '2011-01-06' + duration: 2.0 + name: Phase A + product_uom: product.uom_day + project_id: project_project_projecta0 + resource_ids: + - project_id: project_project_projecta0 + resource_id: resource_resource_user0 + - project_id: project_project_projecta0 + resource_id: resource_resource_user1 + state: draft + task_ids: + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task D + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task C + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + sequence: 11 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task B + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + sequence: 13 + state: draft + total_hours: 5.0 + - delay_hours: 0.0 + effective_hours: 0.0 + name: Task A + planned_hours: 5.0 + project_id: project_project_projecta0 + remaining_hours: 5.0 + sequence: 14 + state: draft + total_hours: 5.0 +- + Now I create a record to schedule the tasks of project. +- + !record {model: project.compute.tasks, id: project_compute_tasks0}: + project_id: project_project_projecta0 +- + I schedule the tasks. +- + !python {model: project.compute.tasks}: | + self.compute_date(cr, uid, [ref("project_compute_tasks0")]) +- + I check that whether the tasks now allocated to respected resources or not. +- + !python {model: project.task}: | + task_ids = self.search(cr, uid, [('project_id','=',ref('project_project_projecta0'))]) + for task in self.browse(cr, uid, task_ids): + if (not task.user_id) or (not task.date_start) or (not task.date_end): + raise AssertionError("Tasks are not scheduled.") |
