[tryton-debian-vcs] tryton-modules-calendar-todo branch upstream updated. upstream/3.0.1-1-gccb4556
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Tue Apr 22 13:06:52 UTC 2014
The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-calendar-todo.git;a=commitdiff;h=upstream/3.0.1-1-gccb4556
commit ccb4556ab9b4a3d541a3cba0573d1c49ba5028cc
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Tue Apr 22 14:21:30 2014 +0200
Adding upstream version 3.2.0.
diff --git a/CHANGELOG b/CHANGELOG
index ad668b9..18cf1a8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,4 @@
-Version 3.0.1 - 2013-12-04
+Version 3.2.0 - 2014-04-21
* Bug fixes (see mercurial logs for details)
Version 3.0.0 - 2013-10-21
diff --git a/COPYRIGHT b/COPYRIGHT
index a005001..9d9d0a6 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,6 +1,6 @@
-Copyright (C) 2009-2013 Cédric Krier.
+Copyright (C) 2009-2014 Cédric Krier.
Copyright (C) 2009-2013 Bertrand Chenal.
-Copyright (C) 2009-2013 B2CK SPRL.
+Copyright (C) 2009-2014 B2CK SPRL.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/INSTALL b/INSTALL
index e0e91e4..cc03e83 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,7 +4,7 @@ Installing trytond_calendar_todo
Prerequisites
-------------
- * Python 2.6 or later (http://www.python.org/)
+ * Python 2.7 or later (http://www.python.org/)
* trytond (http://www.tryton.org/)
* vobject 0.8.0 or later (http://vobject.skyhouseconsulting.com/)
* pywebdav 0.9.8 or later (http://sourceforge.net/projects/pywebdav/)
diff --git a/MANIFEST.in b/MANIFEST.in
index 18ce53c..4cf1634 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,11 +1,9 @@
include INSTALL
include README
-include TODO
include COPYRIGHT
include CHANGELOG
include LICENSE
include tryton.cfg
include *.xml
include view/*.xml
-include *.odt
include locale/*.po
diff --git a/PKG-INFO b/PKG-INFO
index 106ebf7..af584e6 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_calendar_todo
-Version: 3.0.1
+Version: 3.2.0
Summary: Tryton module to add TODO on CalDAV
Home-page: http://www.tryton.org/
Author: Tryton
-Author-email: UNKNOWN
+Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.0/
+Download-URL: http://downloads.tryton.org/3.2/
Description: trytond_calendar_todo
=====================
@@ -44,6 +44,7 @@ Description: trytond_calendar_todo
http://www.tryton.org/
+Keywords: tryton calendar caldav todo
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
@@ -64,6 +65,5 @@ Classifier: Natural Language :: Russian
Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Office/Business
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 5300c26..96b9317 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -732,6 +732,10 @@ msgctxt "selection:calendar.todo.exrule,freq:"
msgid "Yearly"
msgstr ""
+msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
#, fuzzy
msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
@@ -795,6 +799,10 @@ msgctxt "selection:calendar.todo.rrule,freq:"
msgid "Yearly"
msgstr ""
+msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
#, fuzzy
msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 9ce1266..950fd97 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -188,7 +188,7 @@ msgstr "Percentatge total"
msgctxt "field:calendar.todo,rdates:"
msgid "Recurrence Dates"
-msgstr "Dates de recurrencia"
+msgstr "Dates de recurrència"
msgctxt "field:calendar.todo,rec_name:"
msgid "Name"
@@ -196,11 +196,11 @@ msgstr "Nom"
msgctxt "field:calendar.todo,recurrence:"
msgid "Recurrence"
-msgstr "Recurrencia"
+msgstr "Recurrència"
msgctxt "field:calendar.todo,rrules:"
msgid "Recurrence Rules"
-msgstr "Regles de recurrencia"
+msgstr "Regles de recurrència"
msgctxt "field:calendar.todo,sequence:"
msgid "Sequence"
@@ -312,7 +312,7 @@ msgstr "Usuari creació"
msgctxt "field:calendar.todo.attendee,email:"
msgid "Email"
-msgstr "Email"
+msgstr "Correu electrònic"
msgctxt "field:calendar.todo.attendee,id:"
msgid "ID"
@@ -412,7 +412,7 @@ msgstr "Per dia de l'any"
msgctxt "field:calendar.todo.exrule,count:"
msgid "Count"
-msgstr "Contador"
+msgstr "Comptador"
msgctxt "field:calendar.todo.exrule,create_date:"
msgid "Create Date"
@@ -432,7 +432,7 @@ msgstr "ID"
msgctxt "field:calendar.todo.exrule,interval:"
msgid "Interval"
-msgstr "Intèrval"
+msgstr "Interval"
msgctxt "field:calendar.todo.exrule,rec_name:"
msgid "Name"
@@ -536,7 +536,7 @@ msgstr "Per dia de l'any"
msgctxt "field:calendar.todo.rrule,count:"
msgid "Count"
-msgstr "Contador"
+msgstr "Comptador"
msgctxt "field:calendar.todo.rrule,create_date:"
msgid "Create Date"
@@ -556,7 +556,7 @@ msgstr "ID"
msgctxt "field:calendar.todo.rrule,interval:"
msgid "Interval"
-msgstr "Intèrval"
+msgstr "Interval"
msgctxt "field:calendar.todo.rrule,rec_name:"
msgid "Name"
@@ -588,25 +588,25 @@ msgstr "Usuari modificació"
msgctxt "help:calendar.todo,uuid:"
msgid "Universally Unique Identifier"
-msgstr "Identificador universal únic"
+msgstr "Identificador universal únic."
msgctxt "help:calendar.todo.exdate,date:"
msgid "Ignore time of field \"Date\", but handle as date only."
-msgstr "Ingnora la hora del camp \"Data\", però utilitza com a única data."
+msgstr "Ignora la hora del camp \"Data\", però utilitza com a única data."
msgctxt "help:calendar.todo.exrule,until_date:"
msgid "Ignore time of field \"Until Date\", but handle as date only."
msgstr ""
-"Ingnora la hora del camp \"Fins a la data\", però utilitza com a única data."
+"Ignora la hora del camp \"Fins a la data\", però utilitza com a única data."
msgctxt "help:calendar.todo.rdate,date:"
msgid "Ignore time of field \"Date\", but handle as date only."
-msgstr "Ingnora la hora del camp \"Data\", però utilitza com a única data."
+msgstr "Ignora la hora del camp \"Data\", però utilitza com a única data."
msgctxt "help:calendar.todo.rrule,until_date:"
msgid "Ignore time of field \"Until Date\", but handle as date only."
msgstr ""
-"Ingnora la hora del camp \"Fins a la data\", però utilitza com a única data."
+"Ignora la hora del camp \"Fins a la data\", però utilitza com a única data."
msgctxt "model:calendar.todo,name:"
msgid "Todo"
@@ -634,11 +634,11 @@ msgstr "Regla d'excepció"
msgctxt "model:calendar.todo.rdate,name:"
msgid "Todo Recurrence Date"
-msgstr "Data de recurrencia"
+msgstr "Data de recurrència"
msgctxt "model:calendar.todo.rrule,name:"
msgid "Recurrence Rule"
-msgstr "Regla de recurrencia"
+msgstr "Regla de recurrència"
msgctxt "model:ir.action,name:act_todo_form"
msgid "Todos"
@@ -710,7 +710,7 @@ msgstr "Temptatiu"
msgctxt "selection:calendar.todo.exrule,freq:"
msgid "Daily"
-msgstr "Diariament"
+msgstr "Diàriament"
msgctxt "selection:calendar.todo.exrule,freq:"
msgid "Hourly"
@@ -737,6 +737,10 @@ msgid "Yearly"
msgstr "Anualment"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Divendres"
@@ -766,7 +770,7 @@ msgstr "Dimecres"
msgctxt "selection:calendar.todo.rrule,freq:"
msgid "Daily"
-msgstr "Diariament"
+msgstr "Diàriament"
msgctxt "selection:calendar.todo.rrule,freq:"
msgid "Hourly"
@@ -793,6 +797,10 @@ msgid "Yearly"
msgstr "Anualment"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Divendres"
@@ -846,15 +854,15 @@ msgstr "Regles d'excepcions"
msgctxt "view:calendar.todo.rdate:"
msgid "Recurrence Date"
-msgstr "Data de recurrencia"
+msgstr "Data de recurrència"
msgctxt "view:calendar.todo.rdate:"
msgid "Recurrence Dates"
-msgstr "Dates de recurrencia"
+msgstr "Dates de recurrència"
msgctxt "view:calendar.todo.rrule:"
msgid "Recurrence Rule"
-msgstr "Regla de recurrencia"
+msgstr "Regla de recurrència"
msgctxt "view:calendar.todo.rrule:"
msgid "Recurrence Rules"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index cb26d50..7254d90 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -727,6 +727,10 @@ msgid "Yearly"
msgstr ""
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr ""
@@ -783,6 +787,10 @@ msgid "Yearly"
msgstr ""
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 6f718d0..20c70d1 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -137,7 +137,7 @@ msgstr "Erstellt durch"
msgctxt "field:calendar.todo,description:"
msgid "Description"
-msgstr "Bezeichnung"
+msgstr "Beschreibung"
msgctxt "field:calendar.todo,dtstart:"
msgid "Start Date"
@@ -281,7 +281,7 @@ msgstr "Aufgabe"
msgctxt "field:calendar.todo.alarm,valarm:"
msgid "valarm"
-msgstr ""
+msgstr "Alarm"
msgctxt "field:calendar.todo.alarm,write_date:"
msgid "Write Date"
@@ -736,6 +736,10 @@ msgid "Yearly"
msgstr "Jährlich"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Freitag"
@@ -792,6 +796,10 @@ msgid "Yearly"
msgstr "Jährlich"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Freitag"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 8c96a51..2028143 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -741,6 +741,10 @@ msgid "Yearly"
msgstr "Anualmente"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Viernes"
@@ -797,6 +801,10 @@ msgid "Yearly"
msgstr "Anualmente"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Viernes"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 5c5b929..4971dd1 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -84,7 +84,7 @@ msgstr "Solo un \"hasta\" y \"contar\" pude ser establecido!"
msgctxt "error:calendar.todo:"
msgid "Todo \"%s\" can not be recurrent."
-msgstr "Tareas por Hacer \"%s\" no puede ser recurrente."
+msgstr "La tarea pendiente \"%s\" no puede ser recursiva."
msgctxt "error:calendar.todo:"
msgid "UUID and recurrence must be unique in a calendar."
@@ -144,7 +144,7 @@ msgstr "Fecha Inicio"
msgctxt "field:calendar.todo,due:"
msgid "Due Date"
-msgstr "Fecha Debida"
+msgstr "Fecha Esperada"
msgctxt "field:calendar.todo,exdates:"
msgid "Exception Dates"
@@ -208,7 +208,7 @@ msgstr "Resumen"
msgctxt "field:calendar.todo,timezone:"
msgid "Timezone"
-msgstr "Zona horaria"
+msgstr "Zona Horaria"
msgctxt "field:calendar.todo,uuid:"
msgid "UUID"
@@ -216,7 +216,7 @@ msgstr "UUID"
msgctxt "field:calendar.todo,vtodo:"
msgid "vtodo"
-msgstr "v- por hacer"
+msgstr "vpendiente"
msgctxt "field:calendar.todo,write_date:"
msgid "Write Date"
@@ -248,7 +248,7 @@ msgstr "Nombre"
msgctxt "field:calendar.todo-calendar.category,todo:"
msgid "To-Do"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "field:calendar.todo-calendar.category,write_date:"
msgid "Write Date"
@@ -276,7 +276,7 @@ msgstr "Nombre"
msgctxt "field:calendar.todo.alarm,todo:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "field:calendar.todo.alarm,valarm:"
msgid "valarm"
@@ -320,7 +320,7 @@ msgstr "Estado de Participación"
msgctxt "field:calendar.todo.attendee,todo:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "field:calendar.todo.attendee,write_date:"
msgid "Write Date"
@@ -356,7 +356,7 @@ msgstr "Nombre"
msgctxt "field:calendar.todo.exdate,todo:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "field:calendar.todo.exdate,write_date:"
msgid "Write Date"
@@ -432,7 +432,7 @@ msgstr "Nombre"
msgctxt "field:calendar.todo.exrule,todo:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "field:calendar.todo.exrule,until:"
msgid "Until Date"
@@ -444,7 +444,7 @@ msgstr "Esta Fecha"
msgctxt "field:calendar.todo.exrule,wkst:"
msgid "Week Day"
-msgstr "Día de la Semana"
+msgstr "Día de Semana"
msgctxt "field:calendar.todo.exrule,write_date:"
msgid "Write Date"
@@ -480,7 +480,7 @@ msgstr "Nombre"
msgctxt "field:calendar.todo.rdate,todo:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "field:calendar.todo.rdate,write_date:"
msgid "Write Date"
@@ -556,7 +556,7 @@ msgstr "Nombre"
msgctxt "field:calendar.todo.rrule,todo:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "field:calendar.todo.rrule,until:"
msgid "Until Date"
@@ -568,7 +568,7 @@ msgstr "Esta Fecha"
msgctxt "field:calendar.todo.rrule,wkst:"
msgid "Week Day"
-msgstr "Día de la Semana"
+msgstr "Día de Semana"
msgctxt "field:calendar.todo.rrule,write_date:"
msgid "Write Date"
@@ -604,7 +604,7 @@ msgstr ""
msgctxt "model:calendar.todo,name:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "model:calendar.todo-calendar.category,name:"
msgid "Todo - Category"
@@ -636,15 +636,15 @@ msgstr "Regla de Repetición"
msgctxt "model:ir.action,name:act_todo_form"
msgid "Todos"
-msgstr "Por hacer"
+msgstr "Pendientes"
msgctxt "model:ir.action,name:act_todo_form3"
msgid "Todos"
-msgstr "Por hacer"
+msgstr "Pendientes"
msgctxt "model:ir.ui.menu,name:menu_todo_form"
msgid "Todos"
-msgstr "Por hacer"
+msgstr "Pendiente"
msgctxt "selection:calendar.todo,classification:"
msgid "Confidential"
@@ -731,6 +731,10 @@ msgid "Yearly"
msgstr "Anualmente"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Viernes"
@@ -787,6 +791,10 @@ msgid "Yearly"
msgstr "Anualmente"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Viernes"
@@ -872,8 +880,8 @@ msgstr "Ocurrencias"
msgctxt "view:calendar.todo:"
msgid "Todo"
-msgstr "Por Hacer"
+msgstr "Pendiente"
msgctxt "view:calendar.todo:"
msgid "Todos"
-msgstr "Por hacer"
+msgstr "Pendientes"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 4b70f1f..a919c8e 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -328,7 +328,7 @@ msgstr "Nombre"
msgctxt "field:calendar.todo.attendee,status:"
msgid "Participation Status"
-msgstr "Estat de participacions"
+msgstr "Estado de participación"
msgctxt "field:calendar.todo.attendee,todo:"
msgid "Todo"
@@ -436,7 +436,7 @@ msgstr "ID"
msgctxt "field:calendar.todo.exrule,interval:"
msgid "Interval"
-msgstr "Intérvalo"
+msgstr "Intervalo"
msgctxt "field:calendar.todo.exrule,rec_name:"
msgid "Name"
@@ -560,7 +560,7 @@ msgstr "ID"
msgctxt "field:calendar.todo.rrule,interval:"
msgid "Interval"
-msgstr "Intérvalo"
+msgstr "Intervalo"
msgctxt "field:calendar.todo.rrule,rec_name:"
msgid "Name"
@@ -596,19 +596,19 @@ msgstr "Identificador universal único."
msgctxt "help:calendar.todo.exdate,date:"
msgid "Ignore time of field \"Date\", but handle as date only."
-msgstr "Ingnorar la hora del campo \"Fecha\" y usar sólo el día."
+msgstr "Ignora la hora del campo \"Fecha\" y usar sólo el día."
msgctxt "help:calendar.todo.exrule,until_date:"
msgid "Ignore time of field \"Until Date\", but handle as date only."
-msgstr "Ingnorar la hora del campo \"Hasta la fecha\" y usar sólo el día."
+msgstr "Ignora la hora del campo \"Hasta la fecha\" y usar sólo el día."
msgctxt "help:calendar.todo.rdate,date:"
msgid "Ignore time of field \"Date\", but handle as date only."
-msgstr "Ingnorar la hora del campo \"Fecha\" y usar sólo el día."
+msgstr "Ignora la hora del campo \"Fecha\" y usar sólo el día."
msgctxt "help:calendar.todo.rrule,until_date:"
msgid "Ignore time of field \"Until Date\", but handle as date only."
-msgstr "Ingnora la hora del campo \"Hasta la fecha\" y usar sólo el día."
+msgstr "Ignora la hora del campo \"Hasta la fecha\" y usar sólo el día."
msgctxt "model:calendar.todo,name:"
msgid "Todo"
@@ -692,7 +692,7 @@ msgstr ""
msgctxt "selection:calendar.todo.attendee,status:"
msgid "Accepted"
-msgstr "Acceptado"
+msgstr "Aceptado"
msgctxt "selection:calendar.todo.attendee,status:"
msgid "Declined"
@@ -739,6 +739,10 @@ msgid "Yearly"
msgstr "Anualmente"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Viernes"
@@ -795,6 +799,10 @@ msgid "Yearly"
msgstr "Anualmente"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Viernes"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 2f604a4..fde5b59 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -727,6 +727,10 @@ msgid "Yearly"
msgstr "Annuel"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Vendredi"
@@ -783,6 +787,10 @@ msgid "Yearly"
msgstr "Annuel"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Vendredi"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index fcb4dec..2a142ee 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -744,6 +744,10 @@ msgid "Yearly"
msgstr ""
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr ""
@@ -800,6 +804,10 @@ msgid "Yearly"
msgstr ""
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr ""
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index 98c3d9f..75e61ff 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -735,6 +735,10 @@ msgid "Yearly"
msgstr "Ежегодно"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Пятница"
@@ -791,6 +795,10 @@ msgid "Yearly"
msgstr "Ежегодно"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Пятница"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index 5e59a73..1ef81e3 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -727,6 +727,10 @@ msgid "Yearly"
msgstr "Letno"
msgctxt "selection:calendar.todo.exrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.exrule,wkst:"
msgid "Friday"
msgstr "Petek"
@@ -783,6 +787,10 @@ msgid "Yearly"
msgstr "Letno"
msgctxt "selection:calendar.todo.rrule,wkst:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:calendar.todo.rrule,wkst:"
msgid "Friday"
msgstr "Petek"
diff --git a/setup.py b/setup.py
index 60eaaa3..03001a5 100644
--- a/setup.py
+++ b/setup.py
@@ -11,34 +11,52 @@ import ConfigParser
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+def get_require_version(name):
+ if minor_version % 2:
+ require = '%s >= %s.%s.dev0, < %s.%s'
+ else:
+ require = '%s >= %s.%s, < %s.%s'
+ require %= (name, major_version, minor_version,
+ major_version, minor_version + 1)
+ return require
+
config = ConfigParser.ConfigParser()
config.readfp(open('tryton.cfg'))
info = dict(config.items('tryton'))
for key in ('depends', 'extras_depend', 'xml'):
if key in info:
info[key] = info[key].strip().splitlines()
-major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
+version = info.get('version', '0.0.1')
+major_version, minor_version, _ = version.split('.', 2)
major_version = int(major_version)
minor_version = int(minor_version)
+name = 'trytond_calendar_todo'
+
+download_url = 'http://downloads.tryton.org/%s.%s/' % (
+ major_version, minor_version)
+if minor_version % 2:
+ version = '%s.%s.dev0' % (major_version, minor_version)
+ download_url = (
+ 'hg+http://hg.tryton.org/modules/%s#egg=%s-%s' % (
+ name[8:], name, version))
requires = ['vobject >= 0.8.0', 'PyWebDAV >= 0.9.8', 'python-dateutil', 'pytz',
'python-sql']
for dep in info.get('depends', []):
if not re.match(r'(ir|res|webdav)(\W|$)', dep):
- requires.append('trytond_%s >= %s.%s, < %s.%s' %
- (dep, major_version, minor_version, major_version,
- minor_version + 1))
-requires.append('trytond >= %s.%s, < %s.%s' %
- (major_version, minor_version, major_version, minor_version + 1))
+ requires.append(get_require_version('trytond_%s' % dep))
+requires.append(get_require_version('trytond'))
-setup(name='trytond_calendar_todo',
- version=info.get('version', '0.0.1'),
+setup(name=name,
+ version=version,
description='Tryton module to add TODO on CalDAV',
long_description=read('README'),
author='Tryton',
+ author_email='issue_tracker at tryton.org',
url='http://www.tryton.org/',
- download_url=("http://downloads.tryton.org/" +
- info.get('version', '0.0.1').rsplit('.', 1)[0] + '/'),
+ download_url=download_url,
+ keywords='tryton calendar caldav todo',
package_dir={'trytond.modules.calendar_todo': '.'},
packages=[
'trytond.modules.calendar_todo',
@@ -68,7 +86,6 @@ setup(name='trytond_calendar_todo',
'Natural Language :: Slovenian',
'Natural Language :: Spanish',
'Operating System :: OS Independent',
- 'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Topic :: Office/Business',
],
diff --git a/tests/test_calendar_todo.py b/tests/test_calendar_todo.py
index e5f93d6..6dbac21 100644
--- a/tests/test_calendar_todo.py
+++ b/tests/test_calendar_todo.py
@@ -1,37 +1,22 @@
-#!/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.
-
-import sys
-import os
-DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
- '..', '..', '..', '..', '..', 'trytond')))
-if os.path.isdir(DIR):
- sys.path.insert(0, os.path.dirname(DIR))
-
import unittest
import trytond.tests.test_tryton
from trytond.tests.test_tryton import test_view, test_depends
class CalendarTodoTestCase(unittest.TestCase):
- '''
- Test Calendar Todo module.
- '''
+ 'Test Calendar Todo module'
def setUp(self):
trytond.tests.test_tryton.install_module('calendar_todo')
def test0005views(self):
- '''
- Test views.
- '''
+ 'Test views'
test_view('calendar_todo')
def test0006depends(self):
- '''
- Test depends.
- '''
+ 'Test depends'
test_depends()
@@ -40,6 +25,3 @@ def suite():
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
CalendarTodoTestCase))
return suite
-
-if __name__ == '__main__':
- unittest.TextTestRunner(verbosity=2).run(suite())
diff --git a/todo.py b/todo.py
index 1081fcf..59c402b 100644
--- a/todo.py
+++ b/todo.py
@@ -82,7 +82,7 @@ class Todo(ModelSQL, ModelView):
('completed', 'Completed'),
('in-process', 'In-Process'),
('cancelled', 'Cancelled'),
- ], 'Status', on_change=['status', 'completed', 'percent_complete'])
+ ], 'Status')
summary = fields.Char('Summary')
uuid = fields.Char('UUID', required=True,
help='Universally Unique Identifier', select=True)
@@ -156,15 +156,10 @@ class Todo(ModelSQL, ModelView):
return 'public'
@staticmethod
- def default_timezone():
- User = Pool().get('res.user')
- user = User(Transaction().user)
- return user.timezone
-
- @staticmethod
def default_percent_complete():
return 0
+ @fields.depends('status', 'completed', 'percent_complete')
def on_change_status(self):
res = {}
if not getattr(self, 'status', None):
@@ -277,26 +272,26 @@ class Todo(ModelSQL, ModelView):
res['location'] = self.location.id
res['status'] = self.status
res['organizer'] = self.organizer
- res['rdates'] = [('delete_all',)]
+ res['rdates'] = [('delete', [r.id for r in self.rdates])]
to_create = [rdate._date2update() for rdate in self.rdates]
if to_create:
res['rdates'].append(('create', to_create))
- res['exdates'] = [('delete_all',)]
+ res['exdates'] = [('delete', [r.id for r in self.exdates])]
to_create = [exdate._date2update() for exdate in self.exdates]
if to_create:
res['exdates'].append(('create', to_create))
- res['rrules'] = [('delete_all',)]
+ res['rrules'] = [('delete', [r.id for r in self.rrules])]
to_create = [rrule._rule2update() for rrule in self.rrules]
if to_create:
res['rrules'].append(('create', to_create))
- res['exrules'] = [('delete_all',)]
+ res['exrules'] = [('delete', [r.id for r in self.exrules])]
to_create = [exrule._rule2update() for exrule in self.exrules]
if to_create:
res['exrules'].append(('create', to_create))
return res
@classmethod
- def write(cls, todos, values):
+ def write(cls, *args):
pool = Pool()
Calendar = pool.get('calendar.calendar')
Collection = pool.get('webdav.collection')
@@ -304,11 +299,15 @@ class Todo(ModelSQL, ModelView):
cursor = Transaction().cursor
- values = values.copy()
- if 'sequence' in values:
- del values['sequence']
+ actions = iter(args)
+ args = []
+ for todos, values in zip(actions, actions):
+ values = values.copy()
+ if 'sequence' in values:
+ del values['sequence']
+ args.extend((todos, values))
- super(Todo, cls).write(todos, values)
+ super(Todo, cls).write(*args)
ids = [t.id for t in todos]
for i in range(0, len(ids), cursor.IN_MAX):
@@ -319,65 +318,69 @@ class Todo(ModelSQL, ModelView):
values=[table.sequence + 1],
where=red_sql))
- for todo in todos:
- if (todo.calendar.owner
- and (todo.organizer == todo.calendar.owner.email
- or (todo.parent
- and todo.parent.organizer
- == todo.calendar.owner.email))):
- if todo.organizer == todo.calendar.owner.email:
- attendee_emails = [x.email for x in todo.attendees
- if x.status != 'declined'
- and x.email != todo.organizer]
- else:
- attendee_emails = [x.email for x in todo.parent.attendees
- if x.status != 'declined'
- and x.email != todo.parent.organizer]
- if attendee_emails:
- with Transaction().set_user(0):
- todo2s = cls.search([
- ('uuid', '=', todo.uuid),
- ('calendar.owner.email', 'in', attendee_emails),
- ('id', '!=', todo.id),
- ('recurrence', '=', todo.recurrence),
- ])
- for todo2 in todo2s:
- if todo2.calendar.owner.email in attendee_emails:
- attendee_emails.remove(todo2.calendar.owner.email)
- with Transaction().set_user(0):
- cls.write(todos, todo._todo2update())
- if attendee_emails:
- with Transaction().set_user(0):
- calendars = Calendar.search([
- ('owner.email', 'in', attendee_emails),
- ])
- if not todo.recurrence:
- for calendar in calendars:
- new_todo, = cls.copy([todo], default={
- 'calendar': calendar.id,
- 'occurences': None,
- 'uuid': todo.uuid,
- })
- for occurence in todo.occurences:
- cls.copy([occurence], default={
+ actions = iter(args)
+ for todos, values in zip(actions, actions):
+ if not values:
+ continue
+ for todo in todos:
+ if (todo.calendar.owner
+ and (todo.organizer == todo.calendar.owner.email
+ or (todo.parent
+ and todo.parent.organizer
+ == todo.calendar.owner.email))):
+ if todo.organizer == todo.calendar.owner.email:
+ attendee_emails = [x.email for x in todo.attendees
+ if x.status != 'declined'
+ and x.email != todo.organizer]
+ else:
+ attendee_emails = [x.email for x in todo.parent.attendees
+ if x.status != 'declined'
+ and x.email != todo.parent.organizer]
+ if attendee_emails:
+ with Transaction().set_user(0):
+ todo2s = cls.search([
+ ('uuid', '=', todo.uuid),
+ ('calendar.owner.email', 'in', attendee_emails),
+ ('id', '!=', todo.id),
+ ('recurrence', '=', todo.recurrence),
+ ])
+ for todo2 in todo2s:
+ if todo2.calendar.owner.email in attendee_emails:
+ attendee_emails.remove(todo2.calendar.owner.email)
+ with Transaction().set_user(0):
+ cls.write(todos, todo._todo2update())
+ if attendee_emails:
+ with Transaction().set_user(0):
+ calendars = Calendar.search([
+ ('owner.email', 'in', attendee_emails),
+ ])
+ if not todo.recurrence:
+ for calendar in calendars:
+ new_todo, = cls.copy([todo], default={
'calendar': calendar.id,
- 'parent': new_todo.id,
- 'uuid': occurence.uuid,
+ 'occurences': None,
+ 'uuid': todo.uuid,
+ })
+ for occurence in todo.occurences:
+ cls.copy([occurence], default={
+ 'calendar': calendar.id,
+ 'parent': new_todo.id,
+ 'uuid': occurence.uuid,
+ })
+ else:
+ parents = cls.search([
+ ('uuid', '=', todo.uuid),
+ ('calendar.owner.email', 'in',
+ attendee_emails),
+ ('id', '!=', todo.id),
+ ('recurrence', '=', None),
+ ])
+ for parent in parents:
+ cls.copy([todo], default={
+ 'calendar': parent.calendar.id,
+ 'parent': parent.id,
+ 'uuid': todo.uuid,
})
- else:
- parents = cls.search([
- ('uuid', '=', todo.uuid),
- ('calendar.owner.email', 'in',
- attendee_emails),
- ('id', '!=', todo.id),
- ('recurrence', '=', None),
- ])
- for parent in parents:
- cls.copy([todo], default={
- 'calendar': parent.calendar.id,
- 'parent': parent.id,
- 'uuid': todo.uuid,
- })
# Restart the cache for todo
Collection._todo_cache.clear()
@@ -542,6 +545,8 @@ class Todo(ModelSQL, ModelView):
res['status'] = vtodo.status.value.lower()
else:
res['status'] = ''
+
+ res['categories'] = [('remove', [c.id for c in todo.categories])]
if hasattr(vtodo, 'categories'):
categories = Category.search([
('name', 'in', [x for x in vtodo.categories.value]),
@@ -557,9 +562,7 @@ class Todo(ModelSQL, ModelView):
})
if to_create:
categories += Category.create(to_create)
- res['categories'] = [('set', [c.id for c in categories])]
- else:
- res['categories'] = [('unlink_all',)]
+ res['categories'] += [('add', [c.id for c in categories])]
if hasattr(vtodo, 'class'):
if getattr(vtodo, 'class').value.lower() in \
dict(cls.classification.selection):
@@ -712,14 +715,8 @@ class Todo(ModelSQL, ModelView):
'''
Return an iCalendar instance of vobject for todo
'''
- pool = Pool()
- User = pool.get('res.user')
-
- user = User(Transaction().user)
if self.timezone:
tztodo = dateutil.tz.gettz(self.timezone)
- elif user.timezone:
- tztodo = dateutil.tz.gettz(user.timezone)
else:
tztodo = tzlocal
@@ -920,15 +917,19 @@ class TodoRDate(DateMixin, ModelSQL, ModelView):
return super(TodoRDate, cls).create(vlist)
@classmethod
- def write(cls, rdates, values):
+ def write(cls, *args):
Todo = Pool().get('calendar.todo')
- todos = [x.todo for x in rdates]
- if values.get('todo'):
- todos.append(Todo(values['todo']))
+
+ actions = iter(args)
+ todos = []
+ for rdates, values in zip(actions, actions):
+ todos += [x.todo for x in rdates]
+ if values.get('todo'):
+ todos.append(Todo(values['todo']))
if todos:
# Update write_date of todo
Todo.write(todos, {})
- super(TodoRDate, cls).write(rdates, values)
+ super(TodoRDate, cls).write(*args)
@classmethod
def delete(cls, todo_rdates):
@@ -982,15 +983,19 @@ class TodoRRule(RRuleMixin, ModelSQL, ModelView):
return super(TodoRRule, cls).create(vlist)
@classmethod
- def write(cls, todo_rrules, values):
+ def write(cls, *args):
Todo = Pool().get('calendar.todo')
- todos = [x.todo for x in todo_rrules]
- if values.get('todo'):
- todos.append(Todo(values['todo']))
+
+ actions = iter(args)
+ todos = []
+ for todo_rrules, values in zip(actions, actions):
+ todos += [x.todo for x in todo_rrules]
+ if values.get('todo'):
+ todos.append(Todo(values['todo']))
if todos:
# Update write_date of todo
Todo.write(todos, {})
- super(TodoRRule, cls).write(todo_rrules, values)
+ super(TodoRRule, cls).write(*args)
@classmethod
def delete(cls, todo_rrules):
@@ -1083,23 +1088,29 @@ class TodoAttendee(AttendeeMixin, ModelSQL, ModelView):
return attendees
@classmethod
- def write(cls, attendees, values):
+ def write(cls, *args):
Todo = Pool().get('calendar.todo')
- todos = [x.todo.id for x in attendees]
- if values.get('todo'):
- todos.append(Todo(values['todo']))
+ actions = iter(args)
+ args = []
+ todos = []
+ for todo_attendees, values in zip(actions, actions):
+ todos += [x.todo.id for x in todo_attendees]
+ if values.get('todo'):
+ todos.append(Todo(values['todo']))
+ if 'email' in values:
+ values = values.copy()
+ del values['email']
+ args.extend((todo_attendees, values))
+
if todos:
# Update write_date of todo
Todo.write(todos, {})
- if 'email' in values:
- values = values.copy()
- del values['email']
+ super(TodoAttendee, cls).write(*args)
- super(TodoAttendee, cls).write(attendees, values)
- for attendee in attendees:
- todo = attendee.todo
+ for todo_attendee in sum(args[::2], []):
+ todo = todo_attendee.todo
if (todo.calendar.owner
and (todo.organizer == todo.calendar.owner.email
or (todo.parent
@@ -1117,11 +1128,11 @@ class TodoAttendee(AttendeeMixin, ModelSQL, ModelView):
('todo.uuid', '=', todo.uuid),
('todo.calendar.owner.email', 'in',
attendee_emails),
- ('id', '!=', attendee.id),
+ ('id', '!=', todo_attendee.id),
('todo.recurrence', '=', todo.recurrence),
- ('email', '=', attendee.email),
+ ('email', '=', todo_attendee.email),
])
- cls.write(attendees2, attendee._attendee2update())
+ cls.write(attendees2, todo_attendee._attendee2update())
@classmethod
def delete(cls, todo_attendees):
@@ -1218,15 +1229,19 @@ class TodoAlarm(AlarmMixin, ModelSQL, ModelView):
return super(TodoAlarm, cls).create(vlist)
@classmethod
- def write(cls, alarms, values):
+ def write(cls, *args):
Todo = Pool().get('calendar.todo')
- todos = [x.todo for x in alarms]
- if values.get('todo'):
- todos.append(Todo(values['todo']))
+
+ actions = iter(args)
+ todos = []
+ for alarms, values in zip(actions, actions):
+ todos += [x.todo for x in alarms]
+ if values.get('todo'):
+ todos.append(Todo(values['todo']))
if todos:
# Update write_date of todo
Todo.write(todos, {})
- super(TodoAlarm, cls).write(alarms, values)
+ super(TodoAlarm, cls).write(*args)
@classmethod
def delete(cls, todo_alarms):
diff --git a/todo.xml b/todo.xml
index b0d1bfa..d673144 100644
--- a/todo.xml
+++ b/todo.xml
@@ -45,7 +45,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_todo_form3">
<field name="name">Todos</field>
<field name="res_model">calendar.todo</field>
- <field name="domain">[('parent', '=', None), ('calendar', '=', Eval('active_id'))]</field>
+ <field name="domain">[('parent', '=', None), ('calendar', 'in', Eval('active_ids'))]</field>
</record>
<record model="ir.action.act_window.view" id="act_todo_form3_view1">
<field name="sequence" eval="10"/>
diff --git a/tryton.cfg b/tryton.cfg
index a2b44e1..7c5cdd2 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=3.0.1
+version=3.2.0
depends:
calendar
ir
diff --git a/trytond_calendar_todo.egg-info/PKG-INFO b/trytond_calendar_todo.egg-info/PKG-INFO
index 9891078..1775b32 100644
--- a/trytond_calendar_todo.egg-info/PKG-INFO
+++ b/trytond_calendar_todo.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-calendar-todo
-Version: 3.0.1
+Version: 3.2.0
Summary: Tryton module to add TODO on CalDAV
Home-page: http://www.tryton.org/
Author: Tryton
-Author-email: UNKNOWN
+Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.0/
+Download-URL: http://downloads.tryton.org/3.2/
Description: trytond_calendar_todo
=====================
@@ -44,6 +44,7 @@ Description: trytond_calendar_todo
http://www.tryton.org/
+Keywords: tryton calendar caldav todo
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
@@ -64,6 +65,5 @@ Classifier: Natural Language :: Russian
Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Office/Business
diff --git a/trytond_calendar_todo.egg-info/requires.txt b/trytond_calendar_todo.egg-info/requires.txt
index 4636bab..b78a2d1 100644
--- a/trytond_calendar_todo.egg-info/requires.txt
+++ b/trytond_calendar_todo.egg-info/requires.txt
@@ -3,5 +3,5 @@ PyWebDAV >= 0.9.8
python-dateutil
pytz
python-sql
-trytond_calendar >= 3.0, < 3.1
-trytond >= 3.0, < 3.1
\ No newline at end of file
+trytond_calendar >= 3.2, < 3.3
+trytond >= 3.2, < 3.3
\ No newline at end of file
--
tryton-modules-calendar-todo
More information about the tryton-debian-vcs
mailing list