def create(self, request, *args, **kwargs): serializer = BranchSerializer(data = request.data) if serializer.is_valid(): serializer.save() return Response({'status':'201', 'msg': 'created successfully', 'data':serializer.data, }, status.HTTP_201_CREATED,) return Response({'status':'400', 'msg': 'Please Insert Correct value', 'data':serializer.errors, }, status.HTTP_400_BAD_REQUEST,)
def put(self,request,pk,format=None): branch = Branch.objects.get(id=pk) serializer = BranchSerializer(branch, data= request.data, partial = True) if serializer.is_valid(): serializer.save() return Response({'status':'200', 'msg': 'Branch is updated', 'data':serializer.data, }, status.HTTP_200_OK,) return Response({'status':'400', 'msg': 'Please Insert Correct value', 'data':serializer.errors, }, status.HTTP_400_BAD_REQUEST)
class BillSerializer(serializers.ModelSerializer): items = BillItemSerializer(many=True, required=False) buyer = CustomerSerializer() seller = StaffSerializer() branch = BranchSerializer(read_only=True) payments = CustomerPaymentSerializer(many=True, required=False) price = serializers.ReadOnlyField() total_discount = serializers.ReadOnlyField() buyer_special_discount = serializers.ReadOnlyField() items_discount = serializers.ReadOnlyField() final_price = serializers.ReadOnlyField() paid = serializers.ReadOnlyField() cheque_paid = serializers.ReadOnlyField() card_paid = serializers.ReadOnlyField() cash_paid = serializers.ReadOnlyField() remaining_payment = serializers.ReadOnlyField() items_count = serializers.ReadOnlyField() profit = serializers.ReadOnlyField() class Meta: model = Bill fields = ('pk', 'bill_code', 'create_date', 'status', 'close_date', 'buyer', 'seller', 'discount', 'used_points', 'branch', 'payments', 'items', 'bill_image', 'price', 'total_discount', 'buyer_special_discount', 'items_discount', 'final_price', 'paid', 'cheque_paid', 'cash_paid', 'card_paid', 'remaining_payment', 'items_count', 'profit')
class BranchListCreateAPIView(ListCreateAPIView): queryset = Branch.objects.all() serializer_class = BranchSerializer(queryset, many=True) def get_permissions(self): if self.request.method == 'POST': return (UserPermission('can_create_dept'),) elif self.request.method == 'GET': return (permissions.AllowAny(),) raise MethodNotAllowed(method=self.request.method) def create(self, request, *args, **kwargs): serializer = BranchSerializer(data = request.data) if serializer.is_valid(): serializer.save() return Response({'status':'201', 'msg': 'created successfully', 'data':serializer.data, }, status.HTTP_201_CREATED,) return Response({'status':'400', 'msg': 'Please Insert Correct value', 'data':serializer.errors, }, status.HTTP_400_BAD_REQUEST,) def list(self, request, format=None): queryset = Branch.objects.all() serializer = BranchSerializer(queryset, many = True) return Response({'status':'200', 'msg': 'showing data', 'data':serializer.data, }, status.HTTP_200_OK,)
def branch(request): # only - qs, values - dict. branches = Branch.objects.all() if not request.session.get('current_branch'): # client_ip, is_routable = get_client_ip(request) # if client_ip is not None and is_routable: reader = geoip2.database.Reader( os.path.join(settings.BASE_DIR, 'GeoLite2-City.mmdb')) response = reader.city("145.255.9.175") # Уфа BA client_city = response.city.names['ru'] client_subdivisions = response.subdivisions.most_specific.iso_code reader.close() print(client_city, client_subdivisions) for branch_i in branches: if branch_i.city == client_city: # match city serializer_data = BranchSerializer(branch_i).data serializer_data["phone"] = [ x.strip() for x in serializer_data["phone"].split(',') ] request.session['current_branch'] = serializer_data break elif branch_i.subdivision == client_subdivisions: # if no city match then try find matching subdivision serializer_data = BranchSerializer(branch_i).data serializer_data["phone"] = [ x.strip() for x in serializer_data["phone"].split(',') ] request.session['current_branch'] = serializer_data if not request.session.get( 'current_branch'): # if no matches then assign first serializer_data = BranchSerializer(branches.first()).data serializer_data["phone"] = [ x.strip() for x in serializer_data["phone"].split(',') ] request.session['current_branch'] = serializer_data branches_city_n_slug = branches.values('city', 'slug') return {"branches_city_n_slug": branches_city_n_slug}
def get_branch(request, slug): branch = Branch.objects.get(slug=slug) serializer_data = BranchSerializer(branch).data serializer_data["phone"] = [ x.strip() for x in serializer_data["phone"].split(',') ] serializer_data["coordinates"] = [ x.strip() for x in serializer_data["coordinates"].split(',') ] request.session['current_branch'] = serializer_data request.session['is_branch_selected'] = True return Response(serializer_data)
def contact_page(request, slug): current_branch = Branch.objects.get(slug=slug) serializer_data = BranchSerializer(current_branch).data serializer_data["phone"] = [ x.strip() for x in serializer_data["phone"].split(',') ] current_branch.phone = [x.strip() for x in current_branch.phone.split(',')] serializer_data["coordinates"] = [ float(x.strip()) for x in serializer_data["coordinates"].split(',') ] request.session['current_branch'] = serializer_data return render(request, 'branch/contact.html', {'current_branch': current_branch})
def get(self, request): material_data = MaterialDropDownSerializer(Material.objects.all(), many=True).data design_data = DesignDropDownSerializer(Design.objects.all(), many=True).data color_data = ColorDropDownSerializer(Color.objects.all(), many=True).data f_type_data = FTypeDropDownSerializer(FType.objects.all(), many=True).data branch_data = BranchSerializer(Branch.objects.all(), many=True).data response = dict(branch=branch_data, background_color=color_data, design_color=color_data, material=material_data, design=design_data, f_type=f_type_data) return Response(response)
class CourseSerializers(serializers.ModelSerializer): """Courses serializer""" contacts = ContactSerializer(many=True, ) branches = BranchSerializer(many=True) category = serializers.PrimaryKeyRelatedField( queryset=Category.objects.all()) class Meta: model = Courses fields = ("contacts", "branches", "name", "description", "category", "logo") def create(self, validated_data): branches = validated_data.pop("branches") contact = validated_data.pop("contacts") course = Courses.objects.create(**validated_data) for branches in branches: Branch.objects.create(course=course, **branches) for contact in contact: Contact.objects.create(course=course, **contact) return course
def get(self, request, pk, *args, **kwargs): branch = Branch.objects.get(id=pk) serializer = BranchSerializer(branch) return Response({'status':'200', 'msg': 'showing data', 'data':serializer.data, }, status.HTTP_200_OK,)
def list(self, request, format=None): queryset = Branch.objects.all() serializer = BranchSerializer(queryset, many = True) return Response({'status':'200', 'msg': 'showing data', 'data':serializer.data, }, status.HTTP_200_OK,)