mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-28 02:42:17 +00:00
Attempt using ical extension - not working
This commit is contained in:
@@ -114,6 +114,9 @@ urlpatterns = patterns('',
|
|||||||
url(r'^user/edit/$', login_required(views.ProfileUpdateSelf.as_view()),
|
url(r'^user/edit/$', login_required(views.ProfileUpdateSelf.as_view()),
|
||||||
name='profile_update_self'),
|
name='profile_update_self'),
|
||||||
|
|
||||||
|
# ICS Calendar
|
||||||
|
url(r'^ics/$', (views.CalendarICS()), name="ics_calendar"),
|
||||||
|
|
||||||
# API
|
# API
|
||||||
url(r'^api/(?P<model>\w+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"),
|
url(r'^api/(?P<model>\w+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"),
|
||||||
url(r'^api/(?P<model>\w+)/(?P<pk>\d+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"),
|
url(r'^api/(?P<model>\w+)/(?P<pk>\d+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"),
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ from django.shortcuts import get_object_or_404
|
|||||||
from django.core import serializers
|
from django.core import serializers
|
||||||
import simplejson
|
import simplejson
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
from django_ical.views import ICalFeed
|
||||||
|
|
||||||
from RIGS import models, forms
|
from RIGS import models, forms
|
||||||
|
|
||||||
@@ -263,6 +264,91 @@ class SecureAPIRequest(generic.View):
|
|||||||
|
|
||||||
return HttpResponse(model)
|
return HttpResponse(model)
|
||||||
|
|
||||||
|
class CalendarICS(ICalFeed):
|
||||||
|
"""
|
||||||
|
A simple event calender
|
||||||
|
"""
|
||||||
|
product_id = '-//example.com//Example//EN'
|
||||||
|
timezone = 'UTC'
|
||||||
|
file_name = "event.ics"
|
||||||
|
|
||||||
|
def items(self):
|
||||||
|
return models.Event.objects.all().order_by('-start_date')
|
||||||
|
|
||||||
|
def item_title(self, item):
|
||||||
|
title = ''
|
||||||
|
if item.cancelled:
|
||||||
|
title += 'CANCELLED: '
|
||||||
|
|
||||||
|
if not item.is_rig:
|
||||||
|
title += 'NON-RIG: '
|
||||||
|
|
||||||
|
if item.dry_hire:
|
||||||
|
title += 'DRY HIRE: '
|
||||||
|
|
||||||
|
title += item.name
|
||||||
|
|
||||||
|
title += ' ('+str(item.status)+')'
|
||||||
|
|
||||||
|
return title
|
||||||
|
|
||||||
|
def item_start_datetime(self, item):
|
||||||
|
startDateTime = item.start_date#.strftime("%Y%M%d")
|
||||||
|
|
||||||
|
#if item.start_time:
|
||||||
|
# startDateTime += 'T'+item.start_time.strftime("%H%i")
|
||||||
|
|
||||||
|
return startDateTime
|
||||||
|
|
||||||
|
def item_end_datetime(self, item):
|
||||||
|
endDateTime = item.start_date.strftime("%Y%M%d")
|
||||||
|
|
||||||
|
#if item.end_date:
|
||||||
|
# endDateTime = item.end_date.strftime("%Y%M%d")
|
||||||
|
#
|
||||||
|
#if item.start_time and item.end_time: # don't allow an event with specific end but no specific start
|
||||||
|
# endDateTime += 'T'+item.end_time.strftime("%H%i")
|
||||||
|
#elif item.start_time: # if there's a start time specified then an end time should also be specified
|
||||||
|
# endDateTime += 'T2359'
|
||||||
|
#elif item.end_time: # end time but no start time - this is weird - don't think ICS will like it so ignoring
|
||||||
|
# endDateTime += '' # do nothing
|
||||||
|
|
||||||
|
return endDateTime
|
||||||
|
|
||||||
|
def item_location(self,item):
|
||||||
|
return item.venue
|
||||||
|
|
||||||
|
def item_description(self, item):
|
||||||
|
desc = 'Rig ID = '+str(item.pk)+'\n'
|
||||||
|
desc += 'MIC = ' + (item.mic.name if item.mic else '---') + '\n'
|
||||||
|
desc += 'Status = ' + str(item.status) + '\n'
|
||||||
|
desc += 'Event = ' + item.name + '\n'
|
||||||
|
desc += 'Venue = ' + (item.venue.name if item.venue else '---') + '\n'
|
||||||
|
if item.is_rig and item.person:
|
||||||
|
desc += 'Client = ' + item.person.name + ( ('for'+item.organisation.name) if item.organisation else '') + '\n'
|
||||||
|
desc += '\n\n'
|
||||||
|
if item.description:
|
||||||
|
desc += 'Event Description:\n'+item.description
|
||||||
|
if item.notes:
|
||||||
|
desc += 'Notes:\n'+item.notes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return item.description
|
||||||
|
|
||||||
|
def item_link(self, item):
|
||||||
|
return ''
|
||||||
|
|
||||||
|
# def item_created(self, item): #TODO - Implement created date-time (using django-reversion?)
|
||||||
|
# return ''
|
||||||
|
|
||||||
|
def item_updated(self, item):
|
||||||
|
return item.last_edited_at
|
||||||
|
|
||||||
|
def item_guid(self, item):
|
||||||
|
return item.pk
|
||||||
|
|
||||||
class ProfileDetail(generic.DetailView):
|
class ProfileDetail(generic.DetailView):
|
||||||
model = models.Profile
|
model = models.Profile
|
||||||
|
|
||||||
|
|||||||
@@ -10,3 +10,4 @@ pillow==2.7.0
|
|||||||
reportlab==2.7
|
reportlab==2.7
|
||||||
z3c.rml==2.7.2
|
z3c.rml==2.7.2
|
||||||
pyPDF2==1.23
|
pyPDF2==1.23
|
||||||
|
django-ical==1.3
|
||||||
Reference in New Issue
Block a user