Files
dss/spa/api/v1/EventResource.py
2012-09-07 17:31:43 +01:00

34 lines
1.3 KiB
Python

from django.core.exceptions import ObjectDoesNotExist
import humanize
from tastypie.authorization import Authorization
from spa.api.v1.BackboneCompatibleResource import BackboneCompatibleResource
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
return bundle