Merged in ical-interface (pull request #24)

Removed last trace of timezone.
Fixed start/end time.
This commit is contained in:
Tom Price
2015-04-24 15:02:50 +01:00
4 changed files with 17 additions and 10 deletions

View File

@@ -12,7 +12,6 @@ class CalendarICS(ICalFeed):
#Metadata which is passed on to clients
product_id = 'PyRIGS'
title = 'PyRIGS Calendar'
timezone = 'UTC'
file_name = "rigs.ics"
def items(self):
@@ -49,7 +48,7 @@ class CalendarICS(ICalFeed):
startDateTime = item.meet_at.replace(tzinfo=None)
elif item.access_at:
startDateTime = item.access_at.replace(tzinfo=None)
elif item.start_time:
elif item.has_start_time:
startDateTime = datetime.datetime.combine(item.start_date,item.start_time).replace(tzinfo=None)
else:
startDateTime = item.start_date
@@ -64,9 +63,9 @@ class CalendarICS(ICalFeed):
if item.end_date:
endDateTime = item.end_date
if item.start_time and item.end_time: # don't allow an event with specific end but no specific start
if item.has_start_time and item.has_end_time: # don't allow an event with specific end but no specific start
endDateTime = datetime.datetime.combine(endDateTime,item.end_time).replace(tzinfo=None)
elif item.start_time: # if there's a start time specified then an end time should also be specified
elif item.has_end_time: # if there's a start time specified then an end time should also be specified
endDateTime = datetime.datetime.combine(endDateTime+datetime.timedelta(days=1),datetime.time(00, 00)).replace(tzinfo=None)
#elif item.end_time: # end time but no start time - this is weird - don't think ICS will like it so ignoring
# do nothing
@@ -95,9 +94,9 @@ class CalendarICS(ICalFeed):
if item.access_at:
desc += 'Access At = ' + item.access_at.strftime('%Y-%m-%d %H:%M') + '\n'
if item.start_date:
desc += 'Event Start = ' + item.start_date.strftime('%Y-%m-%d') + ((' '+item.start_time.strftime('%H:%M')) if item.start_time else '') + '\n'
desc += 'Event Start = ' + item.start_date.strftime('%Y-%m-%d') + ((' '+item.start_time.strftime('%H:%M')) if item.has_start_time else '') + '\n'
if item.end_date:
desc += 'Event End = ' + item.end_date.strftime('%Y-%m-%d') + ((' '+item.end_time.strftime('%H:%M')) if item.end_time else '') + '\n'
desc += 'Event End = ' + item.end_date.strftime('%Y-%m-%d') + ((' '+item.end_time.strftime('%H:%M')) if item.has_end_time else '') + '\n'
desc += '\n'
if item.description:

View File

@@ -303,6 +303,14 @@ class Event(models.Model, RevisionMixin):
def confirmed(self):
return (self.status == self.BOOKED or self.status == self.CONFIRMED)
@property
def has_start_time(self):
return self.start_time is not None
@property
def has_end_time(self):
return self.end_time is not None
objects = EventManager()
def get_absolute_url(self):

View File

@@ -62,14 +62,14 @@
<dt>Crew meet</dt>
<dd>{{ event.meet_at|date:"H:i" }}<br/>{{ event.meet_at|date:"(Y-m-d)" }}</dd>
{% endif %}
{% if event.start_time %}
{% if event.has_start_time %}
<dt>Event starts</dt>
<dd>
{{ event.start_time|date:"H:i" }}<br/>
{{ event.start_date|date:"(Y-m-d)" }}<br/>
</dd>
{% endif %}
{% if event.end_time%}{% if event.start_date != event.end_date or event.start_time != event.end_time %}
{% if event.has_end_time%}{% if event.start_date != event.end_date or event.start_time != event.end_time %}
<dt>Event ends</dt>
<dd>
{{ event.end_time|date:"H:i" }}<br/>

View File

@@ -299,13 +299,13 @@ class SecureAPIRequest(generic.View):
if item.start_date:
data['start_date'] = item.start_date.strftime('%Y-%m-%d')
if item.start_time:
if item.has_start_time:
data['start_time'] = item.start_time.strftime('%H:%M:%SZ')
if item.end_date:
data['end_date'] = item.end_date.strftime('%Y-%m-%d')
if item.end_time:
if item.has_end_time:
data['end_time'] = item.end_time.strftime('%H:%M:%SZ')
if item.meet_at: