[tryton-debian-vcs] tryton-modules-calendar branch upstream updated. upstream/3.4.1-1-g3cac6c6
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Thu Apr 23 16:02:59 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-calendar.git;a=commitdiff;h=upstream/3.4.1-1-g3cac6c6
commit 3cac6c613d519ffca1bb0090c8a054adfeed957e
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Thu Apr 23 16:59:54 2015 +0200
Adding upstream version 3.6.0.
Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>
diff --git a/CHANGELOG b/CHANGELOG
index 47f7057..da8c30e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,8 @@
-Version 3.4.1 - 2015-03-01
+Version 3.6.0 - 2015-04-20
* Bug fixes (see mercurial logs for details)
+* Add support for PyPy
+* Add record rule to calendar
+* Add full access to calendar admin. group
Version 3.4.0 - 2014-10-20
* Bug fixes (see mercurial logs for details)
diff --git a/INSTALL b/INSTALL
index 463e08a..2bb9cd8 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
Installing trytond_calendar
-=================================
+===========================
Prerequisites
-------------
diff --git a/PKG-INFO b/PKG-INFO
index 0513922..cd5f507 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_calendar
-Version: 3.4.1
+Version: 3.6.0
Summary: Tryton module for CalDAV
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_calendar
================
@@ -66,4 +66,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 caf0820..a8f3f1e 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 . import caldav
diff --git a/caldav.py b/caldav.py
index a5fd3b1..f79a0e1 100644
--- a/caldav.py
+++ b/caldav.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.
import urlparse
import urllib
from string import atoi
@@ -16,12 +16,12 @@ from trytond.transaction import Transaction
domimpl = xml.dom.minidom.getDOMImplementation()
TrytonDAVInterface.PROPS['urn:ietf:params:xml:ns:caldav'] = (
- 'calendar-description',
- 'calendar-data',
- 'calendar-home-set',
- 'calendar-user-address-set',
- 'schedule-inbox-URL',
- 'schedule-outbox-URL',
+ 'calendar-description',
+ 'calendar-data',
+ 'calendar-home-set',
+ 'calendar-user-address-set',
+ 'schedule-inbox-URL',
+ 'schedule-outbox-URL',
)
TrytonDAVInterface.PROPS['DAV:'] = tuple(list(TrytonDAVInterface.PROPS['DAV:'])
+ ['principal-collection-set'])
@@ -41,13 +41,13 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
if parent_uri in ('Calendars', 'Calendars/'):
ad = doc.createElement('calendar')
ad.setAttribute('xmlns', 'urn:ietf:params:xml:ns:caldav')
- #Disable groupdav attribute for iPhone
- #vc = doc.createElement('vevent-collection')
- #vc.setAttribute('xmlns', 'http://groupdav.org/')
+ # Disable groupdav attribute for iPhone
+ # vc = doc.createElement('vevent-collection')
+ # vc.setAttribute('xmlns', 'http://groupdav.org/')
cols = res.getElementsByTagName('D:collection')
if cols:
cols[0].parentNode.appendChild(ad)
- #cols[0].parentNode.appendChild(vc)
+ # cols[0].parentNode.appendChild(vc)
return res
propfind.PROPFIND.mk_prop_response = mk_prop_response
@@ -126,8 +126,8 @@ def _get_caldav_calendar_home_set(self, uri):
doc = domimpl.createDocument(None, 'href', None)
href = doc.documentElement
href.tagName = 'D:href'
- #iPhone doesn't handle "http" in href
- #huri = doc.createTextNode(urlparse.urlunsplit(uparts))
+ # iPhone doesn't handle "http" in href
+ # huri = doc.createTextNode(urlparse.urlunsplit(uparts))
huri = doc.createTextNode(urllib.quote('/' + dbname + res))
href.appendChild(huri)
return href
@@ -298,7 +298,7 @@ def do_POST(self):
except DAV_Error, exception:
ec, _ = exception
return self.send_status(ec)
- self.send_body_chunks(DATA, '200', 'OK', 'OK')
+ self.send_body_chunks(DATA, 200, 'OK', 'OK')
return
return _prev_do_POST(self)
diff --git a/calendar.xml b/calendar.xml
index bd3055a..68f6d49 100644
--- a/calendar.xml
+++ b/calendar.xml
@@ -48,8 +48,27 @@ this repository contains the full copyright notices and license terms. -->
<menuitem parent="menu_calendar" sequence="1"
action="act_calendar_form" id="menu_calendar_form"/>
+ <record model="ir.rule.group" id="rule_group_calendar_admin">
+ <field name="model" search="[('model', '=', 'calendar.calendar')]"/>
+ <field name="global_p" eval="False"/>
+ <field name="default_p" eval="False"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+ <record model="ir.rule" id="rule_group_calendar_admin_line1">
+ <field name="domain">[]</field>
+ <field name="rule_group" ref="rule_group_calendar_admin"/>
+ </record>
+ <record model="ir.rule.group-res.group"
+ id="rule_group_calendar_admin-calendar_admin">
+ <field name="rule_group" ref="rule_group_calendar_admin"/>
+ <field name="group" ref="group_calendar_admin"/>
+ </record>
+
<record model="ir.rule.group" id="rule_group_read_calendar">
- <field name="model" search="[('model', '=', 'calendar.event')]"/>
+ <field name="model" search="[('model', '=', 'calendar.calendar')]"/>
<field name="global_p" eval="False"/>
<field name="default_p" eval="True"/>
<field name="perm_read" eval="True"/>
@@ -58,16 +77,20 @@ this repository contains the full copyright notices and license terms. -->
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.rule" id="rule_group_read_calendar_line1">
- <field name="domain">[('calendar_owner', '=', user.id)]</field>
+ <field name="domain"
+ eval="[('owner', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_read_calendar"/>
</record>
<record model="ir.rule" id="rule_group_read_calendar_line2">
- <field name="domain">[('calendar_read_users', '=', user.id)]</field>
+ <field name="domain"
+ eval="[('read_users', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_read_calendar"/>
</record>
<record model="ir.rule.group" id="rule_group_write_calendar">
- <field name="model" search="[('model', '=', 'calendar.event')]"/>
+ <field name="model" search="[('model', '=', 'calendar.calendar')]"/>
<field name="global_p" eval="False"/>
<field name="default_p" eval="True"/>
<field name="perm_read" eval="True"/>
@@ -76,11 +99,15 @@ this repository contains the full copyright notices and license terms. -->
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.rule" id="rule_group_write_calendar_line1">
- <field name="domain">[('calendar_owner', '=', user.id)]</field>
+ <field name="domain"
+ eval="[('owner', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_write_calendar"/>
</record>
<record model="ir.rule" id="rule_group_write_calendar_line2">
- <field name="domain">[('calendar_write_users', '=', user.id)]</field>
+ <field name="domain"
+ eval="[('write_users', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
<field name="rule_group" ref="rule_group_write_calendar"/>
</record>
@@ -131,7 +158,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.action.act_window" id="act_event_form">
<field name="name">Events</field>
<field name="res_model">calendar.event</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_event_form_view1">
<field name="sequence" eval="10"/>
@@ -146,10 +173,75 @@ this repository contains the full copyright notices and license terms. -->
<menuitem parent="menu_calendar_form" sequence="20"
action="act_event_form" id="menu_event_form"/>
+ <record model="ir.rule.group" id="rule_group_event_admin">
+ <field name="model" search="[('model', '=', 'calendar.event')]"/>
+ <field name="global_p" eval="False"/>
+ <field name="default_p" eval="False"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+ <record model="ir.rule" id="rule_group_event_admin_line1">
+ <field name="domain" eval="[]" pyson="1"/>
+ <field name="rule_group" ref="rule_group_event_admin"/>
+ </record>
+ <record model="ir.rule.group-res.group"
+ id="rule_group_event_admin-calendar_admin">
+ <field name="rule_group" ref="rule_group_event_admin"/>
+ <field name="group" ref="group_calendar_admin"/>
+ </record>
+
+ <record model="ir.rule.group" id="rule_group_read_event">
+ <field name="model" search="[('model', '=', 'calendar.event')]"/>
+ <field name="global_p" eval="False"/>
+ <field name="default_p" eval="True"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.rule" id="rule_group_read_event_line1">
+ <field name="domain"
+ eval="[('calendar.owner', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
+ <field name="rule_group" ref="rule_group_read_event"/>
+ </record>
+ <record model="ir.rule" id="rule_group_read_event_line2">
+ <field name="domain"
+ eval="[('calendar.read_users', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
+ <field name="rule_group" ref="rule_group_read_event"/>
+ </record>
+
+ <record model="ir.rule.group" id="rule_group_write_event">
+ <field name="model" search="[('model', '=', 'calendar.event')]"/>
+ <field name="global_p" eval="False"/>
+ <field name="default_p" eval="True"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+ <record model="ir.rule" id="rule_group_write_event_line1">
+ <field name="domain"
+ eval="[('calendar.owner', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
+ <field name="rule_group" ref="rule_group_write_event"/>
+ </record>
+ <record model="ir.rule" id="rule_group_write_event_line2">
+ <field name="domain"
+ eval="[('calendar.write_users', '=', Eval('user', {}).get('id', -1))]"
+ pyson="1"/>
+ <field name="rule_group" ref="rule_group_write_event"/>
+ </record>
+
<record model="ir.action.act_window" id="act_event_form3">
<field name="name">Events</field>
<field name="res_model">calendar.event</field>
- <field name="domain">[('parent', '=', None), ('calendar', 'in', Eval('active_ids'))]</field>
+ <field name="domain"
+ eval="[('parent', '=', None), ('calendar', 'in', Eval('active_ids'))]"
+ pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_event_form3_view1">
<field name="sequence" eval="10"/>
diff --git a/calendar_.py b/calendar_.py
index 68a25c2..6b4115e 100644
--- a/calendar_.py
+++ b/calendar_.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.
import uuid
import vobject
import dateutil.tz
@@ -11,7 +11,7 @@ from sql import Table, Column
from trytond.model import Model, ModelSQL, ModelView, fields
from trytond.tools import reduce_ids, grouped_slice
from trytond import backend
-from trytond.pyson import If, Bool, Eval
+from trytond.pyson import If, Bool, Eval, PYSONEncoder
from trytond.transaction import Transaction
from trytond.cache import Cache
from trytond.pool import Pool
@@ -121,24 +121,6 @@ class Calendar(ModelSQL, ModelView):
ical.vevent_list.extend(ical2.vevent_list)
return ical
- @property
- def _fbtype(self):
- '''
- Return the freebusy type for give transparent and status
- '''
- if self.transp == 'opaque':
- if not self.status or self.status == 'confirmed':
- fbtype = 'BUSY'
- elif self.status == 'cancelled':
- fbtype = 'FREE'
- elif self.status == 'tentative':
- fbtype = 'BUSY-TENTATIVE'
- else:
- fbtype = 'BUSY'
- else:
- fbtype = 'FREE'
- return fbtype
-
@classmethod
def freebusy(cls, calendar_id, dtstart, dtend):
'''
@@ -163,7 +145,7 @@ class Calendar(ModelSQL, ModelView):
else:
ical.vfreebusy.add('dtend').value = dtend.astimezone(tzutc)
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
events = Event.search([
['OR',
[('dtstart', '<=', dtstart),
@@ -200,7 +182,7 @@ class Calendar(ModelSQL, ModelView):
freebusy_dtstart.astimezone(tzutc),
freebusy_dtend.astimezone(tzutc))]
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
events = Event.search([
('parent', '=', None),
('dtstart', '<=', dtend),
@@ -217,7 +199,6 @@ class Calendar(ModelSQL, ModelView):
for event in events:
event_ical = event.event2ical()
if event_ical.vevent.rruleset:
- between_dtstart, between_dtend = dtstart, dtend
for freebusy_dtstart in event_ical.vevent.rruleset:
if freebusy_dtstart.replace(tzinfo=tzlocal) > dtend:
break
@@ -320,7 +301,7 @@ class Calendar(ModelSQL, ModelView):
email = attendee.value
if attendee.value.lower().startswith('mailto:'):
email = attendee.value[7:]
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
calendars = cls.search([
('owner.email', '=', email),
])
@@ -473,12 +454,6 @@ class Event(ModelSQL, ModelView):
'invisible': ~Eval('_parent_parent'),
'required': Bool(Eval('_parent_parent')),
}, depends=['parent'])
- calendar_owner = fields.Function(fields.Many2One('res.user', 'Owner'),
- 'get_calendar_field', searcher='search_calendar_field')
- calendar_read_users = fields.Function(fields.Many2One('res.user',
- 'Read Users'), 'get_calendar_field', searcher='search_calendar_field')
- calendar_write_users = fields.Function(fields.One2Many('res.user', None,
- 'Write Users'), 'get_calendar_field', searcher='search_calendar_field')
vevent = fields.Binary('vevent')
@classmethod
@@ -497,13 +472,14 @@ class Event(ModelSQL, ModelView):
# Migrate from 1.4: remove classification_public
ModelData = Pool().get('ir.model.data')
Rule = Pool().get('ir.rule')
- models_data = ModelData.search([
- ('fs_id', '=', 'rule_group_read_calendar_line3'),
- ('module', '=', module_name),
- ], limit=1)
- if models_data:
- model_data, = models_data
- Rule.delete([Rule(model_data.db_id)])
+ with Transaction().set_user(0):
+ models_data = ModelData.search([
+ ('fs_id', '=', 'rule_group_read_calendar_line3'),
+ ('module', '=', module_name),
+ ], limit=1)
+ if models_data:
+ model_data, = models_data
+ Rule.delete([Rule(model_data.db_id)])
return super(Event, cls).__register__(module_name)
@staticmethod
@@ -526,18 +502,23 @@ class Event(ModelSQL, ModelView):
def timezones():
return [(x, x) for x in pytz.common_timezones] + [('', '')]
- def get_calendar_field(self, name):
- assert name in ('calendar_owner', 'calendar_read_users',
- 'calendar_write_users'), 'Invalid name'
- name = name[9:]
- if name in ('read_users', 'write_users'):
- return [x.id for x in getattr(self.calendar, name)]
+ @property
+ def _fbtype(self):
+ '''
+ Return the freebusy type for give transparent and status
+ '''
+ if self.transp == 'opaque':
+ if not self.status or self.status == 'confirmed':
+ fbtype = 'BUSY'
+ elif self.status == 'cancelled':
+ fbtype = 'FREE'
+ elif self.status == 'tentative':
+ fbtype = 'BUSY-TENTATIVE'
+ else:
+ fbtype = 'BUSY'
else:
- return getattr(self.calendar, name).id
-
- @classmethod
- def search_calendar_field(cls, name, clause):
- return [('calendar.' + name[9:],) + tuple(clause[1:])]
+ fbtype = 'FREE'
+ return fbtype
@classmethod
def validate(cls, events):
@@ -558,6 +539,12 @@ class Event(ModelSQL, ModelView):
self.raise_user_error('invalid_recurrence', (self.rec_name,))
@classmethod
+ def view_attributes(cls):
+ return [('//page[@id="occurences"]', 'states', {
+ 'invisible': Bool(Eval('_parent_parent')),
+ })]
+
+ @classmethod
def create(cls, vlist):
pool = Pool()
Calendar = pool.get('calendar.calendar')
@@ -579,7 +566,7 @@ class Event(ModelSQL, ModelView):
if x.status != 'declined'
and x.email != event.parent.organizer]
if attendee_emails:
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
calendars = Calendar.search([
('owner.email', 'in', attendee_emails),
])
@@ -682,7 +669,7 @@ class Event(ModelSQL, ModelView):
for x in event.parent.attendees
if x.status != 'declined'
and x.email != event.parent.organizer]
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
events2 = cls.search([
('uuid', '=', event.uuid),
('id', '!=', event.id),
@@ -698,7 +685,7 @@ class Event(ModelSQL, ModelView):
if events2:
cls.write(events2, event._event2update())
if attendee_emails:
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
calendars = Calendar.search([
('owner.email', 'in', attendee_emails),
])
@@ -764,7 +751,7 @@ class Event(ModelSQL, ModelView):
attendee_emails = [x.email for x in event.parent.attendees
if x.email != event.parent.organizer]
if attendee_emails:
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
cls.delete(cls.search([
('uuid', '=', event.uuid),
('calendar.owner.email', 'in',
@@ -778,7 +765,7 @@ class Event(ModelSQL, ModelView):
organizer = event.organizer
else:
organizer = event.parent.organizer
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
events2 = cls.search([
('uuid', '=', event.uuid),
('calendar.owner.email', '=', organizer),
@@ -879,7 +866,8 @@ class Event(ModelSQL, ModelView):
res['status'] = vevent.status.value.lower()
else:
res['status'] = ''
- res['categories'] = [('remove', [c.id for c in event.categories])]
+ if event:
+ res['categories'] = [('remove', [c.id for c in event.categories])]
if hasattr(vevent, 'categories'):
with Transaction().set_context(active_test=False):
categories = Category.search([
@@ -902,7 +890,7 @@ class Event(ModelSQL, ModelView):
dict(cls.classification.selection):
res['classification'] = getattr(vevent, 'class').value.lower()
else:
- res['classification'] = 'public'
+ res['classification'] = 'private'
else:
res['classification'] = 'public'
if hasattr(vevent, 'location'):
@@ -1405,7 +1393,7 @@ class EventAttendee(AttendeeMixin, ModelSQL, ModelView):
attendee_emails = [x.email for x in event.parent.attendees
if x.email != event.parent.organizer]
if attendee_emails:
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
events = Event.search([
('uuid', '=', event.uuid),
('calendar.owner.email', 'in',
@@ -1455,7 +1443,7 @@ class EventAttendee(AttendeeMixin, ModelSQL, ModelView):
attendee_emails = [x.email for x in event.parent.attendees
if x.email != event.parent.organizer]
if attendee_emails:
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
other_attendees = cls.search([
('event.uuid', '=', event.uuid),
('event.calendar.owner.email', 'in',
@@ -1492,7 +1480,7 @@ class EventAttendee(AttendeeMixin, ModelSQL, ModelView):
attendee_emails = [x.email for x in event.parent.attendees
if x.email != event.parent.organizer]
if attendee_emails:
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
attendees = cls.search([
('event.uuid', '=', event.uuid),
('event.calendar.owner.email', 'in',
@@ -1511,7 +1499,7 @@ class EventAttendee(AttendeeMixin, ModelSQL, ModelView):
organizer = event.organizer
else:
organizer = event.parent.organizer
- with Transaction().set_context(_check_access=False):
+ with Transaction().set_user(0):
attendees = cls.search([
('event.uuid', '=', event.uuid),
('event.calendar.owner.email', '=', organizer),
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 9137db1..7adb40e 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -262,18 +262,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Календар"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Собственик"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Потребители с права за четене"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Записване на потребители"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Категории"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 9f992f8..d705d8b 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -270,18 +270,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Calendari"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Propietari"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Usuaris amb permisos de lectura"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Usuaris amb permisos d'escriptura"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Categories"
@@ -308,7 +296,7 @@ msgstr "Data final"
msgctxt "field:calendar.event,dtstart:"
msgid "Start Date"
-msgstr "Data inici"
+msgstr "Data inicial"
msgctxt "field:calendar.event,exdates:"
msgid "Exception Dates"
@@ -902,7 +890,7 @@ msgstr "Cancel·lat"
msgctxt "selection:calendar.event,status:"
msgid "Confirmed"
-msgstr "Confirmada"
+msgstr "Confirmat"
msgctxt "selection:calendar.event,status:"
msgid "Tentative"
@@ -1100,6 +1088,10 @@ msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
msgstr "Dates excloses"
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Temps"
+
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
msgstr "Regla d'excepció"
@@ -1116,6 +1108,10 @@ msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
msgstr "Dates de recurrència"
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Temps"
+
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
msgstr "Regla de recurrència"
@@ -1133,6 +1129,10 @@ msgid "Categories"
msgstr "Categories"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Temps finalització"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Esdeveniment"
@@ -1148,6 +1148,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Ocurrències"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Hora d'inici"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Ubicació"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index d7152bd..a1186e1 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -262,18 +262,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr ""
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr ""
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr ""
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr ""
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 527edfb..2323e89 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -263,18 +263,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Kalender"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Besitzer"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Benutzer mit Leseberechtigung"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Benutzer mit Schreibberechtigung"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Kategorien"
@@ -497,7 +485,7 @@ msgstr "Erstellt durch"
msgctxt "field:calendar.event.exdate,date:"
msgid "Is Date"
-msgstr "Als Datum"
+msgstr "Nur Datum verwenden"
msgctxt "field:calendar.event.exdate,datetime:"
msgid "Date"
@@ -597,7 +585,7 @@ msgstr "Bis Datum"
msgctxt "field:calendar.event.exrule,until_date:"
msgid "Is Date"
-msgstr "Als Datum"
+msgstr "Nur Datum verwenden"
msgctxt "field:calendar.event.exrule,wkst:"
msgid "Week Day"
@@ -621,7 +609,7 @@ msgstr "Erstellt durch"
msgctxt "field:calendar.event.rdate,date:"
msgid "Is Date"
-msgstr "Als Datum"
+msgstr "Nur Datum verwenden"
msgctxt "field:calendar.event.rdate,datetime:"
msgid "Date"
@@ -721,7 +709,7 @@ msgstr "Bis Datum"
msgctxt "field:calendar.event.rrule,until_date:"
msgid "Is Date"
-msgstr "Als Datum"
+msgstr "Nur Datum verwenden"
msgctxt "field:calendar.event.rrule,wkst:"
msgid "Week Day"
@@ -1099,6 +1087,10 @@ msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
msgstr "Ausnahmedaten"
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Zeit"
+
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
msgstr "Ausnahmeregel"
@@ -1115,6 +1107,10 @@ msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
msgstr "Wiederholungsdaten"
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Zeit"
+
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
msgstr "Wiederholungsregel"
@@ -1132,6 +1128,10 @@ msgid "Categories"
msgstr "Kategorien"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Endzeit"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Termin"
@@ -1147,6 +1147,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Ereignisse"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Anfangszeit"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Ort"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index dfda857..a3c35ee 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -274,18 +274,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Calendario"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Dueño"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Usuarios con lectura"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Usuarios con escritura"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Categorías"
@@ -312,7 +300,7 @@ msgstr "Fecha fin"
msgctxt "field:calendar.event,dtstart:"
msgid "Start Date"
-msgstr "Fecha inicio"
+msgstr "Fecha inicial"
msgctxt "field:calendar.event,exdates:"
msgid "Exception Dates"
@@ -1104,6 +1092,10 @@ msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
msgstr "Fechas excluidas"
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Tiempo"
+
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
msgstr "Regla de excepción"
@@ -1120,6 +1112,10 @@ msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
msgstr "Fechas de recurrencia"
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Tiempo"
+
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
msgstr "Regla de recurrencia"
@@ -1137,6 +1133,10 @@ msgid "Categories"
msgstr "Categorías"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Hora de finalización"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Evento"
@@ -1152,6 +1152,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Ocurrencias"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Hora de inicio"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Ubicación"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 591cc01..d62d4ae 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -262,18 +262,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Calendario"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Propietario"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Usuarios que pueden Leer"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Modificado por Usuario"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Categorías"
@@ -1094,6 +1082,10 @@ msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
msgstr "Fechas de Excepción"
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Tiempo"
+
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
msgstr "Regla de Excepción"
@@ -1110,6 +1102,10 @@ msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
msgstr "Fechas de Repetición"
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Tiempo"
+
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
msgstr "Regla de Repetición"
@@ -1127,6 +1123,10 @@ msgid "Categories"
msgstr "Categorías"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Hora Final"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Evento"
@@ -1142,6 +1142,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Ocurrencias"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Hora de Inicio"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Lugar"
diff --git a/locale/es_EC.po b/locale/es_EC.po
index cecfc1a..f92be61 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -12,47 +12,49 @@ msgstr "El nombre del calendario \"%s\" no debe terminar con la extensión .ics"
msgctxt "error:calendar.calendar:"
msgid "The name of calendar must be unique."
-msgstr "El nombre de calendario debe ser único."
+msgstr "El nombre del calendario debe ser único."
msgctxt "error:calendar.category:"
msgid "The name of calendar category must be unique."
-msgstr "El nombre de la categoría de calendario debe ser único."
+msgstr "El nombre de la categoría del calendario debe ser único."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Day\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Día\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por día\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Hour\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Hora\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por hora\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Minute\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Minuto\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por minuto\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Month Day\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Día del Mes\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por día del mes\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Month\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Mes\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por mes\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Position\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Posición\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por ubicación\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Second\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Segundo\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por segundo\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Week Number\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Número de la Semana\" en regla de recurrencia \"%s\""
+msgstr ""
+"El campo \"Por número de la semana\" de la regla de recurrencia \"%s\" no es"
+" válido."
msgctxt "error:calendar.event.exrule:"
msgid "Invalid \"By Year Day\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Día del Año\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por día del año\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.exrule:"
msgid "Only one of \"until\" and \"count\" can be set."
@@ -60,39 +62,41 @@ msgstr "Solo un \"hasta\" y \"contar\" pude ser establecido!"
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Day\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Día\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por día\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Hour\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Hora\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por hora\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Minute\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Minuto\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por minuto\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Month Day\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Día del Mes\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por día del mes\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Month\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Mes\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por mes\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Position\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Posición\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por ubicación\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Second\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Segundo\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por segundo\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Week Number\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Número de Semana\" en regla de recurrencia \"%s\""
+msgstr ""
+"El campo \"Por número de la semana\" de la regla de recurrencia \"%s\" no es"
+" válido."
msgctxt "error:calendar.event.rrule:"
msgid "Invalid \"By Year Day\" in recurrence rule \"%s\""
-msgstr "No válido campo \"Por Día del Año\" en regla de recurrencia \"%s\""
+msgstr "El campo \"Por día del año\" de la regla de recurrencia \"%s\" no es válido."
msgctxt "error:calendar.event.rrule:"
msgid "Only one of \"until\" and \"count\" can be set."
@@ -112,11 +116,11 @@ msgstr "El nombre de la ubicación del calendario bede ser único."
msgctxt "field:calendar.calendar,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.calendar,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.calendar,description:"
msgid "Description"
@@ -144,15 +148,15 @@ msgstr "Nombre"
msgctxt "field:calendar.calendar,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.calendar,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.calendar,write_users:"
msgid "Write Users"
-msgstr "Usuarios con Permisos de Escritura"
+msgstr "Usuarios con permisos de escritura"
msgctxt "field:calendar.calendar-read-res.user,calendar:"
msgid "Calendar"
@@ -160,11 +164,11 @@ msgstr "Calendario"
msgctxt "field:calendar.calendar-read-res.user,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.calendar-read-res.user,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.calendar-read-res.user,id:"
msgid "ID"
@@ -180,11 +184,11 @@ msgstr "Usuario"
msgctxt "field:calendar.calendar-read-res.user,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.calendar-read-res.user,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.calendar-write-res.user,calendar:"
msgid "Calendar"
@@ -192,11 +196,11 @@ msgstr "Calendario"
msgctxt "field:calendar.calendar-write-res.user,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.calendar-write-res.user,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.calendar-write-res.user,id:"
msgid "ID"
@@ -212,19 +216,19 @@ msgstr "Usuario"
msgctxt "field:calendar.calendar-write-res.user,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.calendar-write-res.user,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.category,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.category,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.category,id:"
msgid "ID"
@@ -240,11 +244,11 @@ msgstr "Nombre"
msgctxt "field:calendar.category,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.category,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event,alarms:"
msgid "Alarms"
@@ -262,18 +266,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Calendario"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Propietario"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Usuarios con permisos de lectura"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Usuarios con Permisos de Escritura"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Categorías"
@@ -284,11 +276,11 @@ msgstr "Clasificación"
msgctxt "field:calendar.event,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event,description:"
msgid "Description"
@@ -296,19 +288,19 @@ msgstr "Descripción"
msgctxt "field:calendar.event,dtend:"
msgid "End Date"
-msgstr "Fecha Final"
+msgstr "Fecha de Fin"
msgctxt "field:calendar.event,dtstart:"
msgid "Start Date"
-msgstr "Fecha Inicial"
+msgstr "Fecha de Inicio"
msgctxt "field:calendar.event,exdates:"
msgid "Exception Dates"
-msgstr "Fechas de Excepción"
+msgstr "Fechas de excepción"
msgctxt "field:calendar.event,exrules:"
msgid "Exception Rules"
-msgstr "Reglas de Excepción"
+msgstr "Reglas de excepción"
msgctxt "field:calendar.event,id:"
msgid "ID"
@@ -332,7 +324,7 @@ msgstr "Padre"
msgctxt "field:calendar.event,rdates:"
msgid "Recurrence Dates"
-msgstr "Fechas de Recurrencia"
+msgstr "Fechas de recurrencia"
msgctxt "field:calendar.event,rec_name:"
msgid "Name"
@@ -344,7 +336,7 @@ msgstr "Recurrencia"
msgctxt "field:calendar.event,rrules:"
msgid "Recurrence Rules"
-msgstr "Reglas de Recurrencia"
+msgstr "Reglas de recurrencia"
msgctxt "field:calendar.event,sequence:"
msgid "Sequence"
@@ -364,7 +356,7 @@ msgstr "Zona horaria"
msgctxt "field:calendar.event,transp:"
msgid "Time Transparency"
-msgstr "Tiempo de Transparencia"
+msgstr "Tiempo de transparencia"
msgctxt "field:calendar.event,uuid:"
msgid "UUID"
@@ -376,11 +368,11 @@ msgstr "vevento"
msgctxt "field:calendar.event,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event-calendar.category,category:"
msgid "Category"
@@ -388,11 +380,11 @@ msgstr "Categoría"
msgctxt "field:calendar.event-calendar.category,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event-calendar.category,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event-calendar.category,event:"
msgid "Event"
@@ -408,19 +400,19 @@ msgstr "Nombre"
msgctxt "field:calendar.event-calendar.category,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event-calendar.category,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event.alarm,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event.alarm,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event.alarm,event:"
msgid "Event"
@@ -440,11 +432,11 @@ msgstr "valarm"
msgctxt "field:calendar.event.alarm,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event.alarm,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event.attendee,attendee:"
msgid "attendee"
@@ -452,15 +444,15 @@ msgstr "asistente"
msgctxt "field:calendar.event.attendee,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event.attendee,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event.attendee,email:"
msgid "Email"
-msgstr "Correo Electrónico"
+msgstr "Correo electrónico"
msgctxt "field:calendar.event.attendee,event:"
msgid "Event"
@@ -476,27 +468,27 @@ msgstr "Nombre"
msgctxt "field:calendar.event.attendee,status:"
msgid "Participation Status"
-msgstr "Estado de Participación"
+msgstr "Estado de participación"
msgctxt "field:calendar.event.attendee,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event.attendee,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event.exdate,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event.exdate,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event.exdate,date:"
msgid "Is Date"
-msgstr "Es una Fecha"
+msgstr "Es una fecha"
msgctxt "field:calendar.event.exdate,datetime:"
msgid "Date"
@@ -516,47 +508,47 @@ msgstr "Nombre"
msgctxt "field:calendar.event.exdate,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event.exdate,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event.exrule,byday:"
msgid "By Day"
-msgstr "Por Día"
+msgstr "Por día"
msgctxt "field:calendar.event.exrule,byhour:"
msgid "By Hour"
-msgstr "Por Hora"
+msgstr "Por hora"
msgctxt "field:calendar.event.exrule,byminute:"
msgid "By Minute"
-msgstr "Por Minuto"
+msgstr "Por minuto"
msgctxt "field:calendar.event.exrule,bymonth:"
msgid "By Month"
-msgstr "Por Mes"
+msgstr "Por mes"
msgctxt "field:calendar.event.exrule,bymonthday:"
msgid "By Month Day"
-msgstr "Por Día del Mes"
+msgstr "Por día del mes"
msgctxt "field:calendar.event.exrule,bysecond:"
msgid "By Second"
-msgstr "Por Segundo"
+msgstr "Por segundo"
msgctxt "field:calendar.event.exrule,bysetpos:"
msgid "By Position"
-msgstr "Por Posición"
+msgstr "Por ubicación"
msgctxt "field:calendar.event.exrule,byweekno:"
msgid "By Week Number"
-msgstr "Por Número de la Semana"
+msgstr "Por número de la semana"
msgctxt "field:calendar.event.exrule,byyearday:"
msgid "By Year Day"
-msgstr "Por Día del Año"
+msgstr "Por día del año"
msgctxt "field:calendar.event.exrule,count:"
msgid "Count"
@@ -564,11 +556,11 @@ msgstr "Contar"
msgctxt "field:calendar.event.exrule,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event.exrule,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event.exrule,event:"
msgid "Event"
@@ -592,35 +584,35 @@ msgstr "Nombre"
msgctxt "field:calendar.event.exrule,until:"
msgid "Until Date"
-msgstr "Hasta la Fecha"
+msgstr "Hasta la fecha"
msgctxt "field:calendar.event.exrule,until_date:"
msgid "Is Date"
-msgstr "Es una Fecha"
+msgstr "Es una fecha"
msgctxt "field:calendar.event.exrule,wkst:"
msgid "Week Day"
-msgstr "Día de la Semana"
+msgstr "Día de la semana"
msgctxt "field:calendar.event.exrule,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event.exrule,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event.rdate,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event.rdate,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event.rdate,date:"
msgid "Is Date"
-msgstr "Es una Fecha"
+msgstr "Es una fecha"
msgctxt "field:calendar.event.rdate,datetime:"
msgid "Date"
@@ -640,47 +632,47 @@ msgstr "Nombre"
msgctxt "field:calendar.event.rdate,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event.rdate,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.event.rrule,byday:"
msgid "By Day"
-msgstr "Por Día"
+msgstr "Por día"
msgctxt "field:calendar.event.rrule,byhour:"
msgid "By Hour"
-msgstr "Por Hora"
+msgstr "Por hora"
msgctxt "field:calendar.event.rrule,byminute:"
msgid "By Minute"
-msgstr "Por Minuto"
+msgstr "Por minuto"
msgctxt "field:calendar.event.rrule,bymonth:"
msgid "By Month"
-msgstr "Por Mes"
+msgstr "Por mes"
msgctxt "field:calendar.event.rrule,bymonthday:"
msgid "By Month Day"
-msgstr "Por Día del Mes"
+msgstr "Por día del mes"
msgctxt "field:calendar.event.rrule,bysecond:"
msgid "By Second"
-msgstr "Por Segundo"
+msgstr "Por segundo"
msgctxt "field:calendar.event.rrule,bysetpos:"
msgid "By Position"
-msgstr "Por Posición"
+msgstr "Por ubicación"
msgctxt "field:calendar.event.rrule,byweekno:"
msgid "By Week Number"
-msgstr "Por Número de la Semana"
+msgstr "Por número de la semana"
msgctxt "field:calendar.event.rrule,byyearday:"
msgid "By Year Day"
-msgstr "Por Día del Año"
+msgstr "Por día del año"
msgctxt "field:calendar.event.rrule,count:"
msgid "Count"
@@ -688,11 +680,11 @@ msgstr "Contar"
msgctxt "field:calendar.event.rrule,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.event.rrule,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.event.rrule,event:"
msgid "Event"
@@ -716,31 +708,31 @@ msgstr "Nombre"
msgctxt "field:calendar.event.rrule,until:"
msgid "Until Date"
-msgstr "Hasta la Fecha"
+msgstr "Hasta la fecha"
msgctxt "field:calendar.event.rrule,until_date:"
msgid "Is Date"
-msgstr "Es una Fecha"
+msgstr "Es una fecha"
msgctxt "field:calendar.event.rrule,wkst:"
msgid "Week Day"
-msgstr "Día de la Semana"
+msgstr "Día de la semana"
msgctxt "field:calendar.event.rrule,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.event.rrule,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:calendar.location,create_date:"
msgid "Create Date"
-msgstr "Fecha de Creación"
+msgstr "Fecha de creación"
msgctxt "field:calendar.location,create_uid:"
msgid "Create User"
-msgstr "Creado por Usuario"
+msgstr "Creado por usuario"
msgctxt "field:calendar.location,id:"
msgid "ID"
@@ -756,11 +748,11 @@ msgstr "Nombre"
msgctxt "field:calendar.location,write_date:"
msgid "Write Date"
-msgstr "Fecha de Modificación"
+msgstr "Fecha de modificación"
msgctxt "field:calendar.location,write_uid:"
msgid "Write User"
-msgstr "Modificado por Usuario"
+msgstr "Modificado por usuario"
msgctxt "field:res.user,calendars:"
msgid "Calendars"
@@ -776,23 +768,19 @@ msgstr "Identificador Universal Único"
msgctxt "help:calendar.event.exdate,date:"
msgid "Ignore time of field \"Date\", but handle as date only."
-msgstr "Ignorar la hora del campo \"Fecha\", pero manejarla como fecha solamente."
+msgstr "Ignorar la hora del campo \"Fecha\" y considerar sólo la fecha."
msgctxt "help:calendar.event.exrule,until_date:"
msgid "Ignore time of field \"Until Date\", but handle as date only."
-msgstr ""
-"Ignorar la hora del campo \"Hasta la Fecha\", pero manejarla como fecha "
-"solamente."
+msgstr "Ignorar la hora del campo \"Hasta la fecha\" y considerar sólo la fecha."
msgctxt "help:calendar.event.rdate,date:"
msgid "Ignore time of field \"Date\", but handle as date only."
-msgstr "Ignorar la hora del campo \"Fecha\", pero manejarla como fecha solamente."
+msgstr "Ignorar la hora del campo \"Fecha\" y considerar sólo la fecha."
msgctxt "help:calendar.event.rrule,until_date:"
msgid "Ignore time of field \"Until Date\", but handle as date only."
-msgstr ""
-"Ignorar la hora del campo \"Hasta la Fecha\", pero manejarla como fecha "
-"solamente."
+msgstr "Ignorar la hora del campo \"Hasta la fecha\" y considerar sólo la fecha."
msgctxt "model:calendar.calendar,name:"
msgid "Calendar"
@@ -828,19 +816,19 @@ msgstr "Asistente"
msgctxt "model:calendar.event.exdate,name:"
msgid "Exception Date"
-msgstr "Fecha de Excepción"
+msgstr "Fecha de excepción"
msgctxt "model:calendar.event.exrule,name:"
msgid "Exception Rule"
-msgstr "Regla de Excepción"
+msgstr "Regla de excepción"
msgctxt "model:calendar.event.rdate,name:"
msgid "Recurrence Date"
-msgstr "Fecha de Recurrencia"
+msgstr "Fecha de recurrencia"
msgctxt "model:calendar.event.rrule,name:"
msgid "Recurrence Rule"
-msgstr "Regla de Recurrencia"
+msgstr "Regla de recurrencia"
msgctxt "model:calendar.location,name:"
msgid "Location"
@@ -900,7 +888,7 @@ msgstr "Confirmado"
msgctxt "selection:calendar.event,status:"
msgid "Tentative"
-msgstr "Tentativa"
+msgstr "Tentativo"
msgctxt "selection:calendar.event,transp:"
msgid "Opaque"
@@ -920,7 +908,7 @@ msgstr "Aceptado"
msgctxt "selection:calendar.event.attendee,status:"
msgid "Declined"
-msgstr "Declinado"
+msgstr "Rechazado"
msgctxt "selection:calendar.event.attendee,status:"
msgid "Delegated"
@@ -928,11 +916,11 @@ msgstr "Delegado"
msgctxt "selection:calendar.event.attendee,status:"
msgid "Needs Action"
-msgstr "Necesita una Acción"
+msgstr "Necesita una acción"
msgctxt "selection:calendar.event.attendee,status:"
msgid "Tentative"
-msgstr "Tentativa"
+msgstr "Tentativo"
msgctxt "selection:calendar.event.exrule,freq:"
msgid "Daily"
@@ -940,11 +928,11 @@ msgstr "Diariamente"
msgctxt "selection:calendar.event.exrule,freq:"
msgid "Hourly"
-msgstr "Cada Hora"
+msgstr "Cada hora"
msgctxt "selection:calendar.event.exrule,freq:"
msgid "Minutely"
-msgstr "Cada Minuto"
+msgstr "Cada minuto"
msgctxt "selection:calendar.event.exrule,freq:"
msgid "Monthly"
@@ -952,7 +940,7 @@ msgstr "Mensualmente"
msgctxt "selection:calendar.event.exrule,freq:"
msgid "Secondly"
-msgstr "Cada Segundo"
+msgstr "Cada segundo"
msgctxt "selection:calendar.event.exrule,freq:"
msgid "Weekly"
@@ -1000,11 +988,11 @@ msgstr "Diariamente"
msgctxt "selection:calendar.event.rrule,freq:"
msgid "Hourly"
-msgstr "Cada Hora"
+msgstr "Cada hora"
msgctxt "selection:calendar.event.rrule,freq:"
msgid "Minutely"
-msgstr "Cada Minuto"
+msgstr "Cada minuto"
msgctxt "selection:calendar.event.rrule,freq:"
msgid "Monthly"
@@ -1012,7 +1000,7 @@ msgstr "Mensualmente"
msgctxt "selection:calendar.event.rrule,freq:"
msgid "Secondly"
-msgstr "Cada Segundo"
+msgstr "Cada segundo"
msgctxt "selection:calendar.event.rrule,freq:"
msgid "Weekly"
@@ -1056,7 +1044,7 @@ msgstr "Miércoles"
msgctxt "view:calendar.calendar:"
msgid "Access Permissions"
-msgstr "Permisos de Acceso"
+msgstr "Permisos de acceso"
msgctxt "view:calendar.calendar:"
msgid "Calendar"
@@ -1088,35 +1076,43 @@ msgstr "Asistentes"
msgctxt "view:calendar.event.exdate:"
msgid "Exception Date"
-msgstr "Fecha de Excepción"
+msgstr "Fecha de excepción"
msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
-msgstr "Fechas de Excepción"
+msgstr "Fechas de excepción"
+
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Tiempo"
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
-msgstr "Regla de Excepción"
+msgstr "Regla de excepción"
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rules"
-msgstr "Reglas de Excepción"
+msgstr "Reglas de excepción"
msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Date"
-msgstr "Fecha de Recurrencia"
+msgstr "Fecha de recurrencia"
msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
-msgstr "Fechas de Recurrencia"
+msgstr "Fechas de recurrencia"
+
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Tiempo"
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
-msgstr "Regla de Recurrencia"
+msgstr "Regla de recurrencia"
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rules"
-msgstr "Reglas de Recurrencia"
+msgstr "Reglas de recurrencia"
msgctxt "view:calendar.event:"
msgid "Attendees"
@@ -1127,6 +1123,10 @@ msgid "Categories"
msgstr "Categorías"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Hora de fin"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Evento"
@@ -1142,6 +1142,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Ocurrencias"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Hora de inicio"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Ubicación"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index d6c2baa..29c8278 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -274,18 +274,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Calendario"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Propietario"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Usuarios con permisos de lectura"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Usuarios con permisos de escritura"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Categorías"
@@ -1102,6 +1090,10 @@ msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
msgstr "Fechas excluidas"
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Tiempo"
+
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
msgstr "Regla de excepción"
@@ -1118,6 +1110,10 @@ msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
msgstr "Fechas de recurrencia"
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Tiempo"
+
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
msgstr "Regla de recurrencia"
@@ -1135,6 +1131,10 @@ msgid "Categories"
msgstr "Categorías"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Hora final"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Evento"
@@ -1150,6 +1150,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Ocurrencias"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Hora de inicio"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Ubicación"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index c437d1b..43f793d 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -264,18 +264,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Calendrier"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Propriétaire"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Utilisateurs en lecture"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Utilisateurs en écriture"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Catégories"
@@ -1094,6 +1082,10 @@ msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
msgstr "Dates d'exception"
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Heure"
+
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
msgstr "Règle d'exception"
@@ -1110,6 +1102,10 @@ msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
msgstr "Dates de récurrence"
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Heure"
+
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
msgstr "Règle de récurrence"
@@ -1127,6 +1123,10 @@ msgid "Categories"
msgstr "Catégories"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Heure de fin"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Événement"
@@ -1142,6 +1142,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Occurrences"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Heure de début"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Emplacement"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index 354dfa1..660890e 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -271,18 +271,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr ""
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr ""
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr ""
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr ""
-
#, fuzzy
msgctxt "field:calendar.event,categories:"
msgid "Categories"
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index 107ac2e..7049610 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -262,18 +262,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Календарь"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Владелец"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Пользователи могут читать"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Пользователи могут писать"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Категория"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index 00f2d17..bd490a5 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -262,18 +262,6 @@ msgctxt "field:calendar.event,calendar:"
msgid "Calendar"
msgstr "Koledar"
-msgctxt "field:calendar.event,calendar_owner:"
-msgid "Owner"
-msgstr "Imetnik"
-
-msgctxt "field:calendar.event,calendar_read_users:"
-msgid "Read Users"
-msgstr "Bralci"
-
-msgctxt "field:calendar.event,calendar_write_users:"
-msgid "Write Users"
-msgstr "Zapisovalci"
-
msgctxt "field:calendar.event,categories:"
msgid "Categories"
msgstr "Kategorije"
@@ -1090,6 +1078,10 @@ msgctxt "view:calendar.event.exdate:"
msgid "Exception Dates"
msgstr "Izjemni datumi"
+msgctxt "view:calendar.event.exdate:"
+msgid "Time"
+msgstr "Čas"
+
msgctxt "view:calendar.event.exrule:"
msgid "Exception Rule"
msgstr "Izjemno pravilo"
@@ -1106,6 +1098,10 @@ msgctxt "view:calendar.event.rdate:"
msgid "Recurrence Dates"
msgstr "Datumi ponovitev"
+msgctxt "view:calendar.event.rdate:"
+msgid "Time"
+msgstr "Čas"
+
msgctxt "view:calendar.event.rrule:"
msgid "Recurrence Rule"
msgstr "Pravilo ponovitve"
@@ -1123,6 +1119,10 @@ msgid "Categories"
msgstr "Kategorije"
msgctxt "view:calendar.event:"
+msgid "End Time"
+msgstr "Konec"
+
+msgctxt "view:calendar.event:"
msgid "Event"
msgstr "Dogodek"
@@ -1138,6 +1138,10 @@ msgctxt "view:calendar.event:"
msgid "Occurences"
msgstr "Pojavljanje"
+msgctxt "view:calendar.event:"
+msgid "Start Time"
+msgstr "Začetek"
+
msgctxt "view:calendar.location:"
msgid "Location"
msgstr "Lokacija"
diff --git a/res.py b/res.py
index cd9aee4..52a2a78 100644
--- a/res.py
+++ b/res.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.model import fields
from trytond.pool import PoolMeta
from trytond.pyson import Bool, Eval
diff --git a/setup.py b/setup.py
index eba837b..003cdc6 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
@@ -87,6 +87,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 84d6a76..9779d1f 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_calendar import suite
diff --git a/tests/scenario_calendar.py b/tests/scenario_calendar.py
index d05c3d4..768672a 100644
--- a/tests/scenario_calendar.py
+++ b/tests/scenario_calendar.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 argparse import ArgumentParser
from urlparse import urlparse
import unittest
diff --git a/tests/test_calendar.py b/tests/test_calendar.py
index 70a076b..659eeb9 100644
--- a/tests/test_calendar.py
+++ b/tests/test_calendar.py
@@ -1,23 +1,13 @@
-#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 trytond.tests.test_tryton
-from trytond.tests.test_tryton import test_view, test_depends
+from trytond.tests.test_tryton import ModuleTestCase
-class CalendarTestCase(unittest.TestCase):
+class CalendarTestCase(ModuleTestCase):
'Test Calendar module'
-
- def setUp(self):
- trytond.tests.test_tryton.install_module('calendar')
-
- def test0005views(self):
- 'Test views'
- test_view('calendar')
-
- def test0006depends(self):
- 'Test depends'
- test_depends()
+ module = 'calendar'
def suite():
diff --git a/tryton.cfg b/tryton.cfg
index f6bec18..2f680bb 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=3.4.1
+version=3.6.0
depends:
ir
res
diff --git a/trytond_calendar.egg-info/PKG-INFO b/trytond_calendar.egg-info/PKG-INFO
index fb7dddb..099f61e 100644
--- a/trytond_calendar.egg-info/PKG-INFO
+++ b/trytond_calendar.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-calendar
-Version: 3.4.1
+Version: 3.6.0
Summary: Tryton module for CalDAV
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_calendar
================
@@ -66,4 +66,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_calendar.egg-info/requires.txt b/trytond_calendar.egg-info/requires.txt
index 1b80913..8cc5d37 100644
--- a/trytond_calendar.egg-info/requires.txt
+++ b/trytond_calendar.egg-info/requires.txt
@@ -3,7 +3,7 @@ PyWebDAV >= 0.9.8
python-dateutil
pytz
python-sql
-trytond >= 3.4, < 3.5
+trytond >= 3.6, < 3.7
[test]
caldav
\ No newline at end of file
diff --git a/view/event_form.xml b/view/event_form.xml
index 5eced8a..f337a5e 100644
--- a/view/event_form.xml
+++ b/view/event_form.xml
@@ -35,8 +35,7 @@ this repository contains the full copyright notices and license terms. -->
<field name="organizer"/>
<field name="attendees" colspan="4"/>
</page>
- <page string="Occurences" id="occurences"
- states="{'invisible': Bool(Eval('_parent_parent'))}">
+ <page string="Occurences" id="occurences">
<field name="rrules" colspan="2"/>
<field name="rdates" colspan="2"/>
<field name="exrules" colspan="2"/>
diff --git a/view/event_tree.xml b/view/event_tree.xml
index aba889b..cde3e24 100644
--- a/view/event_tree.xml
+++ b/view/event_tree.xml
@@ -5,7 +5,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="calendar"/>
<field name="summary"/>
<field name="all_day"/>
- <field name="dtstart"/>
- <field name="dtend"/>
+ <field name="dtstart" widget="date"/>
+ <field name="dtstart" widget="time" string="Start Time"/>
+ <field name="dtend" widget="date"/>
+ <field name="dtend" widget="time" string="End Time"/>
<field name="status"/>
</tree>
diff --git a/view/event_tree_occurence.xml b/view/event_tree_occurence.xml
index 94d560f..1e9a039 100644
--- a/view/event_tree_occurence.xml
+++ b/view/event_tree_occurence.xml
@@ -3,9 +3,12 @@
this repository contains the full copyright notices and license terms. -->
<tree string="Events">
<field name="summary"/>
- <field name="recurrence"/>
+ <field name="recurrence" widget="date"/>
+ <field name="recurrence" widget="time"/>
<field name="all_day"/>
- <field name="dtstart"/>
- <field name="dtend"/>
+ <field name="dtstart" widget="date"/>
+ <field name="dtstart" widget="time" string="Start Time"/>
+ <field name="dtend" widget="date"/>
+ <field name="dtend" widget="time" string="End Time"/>
<field name="status"/>
</tree>
diff --git a/view/exdate_tree.xml b/view/exdate_tree.xml
index 6b353ff..27c1241 100644
--- a/view/exdate_tree.xml
+++ b/view/exdate_tree.xml
@@ -3,6 +3,7 @@
this repository contains the full copyright notices and license terms. -->
<tree string="Exception Dates">
<field name="event"/>
- <field name="datetime"/>
+ <field name="datetime" widget="date"/>
+ <field name="datetime" widget="time" string="Time"/>
<field name="date"/>
</tree>
diff --git a/view/rdate_tree.xml b/view/rdate_tree.xml
index adfd8ab..af762df 100644
--- a/view/rdate_tree.xml
+++ b/view/rdate_tree.xml
@@ -3,6 +3,7 @@
this repository contains the full copyright notices and license terms. -->
<tree string="Recurrence Dates">
<field name="event"/>
- <field name="datetime"/>
+ <field name="datetime" widget="date"/>
+ <field name="datetime" widget="time" string="Time"/>
<field name="date"/>
</tree>
diff --git a/webdav.py b/webdav.py
index e0d3350..1419e7b 100644
--- a/webdav.py
+++ b/webdav.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.
import vobject
import urllib
from sql.functions import Extract
--
tryton-modules-calendar
More information about the tryton-debian-vcs
mailing list