Merged in ical-interface (pull request #19)

Stripped out all timezone references & added help info
This commit is contained in:
Tom Price
2015-04-24 00:46:54 +01:00
2 changed files with 12 additions and 9 deletions

View File

@@ -18,7 +18,7 @@ class CalendarICS(ICalFeed):
def items(self):
#include events from up to 1 year ago
start = datetime.datetime.now() - datetime.timedelta(days=365)
filter = Q(start_date__gte=start)
filter = Q(start_date__gte=start) & ~Q(status=models.Event.CANCELLED)
return models.Event.objects.filter(filter).order_by('-start_date').select_related('person', 'organisation', 'venue', 'mic')
@@ -46,11 +46,11 @@ class CalendarICS(ICalFeed):
def item_start_datetime(self, item):
#set start date to the earliest defined time for the event
if item.meet_at:
startDateTime = item.meet_at
startDateTime = item.meet_at.replace(tzinfo=None)
elif item.access_at:
startDateTime = item.access_at
startDateTime = item.access_at.replace(tzinfo=None)
elif item.start_time:
startDateTime = datetime.datetime.combine(item.start_date,item.start_time)
startDateTime = datetime.datetime.combine(item.start_date,item.start_time).replace(tzinfo=None)
else:
startDateTime = item.start_date
@@ -65,9 +65,9 @@ class CalendarICS(ICalFeed):
endDateTime = item.end_date
if item.start_time and item.end_time: # don't allow an event with specific end but no specific start
endDateTime = datetime.datetime.combine(endDateTime,item.end_time)
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
endDateTime = datetime.datetime.combine(endDateTime+datetime.timedelta(days=1),datetime.time(00, 00))
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
@@ -106,7 +106,7 @@ class CalendarICS(ICalFeed):
desc += 'Notes:\n'+item.notes+'\n\n'
base_url = "https://pyrigs.nottinghamtec.co.uk"
desc += 'URL = '+base_url+str(reverse_lazy('event_detail',kwargs={'pk':item.pk}))
desc += 'URL = '+base_url+str(item.get_absolute_url())
return desc
@@ -119,7 +119,7 @@ class CalendarICS(ICalFeed):
# return ''
def item_updated(self, item): # some ical clients will display this
return item.last_edited_at
return item.last_edited_at.replace(tzinfo=None)
def item_guid(self, item): # use the rig-id as the ical unique event identifier
return item.pk

View File

@@ -48,7 +48,7 @@
{% if object.pk == user.pk %}
<div class="pull-right">
<a href="{% url 'reset_api_key' %}" class="btn">
<a href="{% url 'reset_api_key' %}" class="btn btn-default">
{% if user.api_key %}Reset API Key{% else %}Generate API Key{% endif %}
<span class="glyphicon glyphicon-repeat"></span>
</a>
@@ -70,9 +70,12 @@
<dd>
{% if user.api_key %}
<pre>http{{ request.is_secure|yesno:"s,"}}://{{ request.get_host }}{% url 'ics_calendar' api_pk=user.pk api_key=user.api_key %}</pre>
<small><a href="http://www.google.com/calendar/render?cid=http{{ request.is_secure|yesno:"s,"}}://{{ request.get_host }}{% url 'ics_calendar' api_pk=user.pk api_key=user.api_key %}">Click here</a> to add to google calendar.<br/>
To sync from google calendar to mobile device, visit <a href="https://www.google.com/calendar/syncselect" target="_blank">this page</a> on your device and tick "PyRIGS Calendar".</small>
{% else %}
<pre>No API Key Generated</pre>
{% endif %}
</dd>
</dl>