mirror of
https://github.com/fergalmoran/dss.git
synced 2025-12-22 09:38:18 +00:00
40 lines
1.5 KiB
Python
Executable File
40 lines
1.5 KiB
Python
Executable File
from django.core.exceptions import ObjectDoesNotExist
|
|
import humanize
|
|
from tastypie.authorization import Authorization
|
|
from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource
|
|
from spa.models.Recurrence import Recurrence
|
|
from spa.models.Venue import Venue
|
|
from spa.models.Event import Event
|
|
|
|
class EventResource(BackboneCompatibleResource):
|
|
class Meta:
|
|
queryset = Event.objects.all()
|
|
authorization = Authorization()
|
|
|
|
def obj_create(self, bundle, request=None, **kwargs):
|
|
bundle.data['user'] = {'pk': request.user.pk}
|
|
return super(EventResource, self).obj_create(bundle, request, user=request.user.get_profile())
|
|
|
|
def dehydrate(self, bundle):
|
|
bundle.data['item_url'] = 'event/%s' % bundle.obj.id
|
|
bundle.data['event_venue'] = bundle.obj.event_venue.venue_name
|
|
return bundle
|
|
|
|
def dehydrate_event_date(self, bundle):
|
|
return humanize.naturalday(bundle.obj.event_date)
|
|
|
|
def hydrate(self, bundle):
|
|
if 'event_venue' in bundle.data:
|
|
try:
|
|
venue = Venue.objects.get(venue_name__exact=bundle.data['event_venue'])
|
|
except ObjectDoesNotExist:
|
|
venue = Venue(venue_name=bundle.data['event_venue'], user=bundle.request.user)
|
|
venue.save()
|
|
|
|
bundle.obj.event_venue = venue
|
|
|
|
recurrence = Recurrence.objects.get(pk=bundle.data['event_recurrence_id'])
|
|
if recurrence != None:
|
|
bundle.obj.event_recurrence = recurrence
|
|
|
|
return bundle |