-
-
Save jpadilla/5820c76971797bf799bc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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