Commit cd7faaf8 authored by lizonr1's avatar lizonr1

Add owners to models

parent 75f35872
from django.contrib.auth.models import User
from App.loyaltyMe.models import Beacon from App.loyaltyMe.models import Beacon
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
...@@ -8,12 +10,13 @@ class Command(BaseCommand): ...@@ -8,12 +10,13 @@ class Command(BaseCommand):
def handle(self, *args, **options): def handle(self, *args, **options):
beacons = [ beacons = [
['f7826da6-4fa2-4e98-8024-bc5b71e0893e', 'hPUL', 'Bialy', '2667', '62313'], ['f7826da6-4fa2-4e98-8024-bc5b71e0893e', 'hPUL', 'Bialy', '2667', '62313', 'admin'],
['74f1f28c-1cb7-11e5-9a21-1697f925ec7b', 'CeH3', 'Czarny', '55059', '55892'], ['74f1f28c-1cb7-11e5-9a21-1697f925ec7b', 'CeH3', 'Czarny', '55059', '55892', 'admin'],
] ]
print("Creating Beacons") print("Creating Beacons")
for beacon in beacons: for beacon in beacons:
print('Create {0}'.format(beacon[1])) print('Create {0}'.format(beacon[1]))
user = User.objects.filter(username=beacon[5])[0]
new_beacon = Beacon.objects.create(uuid=beacon[0], name=beacon[1], description=beacon[2], major=beacon[3], new_beacon = Beacon.objects.create(uuid=beacon[0], name=beacon[1], description=beacon[2], major=beacon[3],
minor=beacon[4]) minor=beacon[4], user=user)
new_beacon.save() new_beacon.save()
from django.contrib.auth.models import User
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from App.loyaltyMe.models import Place, Offer, Localization, Beacon from App.loyaltyMe.models import Place, Offer, Localization, Beacon
...@@ -11,17 +12,17 @@ class Command(BaseCommand): ...@@ -11,17 +12,17 @@ class Command(BaseCommand):
places = [ places = [
# ['name', 'type', 'screen_img', 'logo_img', 'description', 'offer', 'promotions'], # ['name', 'type', 'screen_img', 'logo_img', 'description', 'offer', 'promotions'],
['Kocia Kawiarnia', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description', ['Kocia Kawiarnia', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description',
'Oferta1', 'Promocja1', 'Makowicka', 'hPUL'], 'Oferta1', 'Wakacyjna Promocja', 'Makowicka', 'hPUL', 'admin'],
['Kafcia u Olczaka', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description', ['Kafcia u Olczaka', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description',
'Oferta2', 'Promocja2', 'Makowicka', 'CeH3'], 'Oferta2', 'Promocja2', 'Makowicka', 'CeH3', 'admin'],
['Psia Kawiarnia', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description', ['Psia Kawiarnia', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description',
'Oferta1', 'Promocja1', 'Rynek', None], 'Oferta1', 'Wakacyjna Promocja', 'Rynek', None, 'admin'],
['Kafcia u Iwczaka', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description', ['Kafcia u Iwczaka', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description',
'Oferta2', 'Promocja2', 'Rynek', None], 'Oferta2', 'Promocja2', 'Rynek', None, 'admin'],
['Lemingowa Kawiarnia', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description', ['Lemingowa Kawiarnia', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description',
'Oferta1', 'Promocja1', 'Makowicka', None], 'Oferta1', 'Wakacyjna Promocja', 'Makowicka', None, 'admin'],
['Kafcia u Ewelinczaka', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description', ['Kafcia u Ewelinczaka', 'Cafeteria', '/static/img/photo_1.jpg', '/static/img/photo_1.jpg', 'description',
'Oferta2', 'Promocja2', 'Rynek', None], 'Oferta2', 'Promocja2', 'Rynek', None, 'admin'],
] ]
print("Creating Places") print("Creating Places")
for place in places: for place in places:
...@@ -33,7 +34,10 @@ class Command(BaseCommand): ...@@ -33,7 +34,10 @@ class Command(BaseCommand):
beacon = Beacon.objects.filter(name=place[8])[0] beacon = Beacon.objects.filter(name=place[8])[0]
else: else:
beacon = None beacon = None
owners = User.objects.filter(username=place[9])
new_place = Place.objects.create(name=place[0], type=place[1], screen_img=place[2], logo_img=place[3], new_place = Place.objects.create(name=place[0], type=place[1], screen_img=place[2], logo_img=place[3],
description=place[4], offer=offer, promotion=promotion_set, description=place[4], offer=offer,
localization=localization, beacon=beacon) localization=localization, beacon=beacon)
new_place.owners = owners
new_place.promotion.add(promotion_set)
new_place.save() new_place.save()
...@@ -22,8 +22,11 @@ class Localization(models.Model): ...@@ -22,8 +22,11 @@ class Localization(models.Model):
road_number = models.CharField(max_length=50, ) road_number = models.CharField(max_length=50, )
def __str__(self): def __str__(self):
return "{city}, {road} {road_number}, {latitude}:{longitude}".format(city=self.city, road=self.road, road_number=self.road_number, return "{city}, {road} {road_number}, {latitude}:{longitude}".format(city=self.city, road=self.road,
latitude=self.latitude, longitude=self.longitude) road_number=self.road_number,
latitude=self.latitude,
longitude=self.longitude)
class Beacon(models.Model): class Beacon(models.Model):
uuid = models.CharField(max_length=300, unique=True) uuid = models.CharField(max_length=300, unique=True)
...@@ -31,6 +34,7 @@ class Beacon(models.Model): ...@@ -31,6 +34,7 @@ class Beacon(models.Model):
minor = models.CharField(max_length=300, unique=True) minor = models.CharField(max_length=300, unique=True)
name = models.CharField(max_length=300) name = models.CharField(max_length=300)
description = models.CharField(max_length=300, null=True) description = models.CharField(max_length=300, null=True)
user = models.ForeignKey(User)
def __str__(self): def __str__(self):
return self.name return self.name
...@@ -39,18 +43,14 @@ class Beacon(models.Model): ...@@ -39,18 +43,14 @@ class Beacon(models.Model):
class Place(models.Model): class Place(models.Model):
name = models.CharField(max_length=50, unique=True) name = models.CharField(max_length=50, unique=True)
type = models.CharField(max_length=50, ) type = models.CharField(max_length=50, )
screen_img = models.ImageField() screen_img = models.ImageField(blank=True)
logo_img = models.ImageField() logo_img = models.ImageField(blank=True)
description = models.CharField(max_length=50) description = models.CharField(max_length=50, blank=True)
offer = models.ForeignKey(Offer, null=True, blank=True) offer = models.ForeignKey(Offer, null=True, blank=True)
promotion = models.ForeignKey('promotion.PromotionSet', null=True, blank=True) promotion = models.ManyToManyField('promotion.PromotionSet',blank=True, related_name='place_promotion')
localization = models.ForeignKey(Localization, null=True, blank=True) localization = models.ForeignKey(Localization, null=True, blank=True)
beacon = models.ForeignKey(Beacon, null=True, blank=True) beacon = models.ForeignKey(Beacon, null=True, blank=True)
owners = models.ManyToManyField(User, related_name='place_owners')
def __str__(self): def __str__(self):
return self.name return self.name
class UserPlace(models.Model):
place = models.ForeignKey(Place, related_name='userplace_place')
user = models.ForeignKey(User, related_name='userplace_user')
from rest_framework import serializers from rest_framework import serializers
from App.loyaltyMe.models import Product, Offer, Place, Localization, Beacon, UserPlace from App.loyaltyMe.models import Product, Offer, Place, Localization, Beacon
from App.promotion.serializers import PromotionSetSerializer from App.promotion.serializers import PromotionSetSerializer
...@@ -40,9 +40,4 @@ class PlaceSerializer(serializers.HyperlinkedModelSerializer): ...@@ -40,9 +40,4 @@ class PlaceSerializer(serializers.HyperlinkedModelSerializer):
model = Place model = Place
fields = ( fields = (
'url', 'id', 'name', 'type', 'screen_img', 'logo_img', 'description', 'offer', 'promotion', 'localization', 'url', 'id', 'name', 'type', 'screen_img', 'logo_img', 'description', 'offer', 'promotion', 'localization',
'beacon') 'beacon', 'owners')
class UserPlaceSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = UserPlace
fields = ('url', 'id', 'user', 'place')
...@@ -4,9 +4,9 @@ from rest_framework import viewsets, permissions ...@@ -4,9 +4,9 @@ from rest_framework import viewsets, permissions
from rest_framework.decorators import detail_route from rest_framework.decorators import detail_route
from rest_framework.response import Response from rest_framework.response import Response
from App.loyaltyMe.models import Product, Offer, Place, Localization, Beacon, UserPlace from App.loyaltyMe.models import Product, Offer, Place, Localization, Beacon
from App.loyaltyMe.serializers import ProductSerializer, OfferSerializer, PlaceSerializer, \ from App.loyaltyMe.serializers import ProductSerializer, OfferSerializer, PlaceSerializer, \
LocalizationSerializer, BeaconSerializer, UserPlaceSerializer LocalizationSerializer, BeaconSerializer
from App.promotion.models import UserPromotion from App.promotion.models import UserPromotion
...@@ -47,12 +47,3 @@ class BeaconViewSet(viewsets.ModelViewSet): ...@@ -47,12 +47,3 @@ class BeaconViewSet(viewsets.ModelViewSet):
queryset = Beacon.objects.all() queryset = Beacon.objects.all()
serializer_class = BeaconSerializer serializer_class = BeaconSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
class UserPlaceViewSet(viewsets.ModelViewSet):
queryset = UserPlace.objects.all()
serializer_class = UserPlaceSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def get_queryset(self):
user = self.request.user
return UserPlace.objects.filter(user=user)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment