[tryton-debian-vcs] tryton-modules-project branch upstream updated. upstream/3.4.1-1-gaf21461
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Thu Apr 23 16:05:13 UTC 2015
The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-project.git;a=commitdiff;h=upstream/3.4.1-1-gaf21461
commit af21461dcf10bae875d756a5e3282559c830546c
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Thu Apr 23 17:00:02 2015 +0200
Adding upstream version 3.6.0.
Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>
diff --git a/CHANGELOG b/CHANGELOG
index 311b11c..549e5ad 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,7 @@
-Version 3.4.1 - 2015-02-22
+Version 3.6.0 - 2015-04-20
* Bug fixes (see mercurial logs for details)
+* Add support for PyPy
+* Use TimeDelta field
Version 3.4.0 - 2014-10-20
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index 873e0da..9d17fcf 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_project
-Version: 3.4.1
+Version: 3.6.0
Summary: Tryton module with projects
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
Description: trytond_project
===============
@@ -65,4 +65,6 @@ Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Office/Business
diff --git a/__init__.py b/__init__.py
index 64de74e..46c526f 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from trytond.pool import Pool
from .work import *
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index d8e0b3a..714d4bb 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -44,14 +44,9 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Създадено от"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
-msgstr "Услие"
-
-#, fuzzy
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Часове от график"
+msgstr ""
msgctxt "field:project.work,id:"
msgid "ID"
@@ -86,6 +81,11 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Наличен в график"
+#, fuzzy
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Продължителност"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Общо усилия"
@@ -110,14 +110,13 @@ msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
msgstr "Редове от график"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr "Оценка на усилията за тази работа"
+msgstr ""
-#, fuzzy
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Общо време за изпълнение на тази задача"
+msgstr ""
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 26bf138..e306d44 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -12,7 +12,7 @@ msgid ""
"is already done."
msgstr ""
"El treball \"%(child)s\" no es pot obrir perquè el treball pare "
-"\"%(parent)s\" ja està realitzat."
+"\"%(parent)s\" ja està finalitzat."
msgctxt "error:project.work:"
msgid ""
@@ -46,14 +46,10 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Usuari creació"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr "Esforç"
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Hores del full de treball"
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr "ID"
@@ -86,6 +82,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Disponible en fulls de treball"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Temps"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Total esforç"
@@ -110,13 +110,13 @@ msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
msgstr "Línies de full de treball"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr "L'esforç estimat per a aquest treball."
+msgstr "Temps estimat per aquest treball."
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Temps total empleat en aquest treball."
+msgstr "Temps total dedicat en aquest treball."
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
@@ -184,7 +184,7 @@ msgstr "Administració de projectes"
msgctxt "selection:project.work,state:"
msgid "Done"
-msgstr "Acabat"
+msgstr "Finalitzat"
msgctxt "selection:project.work,state:"
msgid "Opened"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index aaf9959..23c5c79 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -42,14 +42,10 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr ""
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr ""
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr ""
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr ""
@@ -82,6 +78,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr ""
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr ""
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr ""
@@ -102,11 +102,11 @@ msgctxt "field:project.work,write_uid:"
msgid "Write User"
msgstr ""
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
msgstr ""
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 15550a0..0a87426 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -47,13 +47,9 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Erstellt durch"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
-msgstr "Aufwand (Personenstunden)"
-
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Stunden"
+msgstr "Zeitaufwand"
msgctxt "field:project.work,id:"
msgid "ID"
@@ -87,6 +83,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Verfügbar für Zeiterfassung"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Dauer"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Gesamtaufwand (Personenstunden)"
@@ -111,17 +111,13 @@ msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
msgstr "Zeitpositionen"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr ""
-"Veranschlagter Aufwand für diese Aufgabe in Stunden (Format: "
-"Personenstunden, -tage, -wochen)"
+msgstr "Geschätzter Zeitaufwand für diese Aufgabe"
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr ""
-"Die gesamte Zeit, die für diese Aufgabe verwendet wurde (Format: "
-"Personenstunden, -tage, -wochen)"
+msgstr "Die gesamte Zeit, die für diese Aufgabe verwendet wurde"
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 3c4a71e..271e8d6 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -46,14 +46,10 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Usuario creación"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr "Esfuerzo"
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Horas del parte de trabajo"
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr "ID"
@@ -86,6 +82,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Disponible en partes de trabajo"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Duración"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Total esfuerzo"
@@ -110,13 +110,13 @@ msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
msgstr "Líneas de parte de trabajo"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
msgstr "Esfuerzo estimado para esta actividad"
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Tiempo total empleado en este trabajo"
+msgstr "Tiempo total empleado en esta actividad"
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 36e4cea..246e2ba 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -46,14 +46,10 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Creado por Usuario"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr "Esfuerzo"
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Registro de Horas"
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr "ID"
@@ -86,6 +82,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Disponibilidad en los registros de tiempos"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Duración"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Esfuerzo tTotal"
@@ -110,13 +110,13 @@ msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
msgstr "Lineas de Registro de Tiempo"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr "El esfuerzo estimado para esta tarea"
+msgstr "Esfuerzo Estimado para este trabajo"
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Tiempo total gastado en esta tarea"
+msgstr "Total de tiempo de gastado en este trabajo"
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
diff --git a/locale/es_EC.po b/locale/es_EC.po
index 980c6ed..2b43f40 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -11,15 +11,15 @@ msgid ""
"Work \"%(child)s\" can not be opened because its parent work \"%(parent)s\" "
"is already done."
msgstr ""
-"El trabajo \"%(child)s\" no puede ser abierto porque su trabajo padre "
-"\"%(parent)s\" ya está realizado."
+"El trabajo \"%(child)s\" no se puede abrir porque el trabajo padre "
+"\"%(parent)s\" ya está finalizado."
msgctxt "error:project.work:"
msgid ""
"Work \"%(parent)s\" can not be done because its child work \"%(child)s\" is "
"still opened."
msgstr ""
-"El trabajo \"%(parent)s\" no se puede finalizar porque su trabajo hijo "
+"El trabajo \"%(parent)s\" no se puede finalizar porque el trabajo hijo "
"\"%(child)s\" todavía se encuentra abierto."
msgctxt "field:project.work,active:"
@@ -40,20 +40,16 @@ msgstr "Empresa"
msgctxt "field:project.work,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:project.work,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr "Esfuerzo"
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Horas de Trabajo"
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr "ID"
@@ -68,7 +64,7 @@ msgstr "Tercero"
msgctxt "field:project.work,party_address:"
msgid "Contact Address"
-msgstr "Dirección de Contacto"
+msgstr "Dirección de contacto"
msgctxt "field:project.work,rec_name:"
msgid "Name"
@@ -86,6 +82,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Disponible en partes de trabajo"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Duración"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Esfuerzo Total"
@@ -100,23 +100,23 @@ msgstr "Trabajo"
msgctxt "field:project.work,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:project.work,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
-msgstr "Líneas de Parte de Trabajo"
+msgstr "Líneas de parte de trabajo"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr "Esfuerzo estimado para este trabajo"
+msgstr "Tiempo estimado para este trabajo"
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Tiempo total empleado en este trabajo"
+msgstr "Tiempo total dedicado en este trabajo"
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
@@ -140,11 +140,11 @@ msgstr "Tareas"
msgctxt "model:ir.action,name:act_work_list"
msgid "Works Efforts"
-msgstr "Proyectos y Tareas"
+msgstr "Proyectos y tareas"
msgctxt "model:ir.action,name:act_work_tree"
msgid "Works Efforts"
-msgstr "Proyectos y Tareas"
+msgstr "Proyectos y tareas"
msgctxt "model:ir.ui.menu,name:menu_configuration"
msgid "Configuration"
@@ -176,7 +176,7 @@ msgstr "Proyectos y Tareas"
msgctxt "model:project.work,name:"
msgid "Work Effort"
-msgstr "Proyecto y Tarea"
+msgstr "Proyecto y tarea"
msgctxt "model:res.group,name:group_project_admin"
msgid "Project Administration"
@@ -184,7 +184,7 @@ msgstr "Administración de Proyectos"
msgctxt "selection:project.work,state:"
msgid "Done"
-msgstr "Hecho"
+msgstr "Finalizado"
msgctxt "selection:project.work,state:"
msgid "Opened"
@@ -212,4 +212,4 @@ msgstr "Tareas"
msgctxt "view:project.work:"
msgid "Works Efforts"
-msgstr "Proyectos y Tareas"
+msgstr "Proyectos y tareas"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 067880e..9b0252e 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -11,8 +11,8 @@ msgid ""
"Work \"%(child)s\" can not be opened because its parent work \"%(parent)s\" "
"is already done."
msgstr ""
-"El trabajo \"%(child)s\" no puede abrir porque el trabajo padre "
-"\"%(parent)s\" ya está realizado."
+"El trabajo \"%(child)s\" no se puede abrir porque el trabajo padre "
+"\"%(parent)s\" ya está finalizado."
msgctxt "error:project.work:"
msgid ""
@@ -46,14 +46,10 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Usuario creación"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr "Esfuerzo"
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Horas parte de trabajo"
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr "ID"
@@ -86,6 +82,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Disponible en partes de trabajo"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Tiempo"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Total esfuerzo"
@@ -110,17 +110,17 @@ msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
msgstr "Líneas de parte de trabajo"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr "El esfuerzo estimado para esta actividad."
+msgstr "Tiempo estimado para este trabajo."
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Tiempo total empleado en este trabajo."
+msgstr "Tiempo total dedicado en este trabajo."
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
-msgstr "El esfuerzo total estimado para esta actividad y sus subactividades."
+msgstr "El esfuerzo total estimado para este trabajo y sus subtrabajos."
msgctxt "model:ir.action,name:act_open_child_work"
msgid "Tasks"
@@ -184,7 +184,7 @@ msgstr "Administración de proyectos"
msgctxt "selection:project.work,state:"
msgid "Done"
-msgstr "Realizado"
+msgstr "Finalizado"
msgctxt "selection:project.work,state:"
msgid "Opened"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 4cd4138..ff17fcf 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -46,14 +46,10 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Créé par"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr "Effort"
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Heures de présence"
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr "ID"
@@ -86,6 +82,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Disponible sur les feuilles de présence"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Durée"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Effort total"
@@ -110,11 +110,11 @@ msgctxt "field:timesheet.work,timesheet_lines:"
msgid "Timesheet Lines"
msgstr "Lignes de feuille de présence"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
msgstr "Effort estimé pour ce travail"
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
msgstr "Temps total passé sur ce travail"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index 4a6c475..50113b9 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -46,15 +46,10 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr ""
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
msgstr ""
-#, fuzzy
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Tijdregistratie uren"
-
msgctxt "field:project.work,id:"
msgid "ID"
msgstr ""
@@ -93,6 +88,10 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Beschikbaar in tijdregistartie"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr ""
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr ""
@@ -115,14 +114,13 @@ msgctxt "field:project.work,write_uid:"
msgid "Write User"
msgstr ""
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
msgstr ""
-#, fuzzy
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Tijd besteed aan dit werk"
+msgstr ""
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index f508a52..fea054c 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -42,13 +42,9 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Создано пользователем"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
-msgstr "Затраты"
-
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Часы табеля"
+msgstr ""
msgctxt "field:project.work,id:"
msgid "ID"
@@ -82,6 +78,11 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Доступно в табелях"
+#, fuzzy
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Продолжительность"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Общие затраты"
@@ -102,13 +103,13 @@ msgctxt "field:project.work,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr "Предположительные затраты для этой работы"
+msgstr ""
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Общее время потраченное на эту работу"
+msgstr ""
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index b768b2a..7f285cd 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -46,13 +46,9 @@ msgctxt "field:project.work,create_uid:"
msgid "Create User"
msgstr "Izdelal"
-msgctxt "field:project.work,effort:"
+msgctxt "field:project.work,effort_duration:"
msgid "Effort"
-msgstr "Ocena"
-
-msgctxt "field:project.work,hours:"
-msgid "Timesheet Hours"
-msgstr "Dejanske ure"
+msgstr "Porabljen čas"
msgctxt "field:project.work,id:"
msgid "ID"
@@ -86,13 +82,17 @@ msgctxt "field:project.work,timesheet_available:"
msgid "Available on timesheets"
msgstr "Na evidenci"
+msgctxt "field:project.work,timesheet_duration:"
+msgid "Duration"
+msgstr "Trajanje"
+
msgctxt "field:project.work,total_effort:"
msgid "Total Effort"
msgstr "Ocena skupaj"
msgctxt "field:project.work,type:"
msgid "Type"
-msgstr "Vrsta"
+msgstr "Tip"
msgctxt "field:project.work,work:"
msgid "Work"
@@ -106,17 +106,17 @@ msgctxt "field:project.work,write_uid:"
msgid "Write User"
msgstr "Zapisal"
-msgctxt "help:project.work,effort:"
+msgctxt "help:project.work,effort_duration:"
msgid "Estimated Effort for this work"
-msgstr "Ocena za to dejavnost"
+msgstr "Ocenjen porabljen čas za ta teden"
-msgctxt "help:project.work,hours:"
+msgctxt "help:project.work,timesheet_duration:"
msgid "Total time spent on this work"
-msgstr "Skupni porabljen čas na tem dejavnosti"
+msgstr "Skupen porabljen čas na tej nalogi"
msgctxt "help:project.work,total_effort:"
msgid "Estimated total effort for this work and the sub-works"
-msgstr "Skupna ocena za to dejavnost in njene poddejavnosti"
+msgstr "Skupna ocena porabljenega časa za to dejavnost in njene poddejavnosti"
msgctxt "model:ir.action,name:act_open_child_work"
msgid "Tasks"
diff --git a/setup.py b/setup.py
index edabcc0..36ea69a 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from setuptools import setup
import re
@@ -41,7 +41,7 @@ if minor_version % 2:
'hg+http://hg.tryton.org/modules/%s#egg=%s-%s' % (
name[8:], name, version))
-requires = []
+requires = ['python-sql >= 0.4']
for dep in info.get('depends', []):
if not re.match(r'(ir|res|webdav)(\W|$)', dep):
requires.append(get_require_version('trytond_%s' % dep))
@@ -86,6 +86,8 @@ setup(name=name,
'Natural Language :: Spanish',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: Implementation :: CPython',
+ 'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Office/Business',
],
license='GPL-3',
diff --git a/tests/__init__.py b/tests/__init__.py
index f4ef562..434b207 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
from .test_project import suite
diff --git a/tests/test_project.py b/tests/test_project.py
index 1a906d0..4e6b07f 100644
--- a/tests/test_project.py
+++ b/tests/test_project.py
@@ -1,31 +1,26 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
import unittest
import doctest
+import datetime
import trytond.tests.test_tryton
-from trytond.tests.test_tryton import test_view, test_depends
+from trytond.tests.test_tryton import ModuleTestCase
from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT
from trytond.transaction import Transaction
-class ProjectTestCase(unittest.TestCase):
+class ProjectTestCase(ModuleTestCase):
'Test Project module'
+ module = 'project'
def setUp(self):
+ super(ProjectTestCase, self).setUp()
trytond.tests.test_tryton.install_module('project')
self.timesheet_work = POOL.get('timesheet.work')
self.project_work = POOL.get('project.work')
self.company = POOL.get('company.company')
- def test0005views(self):
- 'Test views'
- test_view('project')
-
- def test0006depends(self):
- 'Test depends'
- test_depends()
-
def test0010sum_tree(self):
'Test sum_tree'
with Transaction().start(DB_NAME, USER, context=CONTEXT):
@@ -39,7 +34,7 @@ class ProjectTestCase(unittest.TestCase):
}])
p_work_1, = self.project_work.create([{
'work': t_work_1.id,
- 'effort': 1,
+ 'effort_duration': datetime.timedelta(hours=1),
}])
t_work_1_1, = self.timesheet_work.create([{
@@ -49,7 +44,7 @@ class ProjectTestCase(unittest.TestCase):
}])
p_work_1_1, = self.project_work.create([{
'work': t_work_1_1.id,
- 'effort': 1,
+ 'effort_duration': datetime.timedelta(hours=1),
}])
t_work_1_2, = self.timesheet_work.create([{
@@ -59,7 +54,7 @@ class ProjectTestCase(unittest.TestCase):
}])
p_work_1_2, = self.project_work.create([{
'work': t_work_1_2.id,
- 'effort': 1,
+ 'effort_duration': datetime.timedelta(hours=1),
}])
t_work_1_1_1, = self.timesheet_work.create([{
@@ -69,7 +64,7 @@ class ProjectTestCase(unittest.TestCase):
}])
p_work_1_1_1, = self.project_work.create([{
'work': t_work_1_1_1.id,
- 'effort': 1,
+ 'effort_duration': datetime.timedelta(hours=1),
}])
t_work_1_1_2, = self.timesheet_work.create([{
@@ -79,7 +74,7 @@ class ProjectTestCase(unittest.TestCase):
}])
p_work_1_1_2, = self.project_work.create([{
'work': t_work_1_1_2.id,
- 'effort': 1,
+ 'effort_duration': datetime.timedelta(hours=1),
}])
t_work_1_1_3, = self.timesheet_work.create([{
@@ -89,7 +84,7 @@ class ProjectTestCase(unittest.TestCase):
}])
p_work_1_1_3, = self.project_work.create([{
'work': t_work_1_1_3.id,
- 'effort': 1,
+ 'effort_duration': datetime.timedelta(hours=1),
}])
for work, total_effort in (
@@ -100,7 +95,8 @@ class ProjectTestCase(unittest.TestCase):
(p_work_1_1_2, 1),
(p_work_1_1_3, 1),
):
- self.assertEqual(work.total_effort, total_effort)
+ self.assertEqual(work.total_effort,
+ datetime.timedelta(hours=total_effort))
def suite():
diff --git a/tryton.cfg b/tryton.cfg
index 28ebaec..ce2f54c 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=3.4.1
+version=3.6.0
depends:
company_work_time
ir
diff --git a/trytond_project.egg-info/PKG-INFO b/trytond_project.egg-info/PKG-INFO
index d2ceb8c..60b68b4 100644
--- a/trytond_project.egg-info/PKG-INFO
+++ b/trytond_project.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-project
-Version: 3.4.1
+Version: 3.6.0
Summary: Tryton module with projects
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
Description: trytond_project
===============
@@ -65,4 +65,6 @@ Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Office/Business
diff --git a/trytond_project.egg-info/requires.txt b/trytond_project.egg-info/requires.txt
index b3cb3e4..ff48034 100644
--- a/trytond_project.egg-info/requires.txt
+++ b/trytond_project.egg-info/requires.txt
@@ -1,4 +1,5 @@
-trytond_company_work_time >= 3.4, < 3.5
-trytond_party >= 3.4, < 3.5
-trytond_timesheet >= 3.4, < 3.5
-trytond >= 3.4, < 3.5
\ No newline at end of file
+python-sql >= 0.4
+trytond_company_work_time >= 3.6, < 3.7
+trytond_party >= 3.6, < 3.7
+trytond_timesheet >= 3.6, < 3.7
+trytond >= 3.6, < 3.7
\ No newline at end of file
diff --git a/view/work_form.xml b/view/work_form.xml
index db8aca2..5694073 100644
--- a/view/work_form.xml
+++ b/view/work_form.xml
@@ -23,13 +23,13 @@ this repository contains the full copyright notices and license terms. -->
<label name="timesheet_available"/>
<field name="timesheet_available"/>
<newline/>
- <label name="effort"/>
- <field name="effort" widget="float_time" float_time="company_work_time"/>
+ <label name="effort_duration"/>
+ <field name="effort_duration"/>
<newline/>
- <label name="hours"/>
- <field name="hours" widget="float_time" float_time="company_work_time"/>
+ <label name="timesheet_duration"/>
+ <field name="timesheet_duration"/>
<label name="total_effort"/>
- <field name="total_effort" widget="float_time" float_time="company_work_time"/>
+ <field name="total_effort"/>
<newline/>
<separator name="comment" colspan="6"/>
<field name="comment" colspan="6"/>
@@ -42,8 +42,7 @@ this repository contains the full copyright notices and license terms. -->
</group>
</group>
</page>
- <page string="Children" id="children"
- states="{'invisible': Not(Equal(Eval('type'), 'project'))}">
+ <page string="Children" id="children">
<field name="children" colspan="4"/>
</page>
</notebook>
diff --git a/view/work_list.xml b/view/work_list.xml
index 6b28430..ffc4cc0 100644
--- a/view/work_list.xml
+++ b/view/work_list.xml
@@ -3,9 +3,8 @@
this repository contains the full copyright notices and license terms. -->
<tree string="Works Efforts">
<field name="work"/>
- <field name="hours" widget="float_time" float_time="company_work_time"/>
- <field name="total_effort" widget="float_time"
- float_time="company_work_time"/>
+ <field name="timesheet_duration"/>
+ <field name="total_effort"/>
<field name="type"/>
<field name="state"/>
<field name="active" tree_invisible="1"/>
diff --git a/view/work_list2.xml b/view/work_list2.xml
index 6f57569..dcf6724 100644
--- a/view/work_list2.xml
+++ b/view/work_list2.xml
@@ -3,9 +3,8 @@
this repository contains the full copyright notices and license terms. -->
<tree string="Tasks">
<field name="work"/>
- <field name="hours" widget="float_time" float_time="company_work_time"/>
- <field name="total_effort" widget="float_time"
- float_time="company_work_time"/>
+ <field name="timesheet_duration"/>
+ <field name="total_effort"/>
<field name="state"/>
<field name="active" tree_invisible="1"/>
</tree>
diff --git a/view/work_tree.xml b/view/work_tree.xml
index dbb8fcd..d587d01 100644
--- a/view/work_tree.xml
+++ b/view/work_tree.xml
@@ -3,8 +3,8 @@
this repository contains the full copyright notices and license terms. -->
<tree string="Works Efforts">
<field name="rec_name"/>
- <field name="hours" widget="float_time" float_time="company_work_time"/>
- <field name="total_effort" widget="float_time" float_time="company_work_time"/>
+ <field name="timesheet_duration"/>
+ <field name="total_effort"/>
<field name="type"/>
<field name="state"/>
<field name="active" tree_invisible="1"/>
diff --git a/work.py b/work.py
index 513cdd0..1044a23 100644
--- a/work.py
+++ b/work.py
@@ -1,5 +1,9 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+import datetime
+
+from sql import Null
+
from trytond.model import ModelView, ModelSQL, fields
from trytond.pyson import Eval
from trytond import backend
@@ -36,14 +40,16 @@ class Work(ModelSQL, ModelView):
timesheet_available = fields.Function(
fields.Boolean('Available on timesheets'),
'on_change_with_timesheet_available')
- hours = fields.Function(fields.Float('Timesheet Hours', digits=(16, 2),
- help="Total time spent on this work"), 'on_change_with_hours')
- effort = fields.Float("Effort",
+ timesheet_duration = fields.Function(fields.TimeDelta('Duration',
+ 'company_work_time', help="Total time spent on this work"),
+ 'on_change_with_timesheet_duration')
+ effort_duration = fields.TimeDelta('Effort', 'company_work_time',
states={
'invisible': Eval('type') != 'task',
}, depends=['type'], help="Estimated Effort for this work")
- total_effort = fields.Function(fields.Float('Total Effort',
- help="Estimated total effort for this work and the sub-works"),
+ total_effort = fields.Function(fields.TimeDelta('Total Effort',
+ 'company_work_time',
+ help="Estimated total effort for this work and the sub-works"),
'get_total_effort')
comment = fields.Text('Comment')
parent = fields.Function(fields.Many2One('project.work', 'Parent'),
@@ -58,7 +64,7 @@ class Work(ModelSQL, ModelView):
@staticmethod
def order_sequence(tables):
table, _ = tables[None]
- return [table.sequence == None, table.sequence]
+ return [table.sequence == Null, table.sequence]
@staticmethod
def default_type():
@@ -79,6 +85,9 @@ class Work(ModelSQL, ModelView):
cursor = Transaction().cursor
table_project_work = TableHandler(cursor, cls, module_name)
table_timesheet_work = TableHandler(cursor, TimesheetWork, module_name)
+ project = cls.__table__()
+ timesheet = TimesheetWork.__table__()
+
migrate_sequence = (not table_project_work.column_exist('sequence')
and table_timesheet_work.column_exist('sequence'))
@@ -86,8 +95,6 @@ class Work(ModelSQL, ModelView):
# Migration from 2.0: copy sequence from timesheet to project
if migrate_sequence:
- project = cls.__table__()
- timesheet = TimesheetWork.__table__()
cursor.execute(*timesheet.join(project,
condition=project.work == timesheet.id
).select(timesheet.sequence, timesheet.id))
@@ -100,6 +107,18 @@ class Work(ModelSQL, ModelView):
# Migration from 2.4: drop required on sequence
table_project_work.not_null_action('sequence', action='remove')
+ # Migration from 3.4: change effort into timedelta effort_duration
+ if table_project_work.column_exist('effort'):
+ cursor.execute(*project.select(project.id, project.effort,
+ where=project.effort != Null))
+ for id_, effort in cursor.fetchall():
+ duration = datetime.timedelta(hours=effort)
+ cursor.execute(*project.update(
+ [project.effort_duration],
+ [duration],
+ where=project.id == id_))
+ table_project_work.drop_column('effort')
+
@classmethod
def __setup__(cls):
super(Work, cls).__setup__()
@@ -173,8 +192,8 @@ class Work(ModelSQL, ModelView):
return self.work.timesheet_available if self.work else None
@fields.depends('work')
- def on_change_with_hours(self, name=None):
- return self.work.hours if self.work else None
+ def on_change_with_timesheet_duration(self, name=None):
+ return self.work.duration if self.work else None
@classmethod
def get_parent(cls, project_works, name):
@@ -304,7 +323,8 @@ class Work(ModelSQL, ModelView):
('parent', 'child_of', [w.id for w in works]),
('active', '=', True),
]) + works
- return cls.sum_tree(works, lambda w: w.effort or 0)
+ return cls.sum_tree(works,
+ lambda w: w.effort_duration or datetime.timedelta())
@classmethod
def copy(cls, project_works, default=None):
@@ -342,6 +362,6 @@ class Work(ModelSQL, ModelView):
@classmethod
def search_global(cls, text):
- for id_, rec_name, icon in super(Work, cls).search_global(text):
+ for record, rec_name, icon in super(Work, cls).search_global(text):
icon = icon or 'tryton-project'
- yield id_, rec_name, icon
+ yield record, rec_name, icon
diff --git a/work.xml b/work.xml
index 80174cc..f6082f0 100644
--- a/work.xml
+++ b/work.xml
@@ -31,7 +31,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_work_tree">
<field name="name">Works Efforts</field>
<field name="res_model">project.work</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view"
id="act_work_tree_view1">
@@ -70,7 +70,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_project_tree">
<field name="name">Projects</field>
<field name="res_model">project.work</field>
- <field name="domain">[('parent', '=', None)]</field>
+ <field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
</record>
<record model="ir.action.act_window.view"
id="act_project_tree_view1">
@@ -90,7 +90,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_project_form">
<field name="name">Projects</field>
<field name="res_model">project.work</field>
- <field name="domain">[('type', '=', 'project')]</field>
+ <field name="domain" eval="[('type', '=', 'project')]" pyson="1"/>
<field name="context"></field>
</record>
<record model="ir.action.act_window.view"
@@ -111,7 +111,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_task_form">
<field name="name">Tasks</field>
<field name="res_model">project.work</field>
- <field name="domain">[('type', '=', 'task')]</field>
+ <field name="domain" eval="[('type', '=', 'task')]" pyson="1"/>
<field name="context"></field>
</record>
<record model="ir.action.act_window.view"
@@ -133,7 +133,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="name">Tasks</field>
<field name="res_model">project.work</field>
<field name="context"></field>
- <field name="domain">[('parent', 'in', Eval('active_ids')), ('type', '=', 'task')]</field>
+ <field name="domain"
+ eval="[('parent', 'in', Eval('active_ids')), ('type', '=', 'task')]"
+ pyson="1"/>
</record>
<record model="ir.action.keyword"
id="act_open_project_work_keyword1">
--
tryton-modules-project
More information about the tryton-debian-vcs
mailing list