summaryrefslogtreecommitdiff
path: root/addons/project_long_term
diff options
context:
space:
mode:
authorjam-openerp <jam@tinyerp.com>2011-01-18 14:27:49 +0530
committerjam-openerp <jam@tinyerp.com>2011-01-18 14:27:49 +0530
commitf8ab2f7eaaf4e114f68e862b6c7b7ea0562680c4 (patch)
treefddc636069c20e305ff6ab31a14e1c6c61d4f409 /addons/project_long_term
parent5f2aad96814299276604d134f1226e46f10981cc (diff)
parentbb42baf3b2f3dc9da0934aea23200a9eaf53b373 (diff)
[MERGE]with lp:~openerp-dev/openobject-addons/trunk-dev-addons1
bzr revid: jam@tinyerp.com-20110118085749-hk6e4iz7c1ab16n3
Diffstat (limited to 'addons/project_long_term')
-rw-r--r--addons/project_long_term/__openerp__.py10
-rw-r--r--addons/project_long_term/i18n/de.po213
-rw-r--r--addons/project_long_term/i18n/es.po181
-rw-r--r--addons/project_long_term/i18n/fi.po590
-rw-r--r--addons/project_long_term/i18n/fr.po243
-rw-r--r--addons/project_long_term/i18n/hu.po (renamed from addons/project_long_term/i18n/en_US.po)469
-rw-r--r--addons/project_long_term/i18n/it.po615
-rw-r--r--addons/project_long_term/i18n/lv.po148
-rw-r--r--addons/project_long_term/i18n/pl.po160
-rw-r--r--addons/project_long_term/i18n/project_long_term.pot54
-rw-r--r--addons/project_long_term/i18n/pt.po148
-rw-r--r--addons/project_long_term/project_long_term.py589
-rw-r--r--addons/project_long_term/project_long_term_demo.xml4
-rw-r--r--addons/project_long_term/project_long_term_view.xml32
-rw-r--r--addons/project_long_term/test/phase_constraint.yml179
-rw-r--r--addons/project_long_term/test/project_schedule_consecutive_day.yml126
-rw-r--r--addons/project_long_term/test/project_schedule_without_wroking_hour.yml77
-rw-r--r--addons/project_long_term/test/schedule_phase_tasks.yml29
-rw-r--r--addons/project_long_term/test/schedule_project_phases.yml193
-rw-r--r--addons/project_long_term/test/schedule_project_tasks.yml2
-rw-r--r--addons/project_long_term/test/test_schedule_phases_case1.yml72
-rw-r--r--addons/project_long_term/test/test_schedule_phases_case2.yml193
-rw-r--r--addons/project_long_term/test/test_schedule_tasks_case1.yml263
23 files changed, 3553 insertions, 1037 deletions
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py
index 0d03b5f7315..3a8b1a3fb9b 100644
--- a/addons/project_long_term/__openerp__.py
+++ b/addons/project_long_term/__openerp__.py
@@ -40,9 +40,15 @@ Features.
"init_xml": [],
"demo_xml": ["project_long_term_demo.xml"],
"test": [
+ 'test/test_schedule_phases_case1.yml',
'test/schedule_project_phases.yml',
'test/schedule_project_tasks.yml',
- 'test/schedule_phase_tasks.yml'
+ 'test/test_schedule_phases_case2.yml',
+ 'test/project_schedule_consecutive_day.yml',
+ 'test/project_schedule_without_wroking_hour.yml',
+ 'test/schedule_phase_tasks.yml',
+ 'test/phase_constraint.yml',
+ 'test/test_schedule_tasks_case1.yml',
],
"update_xml": [
"security/ir.model.access.csv",
@@ -54,7 +60,7 @@ Features.
],
'installable': True,
'active': False,
- 'certificate': None,
+ 'certificate': '001227470751077315069',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_long_term/i18n/de.po b/addons/project_long_term/i18n/de.po
index 9c4a72f7a7c..50811dd7ddd 100644
--- a/addons/project_long_term/i18n/de.po
+++ b/addons/project_long_term/i18n/de.po
@@ -6,16 +6,16 @@ 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 14:22+0000\n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-01-12 18:37+0000\n"
"Last-Translator: Thorsten Vocks (OpenBig.org) <thorsten.vocks@big-"
"consulting.net>\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: 2011-01-01 05:05+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
+"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
#. module: project_long_term
#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
@@ -60,6 +60,11 @@ msgid "Resources Allocation"
msgstr "Ressourcenaufteilung"
#. module: project_long_term
+#: view:project.phase:0
+msgid "Displaying settings"
+msgstr "Anzeigekonfiguration"
+
+#. 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:133
#, python-format
msgid "Day"
msgstr "Tag"
@@ -152,6 +157,14 @@ 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
+#: help:project.phase,date_end:0
+msgid ""
+" It's computed by the scheduler according to the start date and the duration."
+msgstr ""
+" Wird berechnet durch einen Planungsassistenten in Abhängigkeit von Beginn "
+"und Dauer."
+
+#. 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 +177,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,23 +188,11 @@ msgid "Cancelled"
msgstr "Abgebrochen"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "No tasks to compute for Project '%s'."
-msgstr "Keine Aufgaben zur Berechnung für Projekt '%s'."
-
-#. module: project_long_term
#: help:project.resource.allocation,date_end:0
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 +215,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:195
#, 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 +335,20 @@ msgstr "OK"
#. module: project_long_term
#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr "Info Planungsassistent und Anzeige"
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+"Wird berechnet durch einen Planungsassistenten in Abhängigkeit vom "
+"Projektdatum oder dem Ende Datum der vorherigen Projektphase."
+
+#. module: project_long_term
+#: view:project.phase:0
msgid "Month"
msgstr "Monat"
@@ -344,7 +360,26 @@ msgstr "Start Datum der Phase muss vor dem Ende Datum sein."
#. module: project_long_term
#: model:ir.model,name:project_long_term.model_project_schedule_tasks
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 ""
+"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
#: field:project.phase,date_start:0
@@ -369,25 +404,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"
@@ -419,31 +435,6 @@ msgid "Project Compute Tasks"
msgstr "Berechnung Aufgaben f. Projekt"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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
-#, python-format
-msgid "Error"
-msgstr "Fehler"
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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 +478,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 +498,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 ""
@@ -540,14 +526,6 @@ msgid "Phase"
msgstr "Phase"
#. 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
#: help:project.phase,state:0
msgid ""
"If the phase is created the state 'Draft'.\n"
@@ -580,6 +558,11 @@ msgid "Name"
msgstr "Bezeichnung"
#. module: project_long_term
+#: view:project.phase:0
+msgid "Tasks Details"
+msgstr "Aufgabendetails"
+
+#. module: project_long_term
#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
msgid "Working Period"
msgstr "Arbeitszeitmodell"
@@ -591,17 +574,10 @@ 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
-#, python-format
-msgid "No tasks to compute for Phase '%s'."
-msgstr "Keine Aufgaben zur Berechnung für Phase: '%s'."
-
-#. 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
@@ -673,6 +649,9 @@ msgstr "Dauer"
#~ "Usability of this resource for this project phase in percentage (=50%)"
#~ msgstr "Verfügbarkeit der Ressource für diese Projektphase in Prozent (=50%)"
+#~ msgid "Ending Date of the phase"
+#~ msgstr "Ende Datum d. Phase"
+
#~ msgid "This wizard will schedule phases for all or specified project"
#~ msgstr "Der Assistent kalkuliert die Phasen für alle oder ein spez. Projekt"
@@ -698,6 +677,18 @@ msgstr "Dauer"
#~ msgid "Compute"
#~ msgstr "Berechne"
+#, python-format
+#~ msgid "No responsible person assigned !"
+#~ msgstr "Keinen Verantwortlichen zugewiesen!"
+
+#, python-format
+#~ msgid "Error"
+#~ msgstr "Fehler"
+
+#, python-format
+#~ msgid "You must assign a responsible person for phase '%s' !"
+#~ msgstr "Sie müssen einen Verantwortlichen für die Phase zuweisen '%s' !"
+
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
@@ -708,11 +699,65 @@ msgstr "Dauer"
#~ msgid "Phase must have resources assigned !"
#~ msgstr "Phase muss zugewiesene Ressource haben!"
+#~ msgid "Other Info"
+#~ msgstr "Weitere Info"
+
+#~ msgid "Starting Date of the phase"
+#~ msgstr "Beginn der Phase"
+
#~ msgid "The certificate ID of the module must be unique !"
#~ msgstr "Die Zertifikat ID des Moduls sollte eindeutig sein !"
+#, python-format
+#~ msgid "No tasks to compute for Project '%s'."
+#~ msgstr "Keine Aufgaben zur Berechnung für Projekt '%s'."
+
+#~ 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 "No tasks to compute for Phase '%s'."
+#~ msgstr "Keine Aufgaben zur Berechnung für Phase: '%s'."
+
+#, 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"
+
+#~ 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"
+
+#, python-format
+#~ msgid ""
+#~ "Resources should be allocated to your phases and Members should be assigned "
+#~ "to your Project!"
+#~ msgstr ""
+#~ "Ressourcen sollten auf Ihre Projektphasen verteilt werden, "
+#~ "Projektmitarbeiter sollten auf Ihre Projekte verteilt werden."
diff --git a/addons/project_long_term/i18n/es.po b/addons/project_long_term/i18n/es.po
index 97294142262..3fc6e3c7c06 100644
--- a/addons/project_long_term/i18n/es.po
+++ b/addons/project_long_term/i18n/es.po
@@ -7,15 +7,15 @@ 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"
-"PO-Revision-Date: 2010-12-31 10:23+0000\n"
-"Last-Translator: Borja López Soilán <borjalopezsoilan@gmail.com>\n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-01-12 15:13+0000\n"
+"Last-Translator: Carlos-smile <Unknown>\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-Generator: Launchpad (build Unknown)\n"
+"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
#. module: project_long_term
#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
@@ -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:133
#, python-format
msgid "Day"
msgstr "Día"
@@ -132,6 +137,14 @@ 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
+#: help:project.phase,date_end:0
+msgid ""
+" It's computed by the scheduler according to the start date and the duration."
+msgstr ""
+" Es calculado por el planificador en fucnión de la fecha de inicio y la "
+"duración"
+
+#. 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 +157,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,23 +168,11 @@ msgid "Cancelled"
msgstr "Cancelado"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "No tasks to compute for Project '%s'."
-msgstr ""
-
-#. module: project_long_term
#: help:project.resource.allocation,date_end:0
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 +195,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:195
#, 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"
@@ -287,11 +289,13 @@ msgstr "Fechas"
msgid ""
"Availability of this resource for this project phase in percentage (=50%)"
msgstr ""
+"La disponibilidad de este recurso para esta fase de proyecto en porcentaje "
+"(=50%)"
#. module: project_long_term
#: help:project.phase,constraint_date_start:0
msgid "force the phase to start after this date"
-msgstr ""
+msgstr "Forzar que la fase epiece después de esta fecha"
#. module: project_long_term
#: field:project.phase,task_ids:0
@@ -310,13 +314,27 @@ msgstr "_Aceptar"
#. module: project_long_term
#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr "Planificar y mostrar información"
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+"Es calculado por el planificador en función de la fecha inicio o fecha fin "
+"de la fase anterior"
+
+#. module: project_long_term
+#: view:project.phase:0
msgid "Month"
msgstr "Mes"
#. module: project_long_term
#: constraint:project.phase:0
msgid "Phase start-date must be lower than phase end-date."
-msgstr ""
+msgstr "La fecha-inicio de la fase debe ser anterior a la fecha-fin."
#. module: project_long_term
#: model:ir.model,name:project_long_term.model_project_schedule_tasks
@@ -324,6 +342,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"
@@ -337,7 +366,7 @@ msgstr "Asignación de recursos"
#. module: project_long_term
#: help:project.phase,constraint_date_end:0
msgid "force the phase to finish before this date"
-msgstr ""
+msgstr "Forzar que la fase termine antes de esta fecha"
#. module: project_long_term
#: view:project.phase:0
@@ -346,17 +375,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"
@@ -380,36 +398,12 @@ msgstr "Detalles tarea"
#. module: project_long_term
#: help:project.project,resource_calendar_id:0
msgid "Timetable working hours to adjust the gantt diagram report"
-msgstr ""
+msgstr "Horario de trabajo para ajustar el informe del diagrama de Gantt"
#. 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/project_long_term.py:0
-#, python-format
-msgid "No responsible person assigned !"
-msgstr ""
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "Error"
-msgstr "Error"
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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 ""
+msgstr "Calcular tareas proyecto"
#. module: project_long_term
#: view:project.phase:0
@@ -419,7 +413,7 @@ msgstr "Restricciones"
#. module: project_long_term
#: help:project.phase,sequence:0
msgid "Gives the sequence order when displaying a list of phases."
-msgstr ""
+msgstr "Indica el orden cuando se muestra la lista de fases"
#. module: project_long_term
#: model:ir.actions.act_window,name:project_long_term.act_project_phase
@@ -429,7 +423,7 @@ msgstr ""
#: view:project.phase:0
#: field:project.project,phase_ids:0
msgid "Project Phases"
-msgstr ""
+msgstr "Fases proyecto"
#. module: project_long_term
#: view:project.phase:0
@@ -455,11 +449,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,10 +469,10 @@ 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 ""
+msgstr "Por favor seleccione el proyecto a planificar"
#. module: project_long_term
#: view:project.phase:0
@@ -494,12 +483,12 @@ msgstr "Total horas"
#. module: project_long_term
#: view:project.schedule.tasks:0
msgid "Task Scheduling completed successfully."
-msgstr ""
+msgstr "Planificación de tareas completada satisfactoriamente."
#. module: project_long_term
#: view:project.compute.tasks:0
msgid "Compute Scheduling of Task for specified project."
-msgstr ""
+msgstr "Calcular planificación de tareas para un proyecto específico"
#. module: project_long_term
#: view:project.resource.allocation:0
@@ -507,14 +496,6 @@ msgid "Phase"
msgstr "Fase"
#. 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
#: help:project.phase,state:0
msgid ""
"If the phase is created the state 'Draft'.\n"
@@ -542,6 +523,11 @@ msgid "Name"
msgstr "Nombre"
#. module: project_long_term
+#: view:project.phase:0
+msgid "Tasks Details"
+msgstr "Detalles tareas"
+
+#. module: project_long_term
#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
msgid "Working Period"
msgstr "Periodo de trabajo"
@@ -553,17 +539,10 @@ 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
-#, python-format
-msgid "No tasks to compute for Phase '%s'."
-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
@@ -619,5 +598,35 @@ msgstr "Por defecto en días"
msgid "Duration"
msgstr "Duración"
+#, python-format
+#~ msgid "Error"
+#~ msgstr "Error"
+
+#~ msgid "Other Info"
+#~ msgstr "Otra información"
+
#~ msgid "Ending Date of the phase"
#~ msgstr "Fecha de fin de la fase"
+
+#, python-format
+#~ msgid "No tasks to compute for Project '%s'."
+#~ msgstr "No existen tareas para calcular en este proyecto '%s'"
+
+#, python-format
+#~ msgid ""
+#~ "Resources should be allocated to your phases and Members should be assigned "
+#~ "to your Project!"
+#~ msgstr ""
+#~ "Los recursos deben de ser asignados a tus fases y los miembros a tu proyecto."
+
+#, python-format
+#~ msgid "You must assign a responsible person for phase '%s' !"
+#~ msgstr "¡Debe asignar un reponsable por fase '%s'!"
+
+#, python-format
+#~ msgid "No responsible person assigned !"
+#~ msgstr "¡No hay un reponsable asignado!"
+
+#, python-format
+#~ msgid "No tasks to compute for Phase '%s'."
+#~ msgstr "No existen tareas para el cálculo para la fase '%s'."
diff --git a/addons/project_long_term/i18n/fi.po b/addons/project_long_term/i18n/fi.po
new file mode 100644
index 00000000000..d3a979bf965
--- /dev/null
+++ b/addons/project_long_term/i18n/fi.po
@@ -0,0 +1,590 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-01-12 15:37+0000\n"
+"Last-Translator: Pekka Pylvänäinen <Unknown>\n"
+"Language-Team: Finnish <fi@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-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\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
+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 "Seuraavat vaiheet"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr "Projektin tehtävät"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phases
+msgid "Phases"
+msgstr "Vaiheet"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr "Virhe: projektin alkupäivä tulee olla aikaisempi kuin loppupäivä."
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+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 ""
+
+#. 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
+#: constraint:project.task:0
+msgid "Error ! You cannot create recursive tasks."
+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
+msgid "Resource Allocations"
+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:133
+#, 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
+#: 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
+#: view:project.phase:0
+#: field:project.phase,project_id:0
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,project_id:0
+#: view:project.task:0
+msgid "Project"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:50
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.resource.allocation,date_end:0
+msgid "Ending Date"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Planning"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+msgid "Deadline"
+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
+#: code:addons/project_long_term/project_long_term.py:195
+#, python-format
+msgid " (copy)"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,useability:0
+msgid "Availability"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "State"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "C_ompute"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "Compute Scheduling of phases for all or specified project"
+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
+#: field:project.phase,constraint_date_start:0
+msgid "Minimum Start Date"
+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
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_resource
+#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+#: view:project.resource.allocation:0
+msgid "Resources"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,help:project_long_term.action_project_compute_phases
+msgid ""
+"To schedule phases of all or a specified project. It then open a gantt "
+"view.\n"
+"\t "
+msgstr ""
+
+#. module: project_long_term
+#: help:project.resource.allocation,date_start:0
+msgid "Starting Date"
+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
+#: view:project.phase:0
+msgid "Dates"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.resource.allocation,useability:0
+msgid ""
+"Availability of this resource for this project phase in percentage (=50%)"
+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
+#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Month"
+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
+#: 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"
+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
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.resource.allocation,name:0
+msgid "unknown"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.resource.allocation,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Task Detail"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+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
+#: 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
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase_list
+#: 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
+#: view:project.phase:0
+msgid "Remaining Hours"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,responsible_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Current"
+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:50
+#, python-format
+msgid "Please Specify Project to be schedule"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,total_hours:0
+msgid "Total Hours"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "Task Scheduling completed successfully."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task for specified project."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "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,date_end:0
+#: field:project.resource.allocation,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
+#: 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 ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_resource_resource
+msgid "Resource Detail"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+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
+#: view:project.task: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 3b7d111daac..4a3ed76df76 100644
--- a/addons/project_long_term/i18n/fr.po
+++ b/addons/project_long_term/i18n/fr.po
@@ -6,15 +6,15 @@ 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-11 11:15+0000\n"
+"PO-Revision-Date: 2011-01-13 05:12+0000\n"
+"Last-Translator: Quentin THEURET <quentin@theuret.net>\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-Generator: Launchpad (build Unknown)\n"
+"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
#. module: project_long_term
#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
@@ -52,6 +52,8 @@ msgstr "Regrouper par..."
#: constraint:project.project:0
msgid "Error! project start-date must be lower then project end-date."
msgstr ""
+"Erreur ! La date de début du projet doit être antérieure à la date de fin du "
+"projet."
#. module: project_long_term
#: view:project.resource.allocation:0
@@ -59,6 +61,11 @@ msgid "Resources Allocation"
msgstr "Allocation des ressources"
#. module: project_long_term
+#: view:project.phase:0
+msgid "Displaying settings"
+msgstr "Options d'affichage"
+
+#. module: project_long_term
#: field:project.compute.phases,target_project:0
msgid "Schedule"
msgstr "Planifier"
@@ -84,6 +91,27 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"\n"
+" Module de gestion de projet à long terme, qui fait le suivi de la "
+"planification, de l'ordonnancement, de l'allocation des ressources.\n"
+" Principalement utilisé pour la gestion de gros projet.\n"
+" - Les phases du projet seront maintenues par le chef de projet\n"
+" - Calcule l'ordonnancement des phases : calcule les dates de "
+"début et de fin des phases dans l'état brouillon, ouverte ou en attente pour "
+"un projet donné.\n"
+" Si aucun projet n'est spécifié, "
+"alors toutes les phases dans l'état brouillon, ouverte et en attente seront "
+"considérées\n"
+" - Calcule l'ordonnancement des tâches : Fonctionne de la même "
+"façon que le bouton d'ordonnancement sur les projets. Il prend le projet "
+"comme argument et calcule toutes les tâches ouvertes, en brouillon et en "
+"attente\n"
+" - Ordonnance les tâches : Toutes les tâches dans l'état "
+"brouillon, ouverte et en attente sont planifiés avec la date de début de la "
+"phase.\n"
+"\n"
+" "
#. module: project_long_term
#: constraint:project.task:0
@@ -100,9 +128,10 @@ msgstr "Allocations des ressources"
#: constraint:project.project:0
msgid "Error! You cannot assign escalation to the same project!"
msgstr ""
+"Erreur ! Vous ne pouvez pas attribuer une escalade sur le même projet !"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
+#: code:addons/project_long_term/project_long_term.py:133
#, python-format
msgid "Day"
msgstr "Jour"
@@ -115,7 +144,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 +158,13 @@ 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
+#: help:project.phase,date_end:0
+msgid ""
+" It's computed by the scheduler according to the start date and the duration."
+msgstr ""
+" C'est calculé par l'ordonnanceur selon la date de début et la durée."
+
+#. 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 +177,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,23 +188,11 @@ msgid "Cancelled"
msgstr "Annulé"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "No tasks to compute for Project '%s'."
-msgstr "Pas de tâches à calculer pour le projet '%s'."
-
-#. module: project_long_term
#: help:project.resource.allocation,date_end:0
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 +212,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:195
#, 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 +243,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 +337,20 @@ msgstr "_Ok"
#. module: project_long_term
#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr "Ordonnancer et afficher les informations"
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+"Ceci est calculé par l'ordonnanceur en fonction de la date du projet ou de "
+"la date de fin de la tâche précédente."
+
+#. module: project_long_term
+#: view:project.phase:0
msgid "Month"
msgstr "Mois"
@@ -327,6 +367,23 @@ 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 ""
+"Un projet peut être divisé en différentes phases. Pour chaque phase, on peut "
+"allouer de ressources, décrire différentes tâches et chaîner la phase aux "
+"précédentes et suivantes, ajouter des contraintes de date pour "
+"l'ordonnancement automatique. Utiliser la planification à long terme pour "
+"planifier la disponibilité des ressources humaines, convertir les phases en "
+"une série de tâches quand on commence à travailler sur le projet."
+
+#. module: project_long_term
#: field:project.phase,date_start:0
#: field:project.resource.allocation,date_start:0
msgid "Start Date"
@@ -349,23 +406,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"
@@ -396,31 +436,7 @@ 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/project_long_term.py:0
-#, 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
-#, python-format
-msgid "Error"
-msgstr "Erreur"
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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 ""
+msgstr "Calculer les tâches du projet"
#. module: project_long_term
#: view:project.phase:0
@@ -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
@@ -518,14 +529,6 @@ msgid "Phase"
msgstr "Phase"
#. 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
#: help:project.phase,state:0
msgid ""
"If the phase is created the state 'Draft'.\n"
@@ -557,6 +560,11 @@ msgid "Name"
msgstr "Nom"
#. module: project_long_term
+#: view:project.phase:0
+msgid "Tasks Details"
+msgstr "Détails des tâches"
+
+#. module: project_long_term
#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
msgid "Working Period"
msgstr "Période de travail"
@@ -568,17 +576,10 @@ 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
-#, python-format
-msgid "No tasks to compute for Phase '%s'."
-msgstr "Pas de tâches à calculer pour la phase '%s'."
-
-#. 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
@@ -600,7 +601,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
@@ -610,7 +611,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
@@ -622,7 +623,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
@@ -633,3 +634,65 @@ msgstr "Par défaut en jour"
#: field:project.phase,duration:0
msgid "Duration"
msgstr "Durée"
+
+#, python-format
+#~ msgid "No tasks to compute for Project '%s'."
+#~ msgstr "Pas de tâches à calculer pour le projet '%s'."
+
+#~ msgid "Ending Date of the phase"
+#~ msgstr "Date de fin de la phase"
+
+#, python-format
+#~ msgid "You must assign a responsible person for phase '%s' !"
+#~ msgstr "Vous devez assigner une personne responsable de la phase '%s' !"
+
+#, python-format
+#~ msgid "Error"
+#~ msgstr "Erreur"
+
+#, python-format
+#~ msgid "No responsible person assigned !"
+#~ msgstr "Aucun responsable n'a été assigné !"
+
+#~ msgid "Other Info"
+#~ msgstr "Autres Informations"
+
+#~ msgid "Starting Date of the phase"
+#~ msgstr "Date de début de la phase"
+
+#, python-format
+#~ msgid "No tasks to compute for Phase '%s'."
+#~ msgstr "Pas de tâches à calculer pour la phase '%s'."
+
+#~ 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"
+
+#~ 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"
+
+#, python-format
+#~ msgid ""
+#~ "Resources should be allocated to your phases and Members should be assigned "
+#~ "to your Project!"
+#~ msgstr ""
+#~ "Des ressources devraient être allouées à vos phases et des membres devraient "
+#~ "être affectés à votre projet !"
diff --git a/addons/project_long_term/i18n/en_US.po b/addons/project_long_term/i18n/hu.po
index 15a3bd4034b..f172b6c5034 100644
--- a/addons/project_long_term/i18n/en_US.po
+++ b/addons/project_long_term/i18n/hu.po
@@ -1,142 +1,145 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * project_long_term
+# * project_long_term
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2010-08-20 10:27:00+0000\n"
-"PO-Revision-Date: 2010-08-20 10:27:00+0000\n"
-"Last-Translator: <>\n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-01-14 00:06+0000\n"
+"Last-Translator: NOVOTRADE RENDSZERHÁZ <openerp@novotrade.hu>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
#. module: project_long_term
#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
msgid "Long Term Project Management"
-msgstr "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 "Compute Scheduling of Phases"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: field:project.phase,next_phase_ids:0
msgid "Next Phases"
-msgstr "Next Phases"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
msgid "Project's Tasks"
-msgstr "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 "Phases"
-
-#. module: project_long_term
-#: view:project.compute.phases:0
-msgid "_Compute"
-msgstr "_Compute"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: view:project.resource.allocation:0
msgid "Group By..."
-msgstr "Group By..."
-
-#. module: project_long_term
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "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 "Error! project start-date must be lower then project end-date."
+msgstr ""
+"Hiba! A projekt kezdő dátumának előbbinek kell lennie, mint a projekt "
+"befejező dátumának."
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+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 "Schedule"
+msgstr ""
#. module: project_long_term
#: model:ir.module.module,description:project_long_term.module_meta_information
-msgid "\n"
+msgid ""
"\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 "\n"
-"\n"
-" Long Term Project management module that tracks planning, scheduling, resources allocation.\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"
+" - 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
+#: constraint:project.task:0
+msgid "Error ! You cannot create recursive tasks."
+msgstr "Hiba! Nem hozhat létre rekurzív feladatokat."
#. 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 "Resource Allocations"
-
-#. module: project_long_term
-#: view:project.resource.allocation:0
-msgid "R.A."
-msgstr "R.A."
+msgstr ""
#. module: project_long_term
#: constraint:project.project:0
msgid "Error! You cannot assign escalation to the same project!"
-msgstr "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:133
#, python-format
msgid "Day"
-msgstr "Day"
+msgstr ""
#. module: project_long_term
#: model:ir.model,name:project_long_term.model_project_task
msgid "Task"
-msgstr "Task"
+msgstr "Feladat"
#. module: project_long_term
#: selection:project.compute.phases,target_project:0
msgid "Compute a Single Project"
-msgstr "Compute a Single Project"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: field:project.phase,previous_phase_ids:0
msgid "Previous Phases"
-msgstr "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 "UoM (Unit of Measure) is the unit of measurement for Duration"
+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
@@ -144,407 +147,445 @@ msgstr "UoM (Unit of Measure) is the unit of measurement for Duration"
#: field:project.compute.tasks,project_id:0
#: view:project.phase:0
#: field:project.phase,project_id:0
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,project_id:0
+#: view:project.task:0
msgid "Project"
-msgstr "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 "Error!"
+msgstr ""
#. module: project_long_term
#: selection:project.phase,state:0
msgid "Cancelled"
-msgstr "Cancelled"
-
-#. module: project_long_term
-#: field:project.resource.allocation,useability:0
-msgid "Usability"
-msgstr "Usability"
-
-#. module: project_long_term
-#: help:project.resource.allocation,useability:0
-msgid "Usability of this resource for this project phase in percentage (=50%)"
-msgstr "Usability of this resource for this project phase in percentage (=50%)"
-
-#. module: project_long_term
-#: help:project.phase,date_end:0
-#: field:project.resource.allocation,phase_id_date_end:0
-msgid "It's computed by the scheduler according to the start date and the duration."
-msgstr "It's computed by the scheduler according to the start date and the duration."
+msgstr ""
#. module: project_long_term
-#: view:project.compute.phases:0
-msgid "This wizard will schedule phases for all or specified project"
-msgstr "This wizard will schedule phases for all or specified project"
+#: help:project.resource.allocation,date_end:0
+msgid "Ending Date"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
msgid "Planning"
-msgstr "Planning"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+msgid "Deadline"
+msgstr ""
#. module: project_long_term
#: view:project.compute.phases:0
#: view:project.compute.tasks:0
msgid "_Cancel"
-msgstr "_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 "Compute Phase Scheduling"
-
-#. module: project_long_term
-#: constraint:res.users:0
-msgid "The chosen company is not in the allowed companies for this user"
-msgstr "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 "Error! You can not create recursive analytic accounts."
+#: code:addons/project_long_term/project_long_term.py:195
+#, python-format
+msgid " (copy)"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-msgid "Dates"
-msgstr "Dates"
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,useability:0
+msgid "Availability"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: field:project.phase,state:0
msgid "State"
-msgstr "State"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "C_ompute"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "Compute Scheduling of phases for all or specified project"
+msgstr ""
#. module: project_long_term
#: field:project.phase,product_uom:0
msgid "Duration UoM"
-msgstr "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 "Compute Task Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_start:0
+msgid "Minimum Start Date"
+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 "Project Resource Allocation"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task"
+msgstr ""
#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_resource
#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+#: view:project.resource.allocation:0
msgid "Resources"
-msgstr "Resources"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,help:project_long_term.action_project_compute_phases
+msgid ""
+"To schedule phases of all or a specified project. It then open a gantt "
+"view.\n"
+"\t "
+msgstr ""
+
+#. module: project_long_term
+#: help:project.resource.allocation,date_start:0
+msgid "Starting Date"
+msgstr ""
#. module: project_long_term
#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
msgid "Related Tasks"
-msgstr "Related Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Dates"
+msgstr ""
#. module: project_long_term
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Invalid XML for View Architecture!"
+#: help:project.resource.allocation,useability:0
+msgid ""
+"Availability of this resource for this project phase in percentage (=50%)"
+msgstr ""
#. module: project_long_term
#: help:project.phase,constraint_date_start:0
msgid "force the phase to start after this date"
-msgstr "force the phase to start after this date"
+msgstr ""
#. module: project_long_term
#: field:project.phase,task_ids:0
msgid "Project Tasks"
-msgstr "Project Tasks"
+msgstr ""
#. module: project_long_term
#: field:project.phase,resource_ids:0
msgid "Project Resources"
-msgstr "Project Resources"
+msgstr ""
#. module: project_long_term
#: view:project.schedule.tasks:0
msgid "_Ok"
-msgstr "_Ok"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Month"
+msgstr ""
#. module: project_long_term
#: constraint:project.phase:0
msgid "Phase start-date must be lower than phase end-date."
-msgstr "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 "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
-#: view:project.phase:0
-#: field:project.phase,constraint_date_start:0
#: field:project.phase,date_start:0
+#: field:project.resource.allocation,date_start:0
msgid "Start Date"
-msgstr "Start Date"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
msgid "Resource Allocation"
-msgstr "Resource Allocation"
+msgstr ""
#. module: project_long_term
#: help:project.phase,constraint_date_end:0
msgid "force the phase to finish before this date"
-msgstr "force the phase to finish before this date"
-
-#. module: project_long_term
-#: code:addons/project_long_term/wizard/project_compute_tasks.py:0
-#, python-format
-msgid "Project must have members assigned !"
-msgstr "Project must have members assigned !"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: selection:project.phase,state:0
msgid "Draft"
-msgstr "Draft"
-
-#. module: project_long_term
-#: constraint:ir.ui.menu:0
-msgid "Error ! You can not create recursive Menu."
-msgstr "Error ! You can not create recursive Menu."
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: selection:project.phase,state:0
msgid "Pending"
-msgstr "Pending"
-
-#. module: project_long_term
-#: constraint:project.task:0
-msgid "Error! Task start-date must be lower then task end-date."
-msgstr "Error! Task start-date must be lower then task end-date."
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-msgid "Remaining Hours"
-msgstr "Remaining Hours"
+#: field:project.resource.allocation,name:0
+msgid "unknown"
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
+#: field:project.resource.allocation,user_id:0
msgid "User"
-msgstr "User"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
msgid "Task Detail"
-msgstr "Task Detail"
+msgstr ""
#. module: project_long_term
-#: view:project.compute.tasks:0
-msgid "Compute"
-msgstr "Compute"
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+msgstr ""
#. module: project_long_term
#: model:ir.model,name:project_long_term.model_project_compute_tasks
msgid "Project Compute Tasks"
-msgstr "Project Compute Tasks"
-
-#. module: project_long_term
-#: code:addons/project_long_term/wizard/project_compute_phases.py:0
-#, python-format
-msgid "No responsible person assigned !"
-msgstr "No responsible person assigned !"
-
-#. 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 "Error"
-
-#. 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 "You must assign a responsible person for phase '%s' !"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
msgid "Constraints"
-msgstr "Constraints"
+msgstr ""
#. module: project_long_term
#: help:project.phase,sequence:0
msgid "Gives the sequence order when displaying a list of phases."
-msgstr "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
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase_list
#: view:project.phase:0
#: field:project.project,phase_ids:0
msgid "Project Phases"
-msgstr "Project Phases"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: selection:project.phase,state:0
msgid "Done"
-msgstr "Done"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
msgid "Cancel"
-msgstr "Cancel"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
#: selection:project.phase,state:0
msgid "In Progress"
-msgstr "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 "The Object name must start with x_ and not contain any special character !"
+#: view:project.phase:0
+msgid "Remaining Hours"
+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 "Phase must have resources assigned !"
+#: view:project.phase:0
+#: field:project.phase,responsible_id:0
+msgid "Responsible"
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-msgid "Other Info"
-msgstr "Other Info"
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr ""
#. module: project_long_term
-#: field:project.phase,responsible_id:0
-msgid "Responsible"
-msgstr "Responsible"
+#: view:project.phase:0
+msgid "Current"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
msgid "Start Phase"
-msgstr "Start Phase"
+msgstr ""
#. 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 "Please Specify Project to be schedule"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,total_hours:0
+msgid "Total Hours"
+msgstr ""
#. module: project_long_term
#: view:project.schedule.tasks:0
msgid "Task Scheduling completed successfully."
-msgstr "Task Scheduling completed successfully."
+msgstr ""
#. module: project_long_term
-#: view:project.resource.allocation:0
-msgid "Phase"
-msgstr "Phase"
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task for specified project."
+msgstr ""
#. module: project_long_term
-#: help:project.phase,date_start:0
-#: field:project.resource.allocation,phase_id_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 "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"
+#: view:project.resource.allocation:0
+msgid "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 "If the phase is created the state 'Draft'.\n"
+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 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
+#: field:project.resource.allocation,date_end:0
msgid "End Date"
-msgstr "End Date"
+msgstr ""
#. module: project_long_term
#: view:project.resource.allocation:0
#: field:project.resource.allocation,resource_id:0
msgid "Resource"
-msgstr "Resource"
+msgstr ""
#. module: project_long_term
#: field:project.phase,name:0
msgid "Name"
-msgstr "Name"
+msgstr ""
+
+#. 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 "Working Period"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_resource_resource
+msgid "Resource Detail"
+msgstr ""
#. module: project_long_term
#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
-#: view:project.phase:0
msgid "Scheduling"
-msgstr "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
+#: view:project.task:0
#: field:project.task,phase_id:0
msgid "Project Phase"
-msgstr "Project Phase"
+msgstr ""
#. module: project_long_term
#: model:ir.model,name:project_long_term.model_project_compute_phases
msgid "Project Compute Phases"
-msgstr "Project Compute Phases"
+msgstr ""
#. module: project_long_term
#: field:project.schedule.tasks,msg:0
msgid "Message"
-msgstr "Message"
+msgstr ""
#. module: project_long_term
#: constraint:project.phase:0
msgid "Loops in phases not allowed"
-msgstr "Loops in phases not allowed"
+msgstr ""
#. module: project_long_term
#: field:project.phase,sequence:0
msgid "Sequence"
-msgstr "Sequence"
+msgstr ""
#. module: project_long_term
#: selection:project.compute.phases,target_project:0
msgid "Compute All Projects"
-msgstr "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 "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 "Schedule Tasks"
+msgstr ""
#. module: project_long_term
#: help:project.phase,duration:0
msgid "By default in days"
-msgstr "By default in days"
+msgstr ""
#. module: project_long_term
#: field:project.phase,duration:0
msgid "Duration"
-msgstr "Duration"
-
+msgstr ""
diff --git a/addons/project_long_term/i18n/it.po b/addons/project_long_term/i18n/it.po
new file mode 100644
index 00000000000..c5b4149667c
--- /dev/null
+++ b/addons/project_long_term/i18n/it.po
@@ -0,0 +1,615 @@
+# Italian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-01-14 15:07+0000\n"
+"Last-Translator: Lorenzo Battistini - agilebg.com "
+"<lorenzo.battistini@agilebg.com>\n"
+"Language-Team: Italian <it@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-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
+
+#. module: project_long_term
+#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
+msgid "Long Term Project Management"
+msgstr "Gestione progetti a lungo termine"
+
+#. module: project_long_term
+#: view:project.compute.phases: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 "Prossima fase"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr "Attività del progetto"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phases
+msgid "Phases"
+msgstr "Fasi"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Group By..."
+msgstr "Raggruppa per..."
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr ""
+"Errore! La data inizio del progetto deve essere antecedente alla data fine."
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "Resources Allocation"
+msgstr "Allocazione risorse"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Displaying settings"
+msgstr "Visualizza impostazioni"
+
+#. module: project_long_term
+#: field:project.compute.phases,target_project:0
+msgid "Schedule"
+msgstr "Pianificazione"
+
+#. 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
+#: constraint:project.task:0
+msgid "Error ! You cannot create recursive tasks."
+msgstr "Errore ! Non è possibile creare attività ricorsive."
+
+#. 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
+msgid "Resource Allocations"
+msgstr "Allocazione risorse"
+
+#. 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:133
+#, python-format
+msgid "Day"
+msgstr "Giorno"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_task
+msgid "Task"
+msgstr "Attività"
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute a Single Project"
+msgstr "Calcola un singolo progetto"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,previous_phase_ids:0
+msgid "Previous Phases"
+msgstr "Fase precedente"
+
+#. module: project_long_term
+#: help:project.phase,product_uom:0
+msgid "UoM (Unit of Measure) is the unit of measurement for Duration"
+msgstr "U.M. (unità di misura) è l'unità per la misurazione della durata"
+
+#. 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
+#: view:project.phase:0
+#: field:project.phase,project_id:0
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,project_id:0
+#: view:project.task:0
+msgid "Project"
+msgstr "Progetto"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:50
+#, python-format
+msgid "Error!"
+msgstr "Errore!"
+
+#. module: project_long_term
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr "Annullato"
+
+#. module: project_long_term
+#: help:project.resource.allocation,date_end:0
+msgid "Ending Date"
+msgstr "Data fine"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Planning"
+msgstr "Pianificazione"
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+msgid "Deadline"
+msgstr "Scadenza"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "_Cancel"
+msgstr "_Annulla"
+
+#. 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
+#: code:addons/project_long_term/project_long_term.py:195
+#, 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"
+msgstr "Disponibilità"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "State"
+msgstr "Stato"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "C_ompute"
+msgstr "C_alcola"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "Compute Scheduling of phases for all or specified project"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,product_uom:0
+msgid "Duration UoM"
+msgstr "U.M. durata"
+
+#. 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
+#: field:project.phase,constraint_date_start:0
+msgid "Minimum Start Date"
+msgstr "Data inizio minima"
+
+#. 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 "Allocazione risorse progetto"
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_resource
+#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+#: view:project.resource.allocation:0
+msgid "Resources"
+msgstr "Risorse"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,help:project_long_term.action_project_compute_phases
+msgid ""
+"To schedule phases of all or a specified project. It then open a gantt "
+"view.\n"
+"\t "
+msgstr ""
+
+#. module: project_long_term
+#: help:project.resource.allocation,date_start:0
+msgid "Starting Date"
+msgstr "Data di inizio"
+
+#. 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
+#: view:project.phase:0
+msgid "Dates"
+msgstr "Date"
+
+#. module: project_long_term
+#: help:project.resource.allocation,useability:0
+msgid ""
+"Availability of this resource for this project phase in percentage (=50%)"
+msgstr ""
+"Disponibilità di questa risorsa per questa fase di progetto in percentuale "
+"(=50%)"
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_start:0
+msgid "force the phase to start after this date"
+msgstr "forza l'inizio della fase dopo questa data"
+
+#. module: project_long_term
+#: field:project.phase,task_ids:0
+msgid "Project Tasks"
+msgstr "Attività del Progetto"
+
+#. module: project_long_term
+#: field:project.phase,resource_ids:0
+msgid "Project Resources"
+msgstr "Risorse progetto"
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "_Ok"
+msgstr "_Ok"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Month"
+msgstr "Mese"
+
+#. 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 "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"
+msgstr "Data inizio"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Resource Allocation"
+msgstr "Allocazione risorsa"
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_end:0
+msgid "force the phase to finish before this date"
+msgstr "forza la fine della fase dopo questa data"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Draft"
+msgstr "Bozza"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr "In sospeso"
+
+#. module: project_long_term
+#: field:project.resource.allocation,name:0
+msgid "unknown"
+msgstr "sconosciuto"
+
+#. module: project_long_term
+#: field:project.resource.allocation,user_id:0
+msgid "User"
+msgstr "Utente"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Task Detail"
+msgstr "Dettaglio dell'attività"
+
+#. module: project_long_term
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+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
+#: view:project.phase:0
+msgid "Constraints"
+msgstr "Vincoli"
+
+#. module: project_long_term
+#: help:project.phase,sequence:0
+msgid "Gives the sequence order when displaying a list of phases."
+msgstr "Fornisce l'ordinamento quando viene visualizzata la lista di fasi."
+
+#. 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
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase_list
+#: view:project.phase:0
+#: field:project.project,phase_ids:0
+msgid "Project Phases"
+msgstr "Fasi progetto"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Done"
+msgstr "Completato"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Cancel"
+msgstr "Annulla"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "In Progress"
+msgstr "In corso"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Remaining Hours"
+msgstr "Ore Rimanenti"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,responsible_id:0
+msgid "Responsible"
+msgstr "Responsabile"
+
+#. module: project_long_term
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Current"
+msgstr "Attuale"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Start Phase"
+msgstr "Inizia fase"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:50
+#, python-format
+msgid "Please Specify Project to be schedule"
+msgstr "Prego specificare il progetto da pianificare"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,total_hours:0
+msgid "Total Hours"
+msgstr "Ore Totali"
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "Task Scheduling completed successfully."
+msgstr "Attività pianificata completata con successo."
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task for specified project."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "Phase"
+msgstr "Fase"
+
+#. 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,date_end:0
+#: field:project.resource.allocation,date_end:0
+msgid "End Date"
+msgstr "Data fine"
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,resource_id:0
+msgid "Resource"
+msgstr "Risorsa"
+
+#. module: project_long_term
+#: field:project.phase,name:0
+msgid "Name"
+msgstr "Nome"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Tasks Details"
+msgstr "Dettagli Attività"
+
+#. 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.model,name:project_long_term.model_resource_resource
+msgid "Resource Detail"
+msgstr "Dettaglio risorsa"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+msgid "Scheduling"
+msgstr "Pianificazione"
+
+#. 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
+#: view:project.task:0
+#: field:project.task,phase_id:0
+msgid "Project Phase"
+msgstr "Fase progetto"
+
+#. 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 "Messaggio"
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Loops in phases not allowed"
+msgstr "Le fasi circolari non sono permesse"
+
+#. module: project_long_term
+#: field:project.phase,sequence:0
+msgid "Sequence"
+msgstr "SequenzaC"
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute All Projects"
+msgstr "Calcola tutti i progetti"
+
+#. 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 "Pianifica attività"
+
+#. module: project_long_term
+#: help:project.phase,duration:0
+msgid "By default in days"
+msgstr "Per default in giorni"
+
+#. module: project_long_term
+#: field:project.phase,duration:0
+msgid "Duration"
+msgstr "Durata"
+
+#, python-format
+#~ msgid "No tasks to compute for Project '%s'."
+#~ msgstr "Nessuna attività da calcolare per il progetto: \"%s\"."
+
+#, python-format
+#~ msgid "You must assign a responsible person for phase '%s' !"
+#~ msgstr ""
+#~ "E' necessario assegnare una persona responsabile per la fase: \"%s\"!"
+
+#, python-format
+#~ msgid "Error"
+#~ msgstr "Errore"
+
+#, python-format
+#~ msgid "No tasks to compute for Phase '%s'."
+#~ msgstr "Nessuna attività da calcolare per la fase: \"%s\"."
+
+#, python-format
+#~ msgid "No responsible person assigned !"
+#~ msgstr "Nessuna persona responsabile assegnata!"
diff --git a/addons/project_long_term/i18n/lv.po b/addons/project_long_term/i18n/lv.po
index 508efda1634..cf0bf49126c 100644
--- a/addons/project_long_term/i18n/lv.po
+++ b/addons/project_long_term/i18n/lv.po
@@ -7,15 +7,15 @@ 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-11 11:15+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-Generator: Launchpad (build Unknown)\n"
+"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
#. module: project_long_term
#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
@@ -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:133
#, python-format
msgid "Day"
msgstr "Diena"
@@ -130,6 +135,12 @@ 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
+#: 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 +153,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,23 +164,11 @@ msgid "Cancelled"
msgstr "Atcelts"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "No tasks to compute for Project '%s'."
-msgstr "Projektam '%s' nav uzdevumu ko aprēķināt."
-
-#. module: project_long_term
#: help:project.resource.allocation,date_end:0
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 +191,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:195
#, 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 +307,18 @@ msgstr "_Labi"
#. module: project_long_term
#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
msgid "Month"
msgstr "Mēnesis"
@@ -321,6 +333,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 +366,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"
@@ -385,30 +397,6 @@ msgid "Project Compute Tasks"
msgstr "Projekts - aprēķināt uzdevumus"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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
-#, python-format
-msgid "Error"
-msgstr "Kļūda"
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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 +440,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 +460,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"
@@ -504,14 +487,6 @@ msgid "Phase"
msgstr "Fāze"
#. 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
#: help:project.phase,state:0
msgid ""
"If the phase is created the state 'Draft'.\n"
@@ -539,6 +514,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"
@@ -550,17 +530,10 @@ 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
-#, python-format
-msgid "No tasks to compute for Phase '%s'."
-msgstr "Fāzei '%s' nav uzdevumu ko aprēķināt"
-
-#. 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
@@ -619,5 +592,32 @@ msgstr "Ilgums"
#~ msgid "Ending Date of the phase"
#~ msgstr "Fāzes beigu datums"
+#, python-format
+#~ msgid "No tasks to compute for Project '%s'."
+#~ msgstr "Projektam '%s' nav uzdevumu ko aprēķināt."
+
+#, python-format
+#~ msgid "Error"
+#~ msgstr "Kļūda"
+
+#, python-format
+#~ msgid "No responsible person assigned !"
+#~ msgstr "Nav nozīmēta atbildīgā persona!"
+
+#~ msgid "Other Info"
+#~ msgstr "Cita informācija"
+
#~ msgid "Starting Date of the phase"
#~ msgstr "Fāzes sākuma datums"
+
+#, python-format
+#~ msgid "No tasks to compute for Phase '%s'."
+#~ msgstr "Fāzei '%s' nav uzdevumu ko aprēķināt"
+
+#, python-format
+#~ msgid "Should have Resources Allocation or Project Members!"
+#~ msgstr "Nepieciešama resursu iedalīšana vai projekta dalībnieki!"
+
+#, python-format
+#~ msgid "You must assign a responsible person for phase '%s' !"
+#~ msgstr "Fāzei '%s' jānozīmē atbildīgo personu!"
diff --git a/addons/project_long_term/i18n/pl.po b/addons/project_long_term/i18n/pl.po
index 7f9ba5b37ef..f238d1b287a 100644
--- a/addons/project_long_term/i18n/pl.po
+++ b/addons/project_long_term/i18n/pl.po
@@ -7,15 +7,15 @@ 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-11 11:15+0000\n"
"PO-Revision-Date: 2010-12-31 11:08+0000\n"
-"Last-Translator: Sbh (Open ERP) <sbh@tinyerp.com>\n"
+"Last-Translator: Bhumika Shrimali (OpenERP) <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-Generator: Launchpad (build Unknown)\n"
+"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
#. module: project_long_term
#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
@@ -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:133
#, python-format
msgid "Day"
msgstr "Dzień"
@@ -130,6 +135,12 @@ 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
+#: 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 +153,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,23 +164,11 @@ msgid "Cancelled"
msgstr "Anulowano"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "No tasks to compute for Project '%s'."
-msgstr "Brak zadań do obliczeń w Projekcie '%s'"
-
-#. module: project_long_term
#: help:project.resource.allocation,date_end:0
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 +191,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:195
#, 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 +307,18 @@ msgstr ""
#. module: project_long_term
#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
msgid "Month"
msgstr "Miesiąc"
@@ -321,6 +333,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 +366,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"
@@ -386,30 +398,6 @@ msgid "Project Compute Tasks"
msgstr "Obliczanie zadań projektu"
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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
-#, python-format
-msgid "Error"
-msgstr "Błąd"
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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 +441,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 +461,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"
@@ -505,14 +488,6 @@ msgid "Phase"
msgstr "Faza"
#. 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
#: help:project.phase,state:0
msgid ""
"If the phase is created the state 'Draft'.\n"
@@ -545,6 +520,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"
@@ -556,17 +536,10 @@ 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
-#, python-format
-msgid "No tasks to compute for Phase '%s'."
-msgstr "Brak zadań do obliczania dla Fazy '%s'."
-
-#. 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
@@ -634,6 +607,10 @@ msgstr "Czas trwania"
#~ msgid "Error! You can not create recursive analytic accounts."
#~ msgstr "Błąd! Nie możesz tworzyć rekurencyjnych kont analitycznych"
+#, python-format
+#~ msgid "Error"
+#~ msgstr "Błąd"
+
#~ msgid "Error ! You can not create recursive Menu."
#~ msgstr "Błąd ! Nie możesz tworzyć rekurencyjnych menu."
@@ -646,6 +623,39 @@ msgstr "Czas trwania"
#~ "Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków "
#~ "specjalnych !"
+#~ msgid "Other Info"
+#~ msgstr "Inne informacje"
+
+#~ msgid "Starting Date of the phase"
+#~ msgstr "Data rozpoczęcia fazy"
+
+#, python-format
+#~ msgid "No tasks to compute for Project '%s'."
+#~ msgstr "Brak zadań do obliczeń w Projekcie '%s'"
+
+#~ msgid "Ending Date of the phase"
+#~ msgstr "Końcowa data fazy"
+
+#, python-format
+#~ msgid "No responsible person assigned !"
+#~ msgstr "Nie przypisano osoby odpowiedzialnej"
+
+#, python-format
+#~ msgid "Should have Resources Allocation or Project Members!"
+#~ msgstr "Musi być Alokacja zasobów lub Członkowie projektu!"
+
+#, python-format
+#~ msgid "You must assign a responsible person for phase '%s' !"
+#~ msgstr "Musisz podać osobę odpowiedzialną za fazę '%s' !"
+
+#, python-format
+#~ msgid "No tasks to compute for Phase '%s'."
+#~ msgstr "Brak zadań do obliczania dla Fazy '%s'."
+
+#~ 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/project_long_term.pot b/addons/project_long_term/i18n/project_long_term.pot
index cfacf155fc5..82442f17b6c 100644
--- a/addons/project_long_term/i18n/project_long_term.pot
+++ b/addons/project_long_term/i18n/project_long_term.pot
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0.0-rc2\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2011-01-03 16:58:18+0000\n"
-"PO-Revision-Date: 2011-01-03 16:58:18+0000\n"
+"POT-Creation-Date: 2011-01-11 11:15:54+0000\n"
+"PO-Revision-Date: 2011-01-11 11:15:54+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -99,7 +99,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:130
+#: code:addons/project_long_term/project_long_term.py:133
#, python-format
msgid "Day"
msgstr ""
@@ -126,12 +126,6 @@ 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 ""
@@ -160,12 +154,6 @@ msgid "Cancelled"
msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:426
-#, python-format
-msgid "No tasks to compute for Project '%s'."
-msgstr ""
-
-#. module: project_long_term
#: help:project.resource.allocation,date_end:0
msgid "Ending Date"
msgstr ""
@@ -193,7 +181,7 @@ msgid "Compute Phase Scheduling"
msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:192
+#: code:addons/project_long_term/project_long_term.py:195
#, python-format
msgid " (copy)"
msgstr ""
@@ -310,6 +298,11 @@ msgid "Schedule and Display info"
msgstr ""
#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid "It's computed by the scheduler according the project date or the end date of the previous phase."
+msgstr ""
+
+#. module: project_long_term
#: view:project.phase:0
msgid "Month"
msgstr ""
@@ -368,11 +361,6 @@ msgid "User"
msgstr ""
#. 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 ""
@@ -388,24 +376,6 @@ msgid "Project Compute Tasks"
msgstr ""
#. module: project_long_term
-#: 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:489
-#, python-format
-msgid "Error"
-msgstr ""
-
-#. module: project_long_term
-#: 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
#: view:project.phase:0
msgid "Constraints"
msgstr ""
@@ -541,12 +511,6 @@ msgid "Scheduling"
msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:329
-#, python-format
-msgid "No tasks to compute for Phase '%s'."
-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
diff --git a/addons/project_long_term/i18n/pt.po b/addons/project_long_term/i18n/pt.po
index 2d24cac1e7a..6f6759287b8 100644
--- a/addons/project_long_term/i18n/pt.po
+++ b/addons/project_long_term/i18n/pt.po
@@ -7,15 +7,15 @@ 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"
-"PO-Revision-Date: 2010-12-31 11:07+0000\n"
-"Last-Translator: Sbh (Open ERP) <sbh@tinyerp.com>\n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-01-13 23:26+0000\n"
+"Last-Translator: Bhumika Shrimali (OpenERP) <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-Generator: Launchpad (build Unknown)\n"
+"X-Launchpad-Export-Date: 2011-01-15 05:56+0000\n"
+"X-Generator: Launchpad (build 12177)\n"
#. module: project_long_term
#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
@@ -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:133
#, python-format
msgid "Day"
msgstr "Dia"
@@ -130,6 +135,12 @@ msgid "UoM (Unit of Measure) is the unit of measurement for Duration"
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 +153,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,23 +164,11 @@ msgid "Cancelled"
msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "No tasks to compute for Project '%s'."
-msgstr ""
-
-#. module: project_long_term
#: help:project.resource.allocation,date_end:0
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 +191,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:195
#, 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 +307,18 @@ msgstr ""
#. module: project_long_term
#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr "Data de início da fase"
+
+#. module: project_long_term
+#: view:project.phase:0
msgid "Month"
msgstr "Mês"
@@ -321,6 +333,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 +366,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"
@@ -385,30 +397,6 @@ msgid "Project Compute Tasks"
msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "No responsible person assigned !"
-msgstr ""
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, python-format
-msgid "Error"
-msgstr "Erro"
-
-#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:0
-#, 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 +440,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 +460,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 ""
@@ -504,14 +487,6 @@ msgid "Phase"
msgstr "Fase"
#. 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
#: help:project.phase,state:0
msgid ""
"If the phase is created the state 'Draft'.\n"
@@ -539,6 +514,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 ""
@@ -550,17 +530,10 @@ 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
-#, python-format
-msgid "No tasks to compute for Phase '%s'."
-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
@@ -615,3 +588,26 @@ msgstr ""
#: field:project.phase,duration:0
msgid "Duration"
msgstr "Duração"
+
+#, python-format
+#~ msgid "Error"
+#~ msgstr "Erro"
+
+#~ msgid "Other Info"
+#~ msgstr "Outras informações"
+
+#~ msgid "Starting Date of the phase"
+#~ msgstr "Data de início da fase"
+
+#~ msgid "Ending Date of the phase"
+#~ msgstr "Data de fim da fase"
+
+#~ msgid ""
+#~ "It's computed by the scheduler according to the start date and the duration."
+#~ msgstr "Data de fim da fase"
+
+#~ 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"
diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py
index 45d75b16b05..0e605ed4331 100644
--- a/addons/project_long_term/project_long_term.py
+++ b/addons/project_long_term/project_long_term.py
@@ -19,12 +19,10 @@
#
##############################################################################
-from datetime import datetime, timedelta
-from dateutil.relativedelta import relativedelta
+from datetime import datetime
from tools.translate import _
from osv import fields, osv
-from resource.faces import task as Task
-import operator
+from resource.faces import task as Task
class project_phase(osv.osv):
_name = "project.phase"
@@ -105,7 +103,7 @@ class project_phase(osv.osv):
_columns = {
'name': fields.char("Name", size=64, required=True),
- 'date_start': fields.date('Start Date', help="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", states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}),
+ 'date_start': fields.date('Start Date', help="It's computed by the scheduler according the project date or the end date of the previous phase.", states={'done':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'date_end': fields.date('End Date', help=" It's computed by the scheduler according to the start date and the duration.", 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)]}),
@@ -212,126 +210,177 @@ class project_phase(osv.osv):
self.write(cr, uid, ids, {'state': 'done'})
return True
- def generate_resources(self, cr, uid, ids, context=None):
- """
- Return a list of Resource Class objects for the resources allocated to the phase.
- """
- res = {}
- resource_pool = self.pool.get('resource.resource')
- for phase in self.browse(cr, uid, ids, context=context):
- user_ids = map(lambda x:x.resource_id.user_id.id, phase.resource_ids)
- project = phase.project_id
- calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False
- resource_objs = resource_pool.generate_resources(cr, uid, user_ids, calendar_id, context=context)
- res[phase.id] = resource_objs
- return res
-
- def generate_schedule(self, cr, uid, ids, start_date=False, calendar_id=False, context=None):
- """
- Schedule phase with the start date till all the next phases are completed.
- @param: start_date (datetime.datetime) : start date for the phase. It would be either Start date of phase or start date of project or system current date
- @param: calendar_id : working calendar of the project
- """
+ def generate_phase(self, cr, uid, ids, f, parent=False, context=None):
if context is None:
context = {}
- resource_pool = self.pool.get('resource.resource')
+ phase_ids = []
data_pool = self.pool.get('ir.model.data')
- resource_allocation_pool = self.pool.get('project.resource.allocation')
uom_pool = self.pool.get('product.uom')
+ task_pool = self.pool.get('project.task')
data_model, day_uom_id = data_pool.get_object_reference(cr, uid, 'product', 'uom_day')
for phase in self.browse(cr, uid, ids, context=context):
- if not phase.responsible_id:
- raise osv.except_osv(_('No responsible person assigned !'),_("You must assign a responsible person for phase '%s' !") % (phase.name,))
-
- if not start_date:
- start_date = phase.project_id.date_start or phase.date_start or datetime.now().strftime("%Y-%m-%d")
- start_date = datetime.strftime((datetime.strptime(start_date, "%Y-%m-%d")), "%Y-%m-%d")
- phase_resource_obj = self.generate_resources(cr, uid, [phase.id], context=context)[phase.id]
avg_days = uom_pool._compute_qty(cr, uid, phase.product_uom.id, phase.duration, day_uom_id)
- if not phase_resource_obj: #TOCHECK: why need this ?
- avg_days = avg_days - 1
duration = str(avg_days) + 'd'
# 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
- working_hours_per_day = 24
- vacation = []
- if calendar_id:
- working_hours_per_day = 8 #TODO: it should be come from calendars
- vacation = tuple(resource_pool.compute_vacation(cr, uid, calendar_id))
- working_days = resource_pool.compute_working_calendar(cr, uid, calendar_id, context=context)
- def phase():
- effort = duration
-
- project = Task.BalancedProject(Project)
-
- s_date = project.phase.start.to_datetime()
- e_date = project.phase.end.to_datetime()
+ 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():
+ title = \"%s\"
+ effort = \'%s\'
+ resource = %s
+'''%(phase.id, phase.name, duration, str_vals or False)
+
# 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 = ''
+ 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:
- start_date = s_date
- if phase.constraint_date_end and str(e_date) > phase.constraint_date_end:
+ 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 += '''
+ start = \"%s\"
+'''%(start)
+
+ if 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
- # Write the calculated dates back
- ctx = context.copy()
- ctx.update({'scheduler': True})
- self.write(cr, uid, [phase.id], {
- 'date_start': start_date.strftime('%Y-%m-%d'),
- 'date_end': end_date.strftime('%Y-%m-%d')
- }, context=ctx)
- # write dates into Resources Allocation
- for resource in phase.resource_ids:
- resource_allocation_pool.write(cr, uid, [resource.id], {
- 'date_start': start_date.strftime('%Y-%m-%d'),
- 'date_end': end_date.strftime('%Y-%m-%d')
- }, context=ctx)
+ 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)
+ parent = False
+ task_ids = []
+ todo_task_ids = task_pool.search(cr, uid, [('id', 'in', map(lambda x : x.id, phase.task_ids)),
+ ('state', 'in', ['draft', 'open', 'pending'])
+ ], order='sequence')
+ if todo_task_ids :
+ for task in task_pool.browse(cr, uid, todo_task_ids, context=context):
+ s += task_pool.generate_task(cr, uid, task.id, parent=parent, flag=False, context=context)
+ if not parent:
+ parent = task
+ task_ids.append(task.id)
+
+ f += s + '\n'
# Recursive call till all the next phases scheduled
for next_phase in phase.next_phase_ids:
- if next_phase.state in ['draft', 'open', 'pending']:
- id_cal = next_phase.project_id.resource_calendar_id and next_phase.project_id.resource_calendar_id.id or False
- self.generate_schedule(cr, uid, [next_phase.id], date_start+timedelta(days=1), id_cal, context=context)
- else:
- continue
- return True
+ if next_phase.state in ['draft', 'open', 'pending']:
+ rf, rphase_ids = self.generate_phase(cr, uid, [next_phase.id], f = '', parent=phase, context=context)
+ f += rf +'\n'
+ phase_ids += rphase_ids
+ else:
+ continue
+ return f, phase_ids
def schedule_tasks(self, cr, uid, ids, context=None):
"""
- Schedule the tasks according to resource available and priority.
+ Schedule tasks base on faces lib
"""
+ if context is None:
+ context = {}
+ if type(ids) in (long, int,):
+ ids = [ids]
task_pool = self.pool.get('project.task')
resource_pool = self.pool.get('resource.resource')
- resources_list = self.generate_resources(cr, uid, ids, context=context)
- return_msg = {}
for phase in self.browse(cr, uid, ids, context=context):
- start_date = phase.date_start
- if not start_date and phase.project_id.date_start:
- start_date = phase.project_id.date_start
- if not start_date:
- start_date = datetime.now().strftime("%Y-%m-%d")
- resources = resources_list.get(phase.id, [])
- calendar_id = phase.project_id.resource_calendar_id.id
- task_ids = map(lambda x : x.id, (filter(lambda x : x.state in ['draft'] , phase.task_ids))) #reassign only task not yet started
- if task_ids:
- task_pool.generate_schedule(cr, uid, task_ids, resources, calendar_id, start_date, context=context)
-
- if not task_ids:
- warning_msg = _("No tasks to compute for Phase '%s'.") % (phase.name)
- if "warning" not in return_msg:
- return_msg["warning"] = warning_msg
- else:
- return_msg["warning"] = return_msg["warning"] + "\n" + warning_msg
- return return_msg
+ project = phase.project_id
+ calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False
+ start_date = project.date_start
+ #Creating resources using the member of the Project
+ u_ids = [i.id for i in project.members]
+ resource_objs = resource_pool.generate_resources(cr, uid, u_ids, calendar_id, context=context)
+ start_date = datetime.strftime((datetime.strptime(start_date, "%Y-%m-%d")), "%Y-%m-%d")
+ func_str = ''
+ start = start_date
+ minimum_time_unit = 1
+ # default values
+ working_hours_per_day = 24
+ working_days_per_week = 7
+ working_days_per_month = 30
+ working_days_per_year = 365
+
+ vacation = []
+ if calendar_id:
+ working_hours_per_day = 8 #TODO: it should be come from calendars
+ working_days_per_week = 5
+ working_days_per_month = 20
+ working_days_per_year = 200
+ vacation = tuple(resource_pool.compute_vacation(cr, uid, calendar_id, context=context))
+
+ working_days = resource_pool.compute_working_calendar(cr, uid, calendar_id, context=context)
+
+ cls_str = ''
+ # Creating Resources for the Project
+ for key, vals in resource_objs.items():
+ cls_str +='''
+ class Resource_%s(Resource):
+ title = \"%s\"
+ vacation = %s
+ efficiency = %s
+'''%(key, vals.get('name',False), vals.get('vacation', False), vals.get('efficiency', False))
+
+ # Create a new project for each phase
+ func_str += '''
+def Phase_%d():
+ from resource.faces import Resource
+ title = \"%s\"
+ start = \'%s\'
+ minimum_time_unit = %s
+ working_hours_per_day = %s
+ working_days_per_week = %s
+ working_days_per_month = %s
+ working_days_per_year = %s
+ vacation = %s
+ working_days = %s
+'''%(phase.id, phase.name, start, minimum_time_unit, working_hours_per_day, working_days_per_week, working_days_per_month, working_days_per_year, vacation, working_days )
+
+ parent = False
+ task_ids = []
+ todo_task_ids = task_pool.search(cr, uid, [('id', 'in', map(lambda x : x.id, phase.task_ids)),
+ ('state', 'in', ['draft', 'open', 'pending'])
+ ], order='sequence')
+ for task in task_pool.browse(cr, uid, todo_task_ids, context=context):
+ func_str += task_pool.generate_task(cr, uid, task.id, parent=parent, flag=True, context=context)
+ if not parent:
+ parent = task
+ task_ids.append(task.id)
+ func_str += cls_str
+
+ # Allocating Memory for the required Project and Pahses and Resources
+ exec(func_str)
+ Phase = eval('Phase_%d' % phase.id)
+ phase = None
+ try:
+ phase = Task.BalancedProject(Phase)
+ except :
+ raise osv.except_osv(_('Error !'),_('Phase Scheduling is not possible.\nProject should have the Start date and member for scheduling.'))
+
+
+ for task_id in task_ids:
+ task = eval("phase.Task_%d" % task_id)
+ start_date = task.start.to_datetime()
+ end_date = task.end.to_datetime()
+
+ task_pool.write(cr, uid, [task_id], {
+ 'date_start': start_date.strftime('%Y-%m-%d'),
+ 'date_end': end_date.strftime('%Y-%m-%d')
+ }, context=context)
+ return True
project_phase()
class project_resource_allocation(osv.osv):
@@ -383,53 +432,233 @@ class project(osv.osv):
def schedule_phases(self, cr, uid, ids, context=None):
"""
- Schedule the phases.
+ Schedule phase base on faces lib
"""
+ if context is None:
+ context = {}
if type(ids) in (long, int,):
ids = [ids]
phase_pool = self.pool.get('project.phase')
+ task_pool = self.pool.get('project.task')
+ resource_pool = self.pool.get('resource.resource')
+ data_pool = self.pool.get('ir.model.data')
+ resource_allocation_pool = self.pool.get('project.resource.allocation')
+ data_model, day_uom_id = data_pool.get_object_reference(cr, uid, 'product', 'uom_day')
+
for project in self.browse(cr, uid, ids, context=context):
- phase_ids = phase_pool.search(cr, uid, [('project_id', '=', project.id),
+ root_phase_ids = phase_pool.search(cr, uid, [('project_id', '=', project.id),
('state', 'in', ['draft', 'open', 'pending']),
('previous_phase_ids', '=', False)
])
calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False
- start_date = False
- phase_pool.generate_schedule(cr, uid, phase_ids, start_date, calendar_id, context=context)
- return True
+ start_date = project.date_start
+ #if start_date:
+ # start_date = datetime.strftime((datetime.strptime(start_date, "%Y-%m-%d")), "%Y-%m-%d")
+ #Creating resources using the member of the Project
+ u_ids = [i.id for i in project.members]
+ resource_objs = resource_pool.generate_resources(cr, uid, u_ids, calendar_id, context=context)
+ func_str = ''
+ start = start_date
+ minimum_time_unit = 1
+ # default values
+ working_hours_per_day = 24
+ working_days_per_week = 7
+ working_days_per_month = 30
+ working_days_per_year = 365
+
+ vacation = []
+ if calendar_id:
+ working_hours_per_day = 8 #TODO: it should be come from calendars
+ working_days_per_week = 5
+ working_days_per_month = 20
+ working_days_per_year = 200
+ vacation = tuple(resource_pool.compute_vacation(cr, uid, calendar_id, context=context))
+
+ working_days = resource_pool.compute_working_calendar(cr, uid, calendar_id, context=context)
+
+ cls_str = ''
+ # Creating Resources for the Project
+ for key, vals in resource_objs.items():
+ cls_str +='''
+ class Resource_%s(Resource):
+ title = \"%s\"
+ vacation = %s
+ efficiency = %s
+'''%(key, vals.get('name',False), vals.get('vacation', False), vals.get('efficiency', False))
+
+ # Create a new project for each phase
+ func_str += '''
+def Project_%d():
+ from resource.faces import Resource
+ title = \"%s\"
+ start = \'%s\'
+ minimum_time_unit = %s
+ working_hours_per_day = %s
+ working_days_per_week = %s
+ working_days_per_month = %s
+ working_days_per_year = %s
+ vacation = %s
+ working_days = %s
+'''%(project.id, project.name, start, minimum_time_unit, working_hours_per_day, working_days_per_week, working_days_per_month, working_days_per_year, vacation, working_days )
+
+ func_str += cls_str
+ phase_ids = []
+ for root_phase in phase_pool.browse(cr, uid, root_phase_ids, context=context):
+ phases, child_phase_ids = phase_pool.generate_phase(cr, uid, [root_phase.id], '', context=context)
+ func_str += phases
+ phase_ids += child_phase_ids
+
+ # Allocating Memory for the required Project and Pahses and Resources
+ exec(func_str)
+ Project = eval('Project_%d' % project.id)
+ project = None
+ try:
+ project = Task.BalancedProject(Project)
+ except :
+ raise osv.except_osv(_('Error !'),_('Phase Scheduling is not possible.\nProject should have the Start date and member for scheduling.'))
+
+ for phase_id in phase_ids:
+ act_phase = phase_pool.browse(cr, uid, phase_id, context=context)
+ resources = act_phase.resource_ids
+ phase = eval("project.Phase_%d" % phase_id)
+ start_date = phase.start.to_datetime()
+ end_date = phase.end.to_datetime()
+
+ 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, context=context)
+ if act_phase.task_ids:
+ for task in act_phase.task_ids:
+ vals = {}
+ #Getting values of the Tasks
+ temp = eval("phase.Task_%s"%task.id)
+ if temp.booked_resource:
+ res_name = temp.booked_resource[0].title
+ res_id = resource_pool.search(cr, uid,[('name','=',res_name)], context = context)
+ if res_id:
+ res = resource_pool.browse(cr, uid, res_id[0], context = context)
+ vals.update({'user_id' : res.user_id.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)
+
+
+ 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)
+ return True
+
+ #TODO: DO Resource allocation and compute availability
+ def compute_allocation(self, rc, uid, ids, start_date, end_date, context=None):
+ if context == None:
+ context = {}
+ allocation = {}
+ return allocation
def schedule_tasks(self, cr, uid, ids, context=None):
"""
- Schedule the tasks according to resource available and priority.
+ Schedule task base on faces lib
"""
+ if context is None:
+ context = {}
if type(ids) in (long, int,):
ids = [ids]
- user_pool = self.pool.get('res.users')
task_pool = self.pool.get('project.task')
resource_pool = self.pool.get('resource.resource')
- resources_list = self.generate_members(cr, uid, ids, context=context)
- return_msg = {}
+ data_pool = self.pool.get('ir.model.data')
+ data_model, day_uom_id = data_pool.get_object_reference(cr, uid, 'product', 'uom_day')
+
for project in self.browse(cr, uid, ids, context=context):
+ calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False
start_date = project.date_start
- if not start_date:
- start_date = datetime.now().strftime("%Y-%m-%d")
- resources = resources_list.get(project.id, [])
- calendar_id = project.resource_calendar_id.id
- task_ids = task_pool.search(cr, uid, [('project_id', '=', project.id),
- ('state', 'in', ['draft', 'open', 'pending'])
- ])
-
-
- if task_ids:
- task_pool.generate_schedule(cr, uid, task_ids, resources, calendar_id, start_date, context=context)
- else:
- warning_msg = _("No tasks to compute for Project '%s'.") % (project.name)
- if "warning" not in return_msg:
- return_msg["warning"] = warning_msg
- else:
- return_msg["warning"] = return_msg["warning"] + "\n" + warning_msg
+ #Creating resources using the member of the Project
+ u_ids = [i.id for i in project.members]
+ resource_objs = resource_pool.generate_resources(cr, uid, u_ids, calendar_id, context=context)
+ try:
+ start_date = datetime.strftime((datetime.strptime(start_date, "%Y-%m-%d")), "%Y-%m-%d")
+ except:
+ raise osv.except_osv(_('Error !'),_('Task Scheduling is not possible.\nProject should have the Start date for scheduling.'))
+ func_str = ''
+ start = start_date
+ minimum_time_unit = 1
+ # default values
+ working_hours_per_day = 24
+ working_days_per_week = 7
+ working_days_per_month = 30
+ working_days_per_year = 365
+
+ vacation = []
+ if calendar_id:
+ working_hours_per_day = 8 #TODO: it should be come from calendars
+ working_days_per_week = 5
+ working_days_per_month = 20
+ working_days_per_year = 200
+ vacation = tuple(resource_pool.compute_vacation(cr, uid, calendar_id, context=context))
- return return_msg
+ working_days = resource_pool.compute_working_calendar(cr, uid, calendar_id, context=context)
+
+ cls_str = ''
+ # Creating Resources for the Project
+ for key, vals in resource_objs.items():
+ cls_str +='''
+ class Resource_%s(Resource):
+ title = \"%s\"
+ vacation = %s
+ efficiency = %s
+'''%(key, vals.get('name',False), vals.get('vacation', False), vals.get('efficiency', False))
+
+ # Create a new project for each phase
+ func_str += '''
+def Project_%d():
+ from resource.faces import Resource
+ title = \"%s\"
+ start = \'%s\'
+ minimum_time_unit = %s
+ working_hours_per_day = %s
+ working_days_per_week = %s
+ working_days_per_month = %s
+ working_days_per_year = %s
+ vacation = %s
+ working_days = %s
+'''%(project.id, project.name, start, minimum_time_unit, working_hours_per_day, working_days_per_week, working_days_per_month, working_days_per_year, vacation, working_days )
+
+ parent = False
+ task_ids = []
+ todo_task_ids = task_pool.search(cr, uid, [('project_id', '=', project.id),
+ ('state', 'in', ['draft', 'open', 'pending'])
+ ], order='sequence')
+ if todo_task_ids:
+ for task in task_pool.browse(cr, uid, todo_task_ids, context=context):
+ func_str += task_pool.generate_task(cr, uid, task.id, parent=parent, flag=True,context=context)
+ if not parent:
+ parent = task
+ task_ids.append(task.id)
+ func_str += cls_str
+
+ # Allocating Memory for the required Project and Pahses and Resources
+ exec(func_str)
+ Project = eval('Project_%d' % project.id)
+ project = None
+ try:
+ project = Task.BalancedProject(Project)
+ except :
+ raise osv.except_osv(_('Error !'),_('Phase Scheduling is not possible.\nProject should have the Start date and member for scheduling.'))
+
+ for task_id in task_ids:
+ task = eval("project.Task_%d" % task_id)
+ start_date = task.start.to_datetime()
+ end_date = task.end.to_datetime()
+
+ task_pool.write(cr, uid, [task_id], {
+ 'date_start': start_date.strftime('%Y-%m-%d'),
+ 'date_end': end_date.strftime('%Y-%m-%d')
+ }, context=context)
+ return True
project()
@@ -452,82 +681,36 @@ class project_task(osv.osv):
_columns = {
'phase_id': fields.many2one('project.phase', 'Project Phase'),
}
+ _defaults = {
+ 'user_id' : False
+ }
- def generate_schedule(self, cr, uid, ids, resources, calendar_id, start_date, context=None):
- """
- Schedule the tasks according to resource available and priority.
- """
- resource_pool = self.pool.get('resource.resource')
- if not ids:
- return False
+ def generate_task(self, cr, uid, task_id, parent=False, flag=False, context=None):
if context is None:
context = {}
- user_pool = self.pool.get('res.users')
- project_pool = self.pool.get('project.project')
- priority_dict = {'0': 1000, '1': 800, '2': 500, '3': 300, '4': 100}
- # Create dynamic no of tasks with the resource specified
- def create_tasks(task_number, eff, priorty=500, obj=False):
- def task():
- """
- task is a dynamic method!
- """
- effort = eff
- if obj:
- resource = obj
- priority = priorty
- task.__doc__ = "TaskNO%d" %task_number
- task.__name__ = "task%d" %task_number
- return task
-
- # Create a 'Faces' project with all the tasks and resources
- def Project():
- title = "Project"
- start = datetime.strftime(datetime.strptime(start_date, "%Y-%m-%d"), "%Y-%m-%d %H:%M")
- try:
- resource = reduce(operator.or_, resources)
- except:
- raise osv.except_osv(_('Error'), _('Resources should be allocated to your phases and Members should be assigned to your Project!'))
- minimum_time_unit = 1
- working_hours_per_day = 24
- vacation = []
- if calendar_id:
- working_hours_per_day = 8 #TODO: it should be come from calendars
- vacation = tuple(resource_pool.compute_vacation(cr, uid, calendar_id, context=context))
- working_days = resource_pool.compute_working_calendar(cr, uid, calendar_id, context=context)
- # Dynamic creation of tasks
- task_number = 0
- for openobect_task in self.browse(cr, uid, ids, context=context):
- hours = str(openobect_task.planned_hours )+ 'H'
- if openobect_task.priority in priority_dict.keys():
- priorty = priority_dict[openobect_task.priority]
- real_resource = False
- if openobect_task.user_id:
- for task_resource in resources:
- if task_resource.__name__ == task_resource:
- real_resource = task_resource
- break
-
- task = create_tasks(task_number, hours, priorty, real_resource)
- task_number += 1
-
-
- face_projects = Task.BalancedProject(Project)
- loop_no = 0
- # Write back the computed dates
- for face_project in face_projects:
- s_date = face_project.start.to_datetime()
- e_date = face_project.end.to_datetime()
- if loop_no > 0:
- ctx = context.copy()
- ctx.update({'scheduler': True})
- user_id = user_pool.search(cr, uid, [('name', '=', face_project.booked_resource[0].__name__)])
- self.write(cr, uid, [ids[loop_no-1]], {
- 'date_start': s_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'date_end': e_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'user_id': user_id[0]
- }, context=ctx)
-
- loop_no += 1
- return True
+ task = self.browse(cr, uid, task_id, context=context)
+ duration = str(task.planned_hours )+ 'H'
+ str_resource = False
+ if task.phase_id.resource_ids:
+ str_resource = ('%s | '*len(task.phase_id.resource_ids))[:-2]
+ str_resource = str_resource % tuple(map(lambda x: 'Resource_%s'%x.resource_id.id, task.phase_id.resource_ids))
+ # Task Defination for the Phase of the Project
+ if not flag:
+ s = '''
+ def Task_%s():
+ title = \"%s\"
+ effort = \'%s\'
+ resource = %s
+'''%(task.id, task.name, duration, str_resource)
+ #start = datetime.strftime((datetime.strptime(start, "%Y-%m-%d")), "%Y-%m-%d")
+ else:
+ s = '''
+ def Task_%s():
+ title = \"%s\"
+ effort = \'%s\'
+ resource = %s
+'''%(task.id, task.name, duration, str_resource)
+ s += '\n'
+ return s
project_task()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_long_term/project_long_term_demo.xml b/addons/project_long_term/project_long_term_demo.xml
index 8a37f4cc444..961b0c62c9b 100644
--- a/addons/project_long_term/project_long_term_demo.xml
+++ b/addons/project_long_term/project_long_term_demo.xml
@@ -233,9 +233,9 @@ This Demo data file Human Resources, Phases and Resources,Tasks allocation and
</record>
<!-- run scheduling of phase -->
- <function model="project.project" name="schedule_phases" eval="(ref('project.project_integrate_openerp'),)"/>
+ <!--<function model="project.project" name="schedule_phases" eval="(ref('project.project_integrate_openerp'),)"/>-->
<!-- run scheduling of tasks -->
- <function model="project.project" name="schedule_tasks" eval="(ref('project.project_integrate_openerp'),)"/>
+ <!--<function model="project.project" name="schedule_tasks" eval="(ref('project.project_integrate_openerp'),)"/>-->
</data>
</openerp>
diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml
index 61e0a7dd7f9..b720da13654 100644
--- a/addons/project_long_term/project_long_term_view.xml
+++ b/addons/project_long_term/project_long_term_view.xml
@@ -116,10 +116,10 @@
<field name="responsible_id"/>
</group>
<group colspan="6" col="6">
- <field name="date_start"/>
+ <field name="date_start" readonly="1"/>
<field name="duration"/>
<field name="product_uom" nolabel="1" domain="[('category_id.name', '=', 'Working Time')]"/>
- <field name="date_end"/>
+ <field name="date_end" readonly="1"/>
</group>
</group>
<notebook colspan="4">
@@ -127,14 +127,14 @@
<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" readonly="1"/>
- <field name="date_end" readonly="1"/>
+ <field name="date_start"/>
+ <field name="date_end"/>
<field name="useability" string="Availability"/>
</tree>
<form string="Project Resource Allocation">
<field name="resource_id" context="{'project_id':parent.project_id}"/>
- <field name="date_start" readonly="1"/>
- <field name="date_end" readonly="1"/>
+ <field name="date_start" />
+ <field name="date_end"/>
<field name="useability" string="Availability"/>
</form>
</field>
@@ -154,6 +154,8 @@
<field name="sequence"/>
<field name="name"/>
<field name="user_id"/>
+ <field name="date_start"/>
+ <field name="date_end" />
<field name="planned_hours" widget="float_time"/>
<field name="project_id" invisible="1"/>
<field name="total_hours" sum='Total Hours'/>
@@ -172,6 +174,7 @@
<group colspan="2" col="2">
<separator string="Dates" colspan="2"/>
<field name="date_start"/>
+ <field name="date_end" />
<field name="date_deadline"/>
</group>
<group colspan="2" col="2">
@@ -225,6 +228,7 @@
<field name="date_end"/>
<field name="duration"/>
<field name="state"/>
+ <button name="%(action_project_schedule_tasks)d" string="Schedule Tasks" type="action" icon="gtk-jump-to"/>
</tree>
</field>
</record>
@@ -263,7 +267,7 @@
<field name="arch" type="xml">
<search string="Project Phases">
<group colspan="4" col="20">
- <filter string="Current" domain="[('state','in',('open','draft'))]" name="current" help="Draft and In Progress Phases" icon="terp-check"/>
+ <filter string="Current" domain="[('state','in',('open','draft'))]" name="current" help="Draft and In Progress Phases" icon="terp-check"/>
<filter string="In Progress" name="Progress" domain="[('state','=','open')]" help="In Progress Phases" icon="terp-camera_test"/>
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Phases" icon="terp-gtk-media-pause"/>
<separator orientation="vertical"/>
@@ -319,7 +323,7 @@
<field name="type">form</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
- <field name="priority" position="before">
+ <field name="effective_hours" position="after">
<field name="resource_calendar_id"/>
</field>
@@ -393,21 +397,21 @@
name="Phases"
res_model="project.phase"
src_model="project.project"
- domain="[('project_id', '=', active_id)]"
+ domain="[('project_id', '=', active_id)]"
view_mode="tree,form"
view_type="form"
- />
+ />
- <act_window
- context="{'search_default_user_id': [user_id]}"
+ <act_window
+ context="{'search_default_user_id': [user_id]}"
id="act_project_resource"
name="Resources"
res_model="resource.resource"
src_model="project.project"
- domain="[('user_id', '=',user_id)]"
+ domain="[('user_id', '=',user_id)]"
view_mode="tree,form"
view_type="form"
- />
+ />
# ------------------------------------------------------
# Menu Items
diff --git a/addons/project_long_term/test/phase_constraint.yml b/addons/project_long_term/test/phase_constraint.yml
new file mode 100644
index 00000000000..cf6bfa844a6
--- /dev/null
+++ b/addons/project_long_term/test/phase_constraint.yml
@@ -0,0 +1,179 @@
+-
+ I have a project 'Develop yaml Project Module'.
+-
+ !record {model: project.project, id: project_project_developyamlproject0}:
+ name: "Develop Yaml Project Module"
+ date_start: !eval time.strftime('%Y-%m-%d')
+-
+ I have set Working Time from Monday to Friday from 9am to 17pm.
+-
+ !record {model: resource.calendar, id: resource_calendar_hoursweeks0}:
+ 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.
+ For that Creating a Analyst Human resource to analyst Project Yaml.
+-
+ !record {model: resource.resource, id: resource_resource_analyst1}:
+ calendar_id: project_long_term.resource_calendar_hoursweeks0
+ name: Analyst
+ resource_type: user
+ time_efficiency: 1.0
+ user_id: base.user_admin
+
+-
+ Creating Developer Human resource who develop Yaml
+-
+ !record {model: resource.resource, id: resource_resource_develop0}:
+ calendar_id: project_long_term.resource_calendar_hoursweeks0
+ name: Developer
+ resource_type: user
+ time_efficiency: 1.0
+ user_id: base.user_admin
+-
+ Creating a Tester Human resource for testing Yaml
+-
+ !record {model: resource.resource, id: resource_resource_tester1}:
+ calendar_id: project_long_term.resource_calendar_hoursweeks0
+ name: tester
+ resource_type: user
+ time_efficiency: 1.0
+ user_id: base.user_admin
+
+-
+ Create 3 a project phase and NO one depends on other one.
+ so,they should start on the same day.
+ Creating First 'Analysis Flow for Yaml' Project Phase.
+-
+ !record {model: project.phase, id: project_phase_analysisflowforyaml0}:
+ 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
+
+-
+ 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}:
+ duration: 6.0
+ name: Develop Yaml
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject0
+ 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}:
+ duration: 6.0
+ name: Testing Yaml
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject0
+ previous_phase_ids:
+ - project_phase_developyaml0
+ constraint_date_start :
+ constraint_date_end :
+-
+ Compute Schedule of phases For One project
+-
+ !record {model: project.compute.phases, id: project_compute_phases_0}:
+ project_id: project_project_developyamlproject0
+ target_project: one
+
+-
+ Schedule project phases using "Compute Phase Scheduling"
+-
+ !python {model: project.project}: |
+ self.schedule_phases(cr, uid, [ref("project_project_developyamlproject0")])
+
+-
+ After scheduling,check that
+ Phase "Analysis Flow for Yaml" and "Test Yaml" Phase should start on the project start date while "Develop yaml" Phase should respect the constraint.
+-
+ !python {model: project.project}: |
+ proj=self.browse(cr, uid, [ref("project_project_developyamlproject0")])[0]
+ for phase in proj.phase_ids:
+ for phase1 in proj.phase_ids:
+ if phase1.id != phase.id and phase.constraint_date_start == phase1.date_start:
+ raise AssertionError("Phases not scheduled")
diff --git a/addons/project_long_term/test/project_schedule_consecutive_day.yml b/addons/project_long_term/test/project_schedule_consecutive_day.yml
new file mode 100644
index 00000000000..10cfc7b6b9c
--- /dev/null
+++ b/addons/project_long_term/test/project_schedule_consecutive_day.yml
@@ -0,0 +1,126 @@
+-
+ Create a project 'Develop yaml Project Module'.
+-
+ !record {model: project.project, id: project_project_developyamlproject_2}:
+ name: "Develop Yaml Project Module"
+ date_start: !eval time.strftime('%Y-%m-%d')
+
+-
+ I have set Working Time from Monday to Friday from 9am to 17pm.
+-
+ !record {model: resource.calendar, id: resource_calendar_hoursweekstest_P2}:
+ 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_hoursweekstest_P2day1}:
+ name: "Day1"
+ hour_from : 09.00
+ hour_to : 17.00
+ dayofweek : "0"
+ calendar_id : resource_calendar_hoursweekstest_P2
+
+-
+ I have set Day2 Working Time for Monday to Friday from 9am to 17pm working hour
+-
+ !record {model: resource.calendar.attendance, id: rresource_calendar_hoursweekstest_P2day2}:
+ name: "Day2"
+ hour_from : 09.00
+ hour_to : 17.00
+ dayofweek : "1"
+ calendar_id : resource_calendar_hoursweekstest_P2
+
+-
+ I have set Day3 Working Time for Monday to Friday from 9am to 17pm working hour
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day3}:
+ name: "Day3"
+ hour_from : 09.00
+ hour_to : 17.00
+ dayofweek : "2"
+ calendar_id : resource_calendar_hoursweekstest_P2
+
+-
+ I have set Day4 Working Time for Monday to Friday from 9am to 17pm working hour
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day4}:
+ name: "Day4"
+ hour_from: 09.00
+ hour_to: 17.00
+ dayofweek: "3"
+ calendar_id: resource_calendar_hoursweekstest_P2
+
+-
+ I have set Day5 Working Time for Monday to Friday from 9am to 17pm working hour
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day5}:
+ name: "Day5"
+ hour_from: 09.00
+ hour_to: 17.00
+ dayofweek: "4"
+ calendar_id: resource_calendar_hoursweekstest_P2
+
+-
+ Now Set working period to Project 'Develop yaml Project Module'
+-
+ !python {model: project.project}: |
+ self.write(cr, uid, [ref("project_project_developyamlproject_2")], {'resource_calendar_id': ref("resource_calendar_hoursweekstest_P2")})
+
+-
+ Create 3 a project phase.
+ First 'Analysis Flow for Yaml'Project Phase
+-
+ !record {model: project.phase, id: project_project_developyamlproject_2_Phase1}:
+ date_start: !eval time.strftime('%Y-%m-%d')
+ duration: 5.0
+ name: "Analysis Flow for Yaml"
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject_2
+ state: draft
+
+-
+ Create project phase 'Develop yaml'
+-
+ !record {model: project.phase, id: project_project_developyamlproject_2_Phase2}:
+ duration: 5.0
+ name: Develop Yaml
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject_2
+ previous_phase_ids:
+ - project_project_developyamlproject_2_Phase1
+
+-
+ Create project phase 'Test Yaml'
+-
+ !record {model: project.phase, id: project_project_developyamlproject_2_Phase3}:
+ duration: 5.0
+ name: Testing Yaml
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject_2
+ previous_phase_ids:
+ - project_project_developyamlproject_2_Phase2
+
+-
+ Compute Schedule of phases For One project
+-
+ !record {model: project.compute.phases, id: project_compute_phases_0}:
+ project_id: project_project_developyamlproject_2
+ target_project: one
+
+-
+ Schedule project phases using Compute Phase Scheduling
+-
+ !python {model: project.project}: |
+ self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
+
+-
+ After scheduling, Check that phases scheduled, check that either of phase's start_date, end_date not null.
+-
+ !python {model: project.project}: |
+ proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
+ for phase in proj.phase_ids:
+ if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
+ raise AssertionError("Phases not scheduled")
+
+
diff --git a/addons/project_long_term/test/project_schedule_without_wroking_hour.yml b/addons/project_long_term/test/project_schedule_without_wroking_hour.yml
new file mode 100644
index 00000000000..61a8539585a
--- /dev/null
+++ b/addons/project_long_term/test/project_schedule_without_wroking_hour.yml
@@ -0,0 +1,77 @@
+-
+ Create a project 'Develop yaml Implementation Module'.
+-
+ !record {model: project.project, id: project_project_developyamlproject_2}:
+ name: "Develop Yaml Project Module"
+ date_start: !eval time.strftime('%Y-%m-%d')
+
+-
+ Create 4 Project phase.
+ First Project Phase 'Analysis Flow for Yaml'
+-
+ !record {model: project.phase, id: project_project_developyamlproject_2_phase_1}:
+ date_start: !eval time.strftime('%Y-%m-%d')
+ duration: 6.0
+ product_uom: product.uom_day
+ name: "Analysis Flow for Yaml"
+ project_id: project_project_developyamlproject_2
+ responsible_id: project.res_users_analyst
+ state: draft
+
+-
+ Create project phase 'Develop yaml'
+-
+ !record {model: project.phase, id: project_project_developyamlproject_2_phase_2}:
+ duration: 6.0
+ name: "Develop yaml"
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject_2
+ previous_phase_ids:
+ - project_project_developyamlproject_2_phase_1
+ state: draft
+-
+ Create project phase 'Test Yaml'
+-
+ !record {model: project.phase, id: project_project_developyamlproject_2_phase_3}:
+ duration: 6.0
+ name: Testing Yaml
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject_2
+ previous_phase_ids:
+ - project_project_developyamlproject_2_phase_2
+ state: draft
+
+-
+ Create project phase 'Implement Yaml'
+-
+ !record {model: project.phase, id: project_project_developyamlproject_2_phase_4}:
+ duration: 6.0
+ name: Testing Yaml
+ product_uom: product.uom_day
+ project_id: project_project_developyamlproject_2
+ previous_phase_ids:
+ - project_project_developyamlproject_2_phase_3
+ state: draft
+-
+ Compute Schedule of phases For One project
+-
+ !record {model: project.compute.phases, id: project_compute_phases_0}:
+ project_id: project_project_developyamlproject_2
+ target_project: one
+
+-
+ Schedule project phases using Compute Phase Scheduling
+-
+ !python {model: project.project}: |
+ self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
+
+-
+ After scheduling, Check that phases scheduled, check that either of phase's start_date, end_date not null.
+-
+ !python {model: project.project}: |
+ proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
+ for phase in proj.phase_ids:
+ if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
+ raise AssertionError("Phases not scheduled")
+
+
diff --git a/addons/project_long_term/test/schedule_phase_tasks.yml b/addons/project_long_term/test/schedule_phase_tasks.yml
index aa54fa1ac57..be22f778cee 100644
--- a/addons/project_long_term/test/schedule_phase_tasks.yml
+++ b/addons/project_long_term/test/schedule_phase_tasks.yml
@@ -1,7 +1,7 @@
-
Create project 'Develop an outlook-openerp synchronization plugin'
-
- !record {model: project.project, id: project_project_project0}:
+ !record {model: project.project, id: project_project_project4}:
name: Develop an outlook-openerp synchronization plugin
members:
- project.res_users_project_manager
@@ -15,20 +15,18 @@
Create phase 'Develop GUI' in Outlook
-
!record {model: project.phase, id: project_phase_phase0}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime("%Y-%m-%d")
duration: 200.0
name: Develop GUI in Outlook
product_uom: product.uom_day
- project_id: project_project_project0
+ project_id: project_project_project4
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
-
+ - resource_id: project_long_term.resource_tester
+ - resource_id: project_long_term.resource_project_manager
-
Create the phase task 'Develop GUI for Server Configuration'
@@ -39,8 +37,8 @@
remaining_hours: 20.0
state: draft
phase_id: project_phase_phase0
- project_id: project_project_project0
- user_id: project.res_users_developer
+ project_id: project_project_project4
+
-
Create the phase task 'Develop GUI for Modules Configuration'
@@ -51,8 +49,8 @@
remaining_hours: 25.0
state: draft
phase_id: project_phase_phase0
- project_id: project_project_project0
- user_id: project.res_users_developer
+ project_id: project_project_project4
+
-
Create the phase task 'Develop GUI for OpenERP Synchronisation'
-
@@ -62,8 +60,8 @@
remaining_hours: 30.0
state: draft
phase_id: project_phase_phase0
- project_id: project_project_project0
- user_id: project.res_users_developer
+ project_id: project_project_project4
+
-
Create the phase task 'Design required GUI/Menus'
-
@@ -73,8 +71,7 @@
remaining_hours: 25.0
state: draft
phase_id: project_phase_phase0
- project_id: project_project_project0
- user_id: project.res_users_designer
+ project_id: project_project_project4
-
Schedule phase tasks
@@ -88,6 +85,6 @@
!python {model: project.phase}: |
phase = self.browse(cr, uid, [ref("project_phase_phase0")])[0]
for task in phase.task_ids:
- if (not task.user_id) or (not task.date_start) or (not task.date_end):
+ if (not task.date_start) or (not task.date_end):
raise AssertionError("Phase Tasks not scheduled: %d uid=%r start=%r end=%r" % \
(task.id, task.user_id, task.date_start, task.date_end))
diff --git a/addons/project_long_term/test/schedule_project_phases.yml b/addons/project_long_term/test/schedule_project_phases.yml
index e06feaaa4ca..4bc6549bf35 100644
--- a/addons/project_long_term/test/schedule_project_phases.yml
+++ b/addons/project_long_term/test/schedule_project_phases.yml
@@ -1,126 +1,209 @@
--
+-
Create a project 'World Bank's Project'
--
+-
!record {model: project.project, id: project_project_worldbanksproject0}:
name: "World Bank's Project"
priority: 4
-
--
+ 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
+
+-
Create a project phase 'Defining Client's Basic Idea of Project'
--
+-
!record {model: project.phase, id: project_phase_definingclientsbasicideaofproject0}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime('%Y-%m-%d')
duration: 15.0
name: "Defining Client's Basic Idea of Project"
product_uom: product.uom_day
project_id: project_project_worldbanksproject0
-
-
--
+
+-
Create project phase 'Establishing Project Feasibility'
--
+-
!record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime('%Y-%m-%d')
duration: 30.0
name: Establishing Project Feasibility
product_uom: product.uom_day
project_id: project_project_worldbanksproject0
--
+-
+ Resource1
+-
+ !record {model: project.resource.allocation, id: res_phase1}:
+ resource_id: project_long_term.resource_project_manager
+ phase_id: project_phase_definingclientsbasicideaofproject0
+
+-
+ Resource2
+-
+ !record {model: project.resource.allocation, id: res_phase2}:
+ resource_id: project_long_term.resource_analyst
+ phase_id: project_phase_definingclientsbasicideaofproject0
+
+-
+ Resource3
+-
+ !record {model: project.resource.allocation, id: res_phase3}:
+ resource_id: project_long_term.resource_technical_leader
+ phase_id: project_phase_definingclientsbasicideaofproject0
+
+-
+ Create the phase task 'Develop GUI for Server Configuration'
+-
+ !record {model: project.task, id: project_task_t0}:
+ name: Develop GUI for Server Configuration
+ planned_hours: 20.0
+ state: draft
+ phase_id: project_phase_definingclientsbasicideaofproject0
+ project_id: project_project_worldbanksproject0
+
+-
+ Create the phase task 'Develop GUI for Modules Configuration'
+-
+ !record {model: project.task, id: project_task_t1}:
+ name: Develop GUI for Modules Configuration
+ planned_hours: 25.0
+ remaining_hours: 25.0
+ state: draft
+ phase_id: project_phase_definingclientsbasicideaofproject0
+ project_id: project_project_worldbanksproject0
+
+-
Create project phase 'Preparation of Engineering Designs'
--
+-
!record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime('%Y-%m-%d')
duration: 100.0
name: Preparation of Engineering Designs
product_uom: product.uom_hour
project_id: project_project_worldbanksproject0
-
-
--
+
+-
+ Resource4
+-
+ !record {model: project.resource.allocation, id: res_phase4}:
+ resource_id: project_long_term.resource_developer
+ phase_id: project_phase_preparationofengineeringdesigns0
+
+-
+ Resource5
+-
+ !record {model: project.resource.allocation, id: res_phase5}:
+ resource_id: project_long_term.resource_designer
+ phase_id: project_phase_preparationofengineeringdesigns0
+
+-
+ Create the phase task 'Develop GUI for Client Configuration'
+-
+ !record {model: project.task, id: project_task_t2}:
+ name: Develop GUI for Server Configuration
+ planned_hours: 20.0
+ remaining_hours: 20.0
+ state: draft
+ phase_id: project_phase_preparationofengineeringdesigns0
+ project_id: project_project_worldbanksproject0
+
+-
+ Create the phase task 'Develop GUI for Client Module Configuration'
+-
+ !record {model: project.task, id: project_task_t3}:
+ name: Develop GUI for Modules Configuration
+ planned_hours: 25.0
+ remaining_hours: 25.0
+ state: draft
+ phase_id: project_phase_preparationofengineeringdesigns0
+ project_id: project_project_worldbanksproject0
+
+
+-
Create project phase 'Procurement of Works and Goods'
--
+-
!record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime('%Y-%m-%d')
duration: 24.0
name: Procurement of Works and Goods
product_uom: product.uom_hour
project_id: project_project_worldbanksproject0
-
-
--
+
+-
Create project phase 'Project Construction'
--
+-
!record {model: project.phase, id: project_phase_projectconstruction0}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime('%Y-%m-%d')
duration: 4320.0
name: Project Construction
product_uom: product.uom_hour
project_id: project_project_worldbanksproject0
-
-
--
+
+
+-
Create project phase 'Project Completion'
--
+-
!record {model: project.phase, id: project_phase_projectcompletion0}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime('%Y-%m-%d')
duration: 240.0
name: Project Completion
product_uom: product.uom_hour
project_id: project_project_worldbanksproject0
--
+-
Set previous phase for phase 'Establishing Project Feasibility'
--
+-
!record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
previous_phase_ids:
- project_phase_definingclientsbasicideaofproject0
-
-
--
+
+
+-
Set previous phase for phase 'Preparation of Engineering Designs'
--
+-
!record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
previous_phase_ids:
- project_phase_establishingprojectfeasibility0
-
--
+
+-
Set previous phase for phase 'Procurement of Works and Goods'
--
+-
!record {model: project.phase, id: project_phase_procurementofworksandgoods0}:
previous_phase_ids:
- project_phase_preparationofengineeringdesigns0
-
--
+
+-
Set previous phase for phase 'Project Construction'
--
+-
!record {model: project.phase, id: project_phase_projectconstruction0}:
previous_phase_ids:
- project_phase_procurementofworksandgoods0
-
-
--
+
+
+-
Set previous phase for phase 'Project Completion'
--
+-
!record {model: project.phase, id: project_phase_projectcompletion0}:
previous_phase_ids:
- project_phase_projectconstruction0
--
+-
Get the project to schedule phases
--
+-
!record {model: project.compute.phases, id: project_compute_phases_0}:
project_id: project_project_worldbanksproject0
target_project: one
-
-
--
+
+
+-
Schedule project phases
--
+-
!python {model: project.project}: |
self.schedule_phases(cr, uid, ref("project_project_worldbanksproject0"))
-
+
-
Check if phases scheduled, check that either of phase's start_date, end_date and user_id is not null
-
@@ -128,6 +211,6 @@
prj=self.browse(cr, uid, [ref("project_project_worldbanksproject0")])[0]
for phase in prj.phase_ids:
if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
- raise AssertionError("Tasks not scheduled")
-
-
+ raise AssertionError("Tasks not scheduled")
+
+
diff --git a/addons/project_long_term/test/schedule_project_tasks.yml b/addons/project_long_term/test/schedule_project_tasks.yml
index 04a05437487..825b7c404d9 100644
--- a/addons/project_long_term/test/schedule_project_tasks.yml
+++ b/addons/project_long_term/test/schedule_project_tasks.yml
@@ -16,7 +16,7 @@
Create phase 'Develop GUI' in thunderbird
-
!record {model: project.phase, id: project_phase_phase1}:
- date_start: '2010-06-02'
+ date_start: !eval time.strftime('%Y-%m-%d')
duration: 200.0
name: Develop GUI in thunderbird
product_uom: product.uom_day
diff --git a/addons/project_long_term/test/test_schedule_phases_case1.yml b/addons/project_long_term/test/test_schedule_phases_case1.yml
new file mode 100644
index 00000000000..ba091a29916
--- /dev/null
+++ b/addons/project_long_term/test/test_schedule_phases_case1.yml
@@ -0,0 +1,72 @@
+-
+ In order to test scheduling of project phases, I create two different phases and
+ test it with two different dates for scheduling.
+-
+ I create a project Development and Testing.
+-
+ !record {model: project.project, id: project_project_project_case1}:
+ name: "Development and Testing"
+ date_start: !eval time.strftime('%Y-%m-%d')
+ balance: 0.0
+ credit: 0.0
+ currency_id: base.EUR
+ debit: 0.0
+ effective_hours: 0.0
+ members:
+ - base.user_admin
+
+ planned_hours: 0.0
+ progress_rate: 0.0
+ quantity: 0.0
+ quantity_max: 0.0
+ state: open
+ type_ids:
+ - project.project_tt_specification
+ - project.project_tt_development
+ - project.project_tt_testing
+ - project.project_tt_merge
+-
+ I create first phase of the project.
+-
+ !record {model: project.phase, id: project_phase_firstphase0_case1}:
+ duration: 2.0
+ name: First Phase
+ product_uom: product.uom_day
+ project_id: project_project_project_case1
+ state: draft
+-
+ I create second phase of the project.
+-
+ !record {model: project.phase, id: project_phase_secondphase0_case2}:
+ duration: 3.0
+ name: Second Phase
+ previous_phase_ids:
+ - project_phase_firstphase0_case1
+ product_uom: product.uom_day
+ project_id: project_project_project_case1
+ state: draft
+-
+ Now I create a record to compute the phase of project.
+-
+ !record {model: project.compute.phases, id: project_compute_phases0}:
+ target_project: 'one'
+ project_id: project_project_project_case1
+-
+ I schedule the phases.
+-
+ !python {model: project.compute.phases}: |
+ self.check_selection(cr, uid, [ref("project_compute_phases0")])
+-
+ I check the starting and ending dates of both phases.
+-
+ !python {model: project.phase}: |
+ import datetime
+ from dateutil.relativedelta import *
+ start = (datetime.date.today()).strftime('%Y-%m-%d')
+ end = (datetime.date.today() + relativedelta(days=2)).strftime('%Y-%m-%d')
+ first_phase = self.browse(cr, uid, ref('project_phase_firstphase0_case1'))
+ assert (first_phase.date_start == start and first_phase.date_end == end),'Dates are wrong!'
+ second_phase = self.browse(cr, uid, ref('project_phase_secondphase0_case2'))
+ start = first_phase.date_end
+ end = (datetime.date.today() + relativedelta(days=5)).strftime('%Y-%m-%d')
+ assert (second_phase.date_start == start and second_phase.date_end == end),'Dates are wrong!'
diff --git a/addons/project_long_term/test/test_schedule_phases_case2.yml b/addons/project_long_term/test/test_schedule_phases_case2.yml
new file mode 100644
index 00000000000..67a7332cf5b
--- /dev/null
+++ b/addons/project_long_term/test/test_schedule_phases_case2.yml
@@ -0,0 +1,193 @@
+-
+ In order to test scheduling of project phases, I create two different
+ working periods and resources. And schedule the phases.
+-
+ I create first working period 'Working Time A'.
+-
+ !record {model: resource.calendar, id: resource_calendar_workingtimea0}:
+ attendance_ids:
+ - dayofweek: '0'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Monday
+ - dayofweek: '1'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Tuesday
+ - dayofweek: '2'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Wednesday
+ - dayofweek: '3'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Thursday
+ name: Working Time A
+
+-
+ Creating a resource.calendar.attendance record
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_attendance_monday0}:
+ calendar_id: resource_calendar_workingtimea0
+ dayofweek: '0'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Monday
+-
+ Creating a resource.calendar.attendance record
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_attendance_tuesday0}:
+ calendar_id: resource_calendar_workingtimea0
+ dayofweek: '1'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Tuesday
+-
+ Creating a resource.calendar.attendance record
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_attendance_wednesday0}:
+ calendar_id: resource_calendar_workingtimea0
+ dayofweek: '2'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Wednesday
+-
+ Creating a resource.calendar.attendance record
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_attendance_thursday0}:
+ calendar_id: resource_calendar_workingtimea0
+ dayofweek: '3'
+ hour_from: 10.0
+ hour_to: 16.0
+ name: Thursday
+-
+ I create second working period 'Working Time B'.
+-
+ !record {model: resource.calendar, id: resource_calendar_workingtimeb0}:
+ attendance_ids:
+ - dayofweek: '4'
+ hour_from: 9.0
+ hour_to: 18.0
+ name: Friday
+ name: Working Time B
+-
+ Creating a resource.calendar.attendance record
+-
+ !record {model: resource.calendar.attendance, id: resource_calendar_attendance_friday0}:
+ calendar_id: resource_calendar_workingtimeb0
+ dayofweek: '4'
+ hour_from: 9.0
+ hour_to: 18.0
+ name: Friday
+-
+ I create first resource say 'Resource X' without assigning working period.
+-
+ !record {model: resource.resource, id: resource_resource_resourcex0}:
+ name: Resource X
+ resource_type: user
+ time_efficiency: 1.0
+ user_id: base.user_admin
+-
+ I create first resource say 'Resource Y' with working period 'Working Time B'.
+-
+ !record {model: resource.resource, id: resource_resource_resourcey0}:
+ calendar_id: resource_calendar_workingtimeb0
+ name: Resource Y
+ resource_type: user
+ time_efficiency: 1.0
+ user_id: base.user_admin
+-
+ I create a project 'Development and Testing' and assign working period 'Working Time A'.
+-
+ !record {model: project.project, id: project_project_project0}:
+ balance: 0.0
+ credit: 0.0
+ currency_id: base.EUR
+ debit: 0.0
+ effective_hours: 0.0
+ members:
+ - base.user_admin
+ name: Development and Testing
+ planned_hours: 20.0
+ progress_rate: 0.0
+ quantity: 0.0
+ quantity_max: 0.0
+ resource_calendar_id: resource_calendar_workingtimea0
+ state: open
+ tasks:
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task 1
+ planned_hours: 10.0
+ remaining_hours: 10.0
+ state: draft
+ total_hours: 10.0
+ - delay_hours: 0.0
+ effective_hours: 0.0
+ name: Task 2
+ planned_hours: 10.0
+ remaining_hours: 10.0
+ 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'.
+-
+ !record {model: project.phase, id: project_phase_phase0}:
+ date_start: '2011-01-03'
+ duration: 0.0
+ name: Initial Phase
+ product_uom: product.uom_day
+ project_id: project_project_project0
+ state: draft
+-
+ I create first task 'Developing module' and assign 10h.
+-
+ !record {model: project.task, id: project_task_task0}:
+ delay_hours: 0.0
+ effective_hours: 0.0
+ name: Developing module
+ planned_hours: 10.0
+ project_id: project_project_project0
+ remaining_hours: 10.0
+ state: draft
+ total_hours: 10.0
+ phase_id: project_phase_phase0
+-
+ I create first task 'Testing module' and assign 10h.
+-
+ !record {model: project.task, id: project_task_task1}:
+ delay_hours: 0.0
+ effective_hours: 0.0
+ name: Testing module
+ planned_hours: 10.0
+ project_id: project_project_project0
+ remaining_hours: 10.0
+ state: draft
+ total_hours: 10.0
+ phase_id: project_phase_phase0
+-
+ Now I create a record to compute the phase of project.
+-
+ !record {model: project.compute.phases, id: project_compute_phases0}:
+ target_project: 'one'
+ project_id: project_project_project0
+-
+ I schedule the phases.
+-
+ !python {model: project.compute.phases}: |
+ self.check_selection(cr, uid, [ref("project_compute_phases0")])
+
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..febb2aa3576
--- /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.date_start) or (not task.date_end):
+ raise AssertionError("Tasks are not scheduled.")