Skip to content

Instantly share code, notes, and snippets.

@jpadilla
Created November 30, 2011 23:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpadilla/5820c76971797bf799bc to your computer and use it in GitHub Desktop.
Save jpadilla/5820c76971797bf799bc to your computer and use it in GitHub Desktop.
from tastypie.resources import ModelResource
from tastypie import fields
from tastypie.authorization import Authorization
from core.models import Booking, GuestInformation, Package, BookingOption, ServiceOption, CreditCard, Discount, Company, ServiceHour, User
class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
class CreditCardResource(ModelResource):
class Meta:
queryset = CreditCard.objects.all()
include_resource_uri = False
class GuestResource(ModelResource):
credit_card = fields.ForeignKey(CreditCardResource, 'credit_card', full=True)
class Meta:
queryset = GuestInformation.objects.all()
include_resource_uri = False
class ServiceOptionResource(ModelResource):
class Meta:
queryset = ServiceOption.objects.all()
include_resource_uri = False
class ServiceHourResource(ModelResource):
class Meta:
include_resource_uri = False
queryset = ServiceHour.objects.all()
# def dehydrate(self, bundle):
# start = bundle.data['start']
# import time
# from time import strftime
# bundle.data['start_formatted'] = strftime('%-I:%M %p', time.strptime(start, '%H:%M:%S'))
# return bundle
class CompanyResource(ModelResource):
class Meta:
queryset = Company.objects.all()
include_resource_uri = False
class PackageResource(ModelResource):
available_options = fields.ManyToManyField(ServiceOptionResource,
'available_options', full=True)
company = fields.ForeignKey(CompanyResource, 'company', full=True)
class Meta:
queryset = Package.objects.all()
include_resource_uri = False
class BookingOptionResource(ModelResource):
option = fields.ForeignKey(ServiceOptionResource, 'option', full=True)
class Meta:
queryset = BookingOption.objects.all()
include_resource_uri = False
class DiscountResource(ModelResource):
class Meta:
queryset = Discount.objects.all()
include_resource_uri = False
filtering = {
'company': ('exact',)
}
class BookingResource(ModelResource):
guest = fields.ForeignKey(GuestResource, 'guest', full=True)
package = fields.ForeignKey(PackageResource, 'package', full=True)
options = fields.ManyToManyField(BookingOptionResource, 'options', full=True)
discounts = fields.ManyToManyField(DiscountResource, 'discounts', full=True)
service_hours = fields.ForeignKey(ServiceHourResource, 'service_hours', full=True)
created_by = fields.ForeignKey(UserResource, 'created_by', full=True)
class Meta:
queryset = Booking.objects.all()
authorization = Authorization()
include_resource_uri = False
# def dehydrate(self, bundle):
# from datetime import datetime
# reservation_date = str(bundle.data['reservation_date'])
# date = datetime.strptime(reservation_date, '%Y-%m-%d')
# bundle.data['reservation_date_formatted'] = date.strftime('%a %b %d %Y')
# return bundle
# def alter_deserialized_detail_data(self, request, data):
# del data['service_hours']['start_formatted']
# del data['options']
# del data['discounts']
# del data['package']['available_options']
# print data
# return data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment