Example #1
0
def booking_sysadm(request, pk, action):
    if not request.is_ajax():
        raise Http404
    try:
        if not request.user.is_superuser:
            raise UserNotAllowed
        booking = Booking.objects.select_related().get(id=pk)
        if action == 'delete':
            from_date = booking.from_date
            to_date = booking.to_date
            settlement = booking.settlement
            while from_date < to_date:
                avail = Availability.objects.get(room=settlement.room, date=from_date)
                avail.placecount += 1
                avail.save()
                from_date += timedelta(days=1)
            booking_delete_client_mail(booking)
            booking.delete()
            url = reverse_lazy('bookings_list')
        elif action == 'enable':
            booking.enabled = True
            booking.save()
            booking_new_hotel_mail(booking)
            url = reverse_lazy('booking_admin_detail', args=[booking.uuid, ])
        else:
            raise UserNotAllowed
        payload = {'success': True, 'location': url}
    except UserNotAllowed:
        payload = {'success': False, 'error_msg': _('You are not allowed for this action.')}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #2
0
def add_param(request, object_id):
    # noinspection PyBroadException
    try:
        if not request.user.is_superuser:
            raise AccessError
        p = get_object_or_404(Product, pk=int(object_id))
        ctype = ContentType.objects.get_for_model(Product)
        param = ProductParameterValue()
        param.content_type = ctype
        param.object_id = p.pk
        param.parameter = get_object_or_404(ProductParameter, pk=int(request.POST['param']))
        param.value = request.POST['value']
        if request.POST['keyparam'] == 'on':
            param.keyparam = True
        param.save()
        # noinspection PyBroadException
        try:
            unit = param.parameter.unit.name
        except:
            unit = ''
        payload = {'success': True, 'name': param.parameter.name, 'unit': unit, 'id': param.pk,
                   'value': param.value}
    except AccessError as aerr:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #3
0
def client_review(request, pk):
    try:
        hotel = Hotel.objects.get(id=pk)
        #        guests = Booking.objects.filter(hotel=hotel,to_date__gte=now()).values_list('user', flat=True)
        if request.user.is_superuser:
            message = _('You are superuser and may add review.')
        elif request.user.pk in hotel.complete_booking_users_id:
            message = _('Thanks for you review!')
        else:
            raise UserNotAllowed
        if Review.objects.filter(hotel=hotel, user=request.user).count():
            raise UserNotAllowed
        food = request.POST['point_food']
        service = request.POST['point_service']
        purity = request.POST['point_purity']
        transport = request.POST['point_transport']
        prices = request.POST['point_prices']
        review = request.POST['review']
        r = Review()
        r.user = request.user
        r.username = request.user.first_name
        r.hotel = hotel
        r.food = food
        r.service = service
        r.purity = purity
        r.transport = transport
        r.prices = prices
        r.review = review
        r.save()
        payload = {'success': True, 'message': message}
    except UserNotAllowed:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #4
0
def client_booking_cancel(request, uuid):
    try:
        booking = Booking.objects.get(uuid=uuid)
        if not request.user.is_authenticated():
            raise UserNotAllowed
        if request.user != booking.user and not request.user.is_superuser:
            raise UserNotAllowed
        if booking.status == STATUS_ACCEPTED or booking.status == STATUS_CONFIRMED:
            booking.status = STATUS_CANCELED_CLIENT
            booking.cancel_time = now()
            booking.save()
            subject = _("Changed status of booking")
            message = _("Hotel: ") + booking.hotel.get_name + "\n"
            message += _("Booking: ") + str(booking.system_id) + "\n"
            message += _("Booking link: ") + booking.get_absolute_url() + "\n"
            message += _("New status: ") + booking.get_status_display() + "\n"
            message += '\n' + "IP: %s USER-AGENT: %s" % (request.META.get('REMOTE_ADDR', ''),
                                                         request.META.get('HTTP_USER_AGENT', '')[:255]) + '\n'
            mail_managers(subject, message)
            payload = {'success': True}
    except UserNotAllowed:
        payload = {'success': False, 'error': _('You are not allowed change booking status.')}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #5
0
def booking_status_change(request, uuid):
    try:
        booking = Booking.objects.get(uuid=uuid)
        if request.user not in booking.hotel.admins.all() and not request.user.is_superuser:
            raise UserNotAllowed
        status = request.POST["status"]
        if booking.status != int(status):
            booking.status = status
            booking.save()
            subject = _("Changed status of booking")
            message = _("Hotel: ") + booking.hotel.get_name + "\n"
            message += _("Booking: ") + str(booking.system_id) + "\n"
            message += _("Booking link: ") + booking.get_absolute_url() + "\n"
            message += _("New status: ") + booking.get_status_display() + "\n"
            message += (
                "\n"
                + "IP: %s USER-AGENT: %s"
                % (request.META.get("REMOTE_ADDR", ""), request.META.get("HTTP_USER_AGENT", "")[:255])
                + "\n"
            )
            mail_managers(subject, message)
            payload = {"success": True}
    except UserNotAllowed as naerr:
        payload = {"success": False, "error": _("You are not allowed change booking status.")}
    except:
        payload = {"success": False}
    return ajax_answer_lazy(payload)
Example #6
0
def hotels_in_country(request):
    try:
        searched = Hotel.objects.all()
        return filter_hotels_on_map(request, searched)
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #7
0
def add_address(request):
    """
    Its Ajax add address in basket
    """
    # noinspection PyBroadException
    try:
        if not request.user.is_authenticated():
            raise AccessError
        address = DeliveryAddress()
        address.user = request.user
        country_new = request.POST.get('country') or None
        if country_new is not None:
            country, created = Country.objects.get_or_create(name=country_new)
            address.country = country
        region_new = request.POST.get('region') or None
        if region_new is not None:
            region, created = Region.objects.get_or_create(name=region_new)
            address.region = region
        zipcode = request.POST.get('zipcode') or None
        if zipcode is not None:
            address.zipcode = zipcode
        city_new = request.POST.get('city') or None
        if city_new is not None:
            city, created = City.objects.get_or_create(name=city_new)
            address.city = city
        street = request.POST.get('street') or None
        if street is not None:
            address.street = street
        house_number = request.POST.get('house_number') or None
        if house_number is not None:
            address.house_number = house_number
        building = request.POST.get('building') or None
        if building is not None:
            address.building = building
        flat_number = request.POST.get('flat_number') or None
        if flat_number is not None:
            address.flat_number = flat_number
        first_name = request.POST.get('first_name') or None
        if first_name is not None:
            address.first_name = first_name
        middle_name = request.POST.get('middle_name') or None
        if middle_name is not None:
            address.middle_name = middle_name
        last_name = request.POST.get('last_name') or None
        if last_name is not None:
            address.last_name = last_name
        phone = request.POST.get('phone') or None
        if phone is not None:
            address.phone = phone
        skype = request.POST.get('skype') or None
        if skype is not None:
            address.skype = skype
        address.save()
        payload = {'success': True}
    except AccessError as aerr:
        payload = {'success': False, 'error': _('You are not allowed for add address')}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #8
0
def room_rates(request):
    try:
        json_data = json.loads(request.body)
        currency = Currency.objects.get(code=setting('DEFAULT_CURRENCY', 'RUB'))
        room = Room.objects.get(id=int(json_data['room_id']))
        if request.user not in room.hotel.admins.all() and not request.user.is_superuser:
            raise UserNotAllowed
            # find settlements keys in data
        all_settlements, all_discounts = [], []
        for k in json_data.keys():
            if k[0] == 's':
                all_settlements.append(k)
            elif k[0] == 'd':
                all_discounts.append(k)
        for i, v in enumerate(json_data['dates']):
            on_date = datetime.fromtimestamp(time.mktime(time.strptime(v, "%d%m%Y")))
            if 'placecount' in json_data.keys():
                try:
                    placecount = int(json_data['placecount'][i])
                    try:
                        min_days = int(json_data['min_days'][i])
                    except:
                        min_days = None
                        # store availability
                    availability, created = Availability.objects.get_or_create(date=on_date, room=room)
                    availability.placecount = placecount
                    if min_days is not None:
                        availability.min_days = min_days
                    availability.save()
                except ValueError:
                    pass
            for k in all_discounts:
                try:
                    discount_id = int(k[1:])
                    discount = Discount.objects.get(id=discount_id)
                    value = int(json_data[k][i])
                    room_discount, created = RoomDiscount.objects.get_or_create(date=on_date, discount=discount,
                                                                                room=room)
                    room_discount.value = value
                    room_discount.save()
                except ValueError:
                    pass
            for k in all_settlements:
                try:
                    settlement_id = int(k[1:])
                    settlement = SettlementVariant.objects.get(id=settlement_id)
                    price = int(json_data[k][i])
                    placeprice, created = PlacePrice.objects.get_or_create(date=on_date, settlement=settlement)
                    placeprice.amount = price
                    placeprice.currency = currency
                    placeprice.save()
                except ValueError:
                    pass
        payload = {'success': True}
    except UserNotAllowed:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #9
0
 def form_invalid(self, form, *args, **kwargs):
     self.data = as_json(form.errors)
     self.success = False
     payload = {'success': self.success, 'data': self.data}
     if self.request.is_ajax():
         return ajax_answer_lazy(payload)
     else:
         return super(AjaxFormMixin, self).form_invalid(form, *args, **kwargs)
Example #10
0
def payment_method(request):
    try:
        p_m = request.POST['p_m']
        paymnt_method = PaymentMethod.objects.get(pk=p_m)
        payload = {'success': True, 'id': paymnt_method.pk, 'description': paymnt_method.description,
                   'card': paymnt_method.use_card}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #11
0
 def post(self, request, *args, **kwargs):
     success = True
     location = None
     try:
         logout(self.request)
         location = '/'
     except:
         success = False
     payload = {'success': success, 'location': location}
     return ajax_answer_lazy(payload)
Example #12
0
def base_autocomplete(obj, request):
    search_qs = obj.objects.filter(
        Q(name__icontains=request.POST["q"]) | Q(name_en__icontains=request.POST["q"])
    ).order_by("name")
    results = []
    for r in search_qs:
        userstring = {"name": r.get_name, "slug": r.slug}
        results.append(userstring)
    payload = {"answer": results}
    return ajax_answer_lazy(payload)
Example #13
0
def edit_discount(request):
    try:
        d = Discount.objects.get(pk=int(request.POST["discount"]))
        if request.user not in d.hotel.admins.all() and not request.user.is_superuser:
            raise AccessError
        html = render_to_string("cabinet/edit_discount.html", {"discount": d})
        payload = {"success": True, "html": html}
    except:
        payload = {"success": False}
    return ajax_answer_lazy(payload)
Example #14
0
def edit_discount(request):
    try:
        d = Discount.objects.get(pk=int(request.POST['discount']))
        if request.user not in d.hotel.admins.all() and not request.user.is_superuser:
            raise AccessError
        html = render_to_string('cabinet/edit_discount.html', {'discount': d})
        payload = {'success': True, 'html': html}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #15
0
def delete_discount(request):
    try:
        d = Discount.objects.get(pk=int(request.POST['discount']))
        if request.user not in d.hotel.admins.all() and not request.user.is_superuser:
            raise AccessError
        d.delete()
        payload = {'success': True}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #16
0
def base_autocomplete(obj, request):
    search_qs = obj.objects.filter(
        Q(name__icontains=request.POST['q']) |
        Q(name_en__icontains=request.POST['q'])).order_by('name')
    results = []
    for r in search_qs:
        userstring = {'name': r.get_name, 'slug': r.slug}
        results.append(userstring)
    payload = {'answer': results}
    return ajax_answer_lazy(payload)
Example #17
0
def room_rates(request):
    try:
        json_data = json.loads(request.body)
        currency = Currency.objects.get(code=setting('DEFAULT_CURRENCY', 'RUB'))
        hotel = Hotel.objects.get(id=int(json_data['hotel']))
        if request.user not in hotel.admins.all() and not request.user.is_superuser:
            raise UserNotAllowed
            # find settlements keys in data
        all_rooms, all_avail, all_limits = [], [], []
        for k in json_data.keys():
            if k[0] == 'r':
                all_rooms.append(k)
            elif k[0] == 'a':
                all_avail.append(k)
            elif k[0] == 'l':
                all_limits.append(k)
        for i, v in enumerate(json_data['dates']):
            on_date = datetime.fromtimestamp(time.mktime(time.strptime(v, "%d%m%Y")))
            for k in all_rooms:
                try:
                    settlement_id = int(k[1:])
                    settlement = SettlementVariant.objects.get(id=settlement_id)
                    price = int(json_data[k][i])
                    placeprice, created = PlacePrice.objects.get_or_create(date=on_date, settlement=settlement)
                    placeprice.amount = price
                    placeprice.currency = currency
                    placeprice.save()
                except ValueError:
                    pass
            for k in all_avail:
                try:
                    room_id = int(k[1:])
                    room = Room.objects.get(pk=room_id)
                    p = json_data[k][i]
                    if len(p.strip()) == 0:
                        placecount = 0
                    else:
                        placecount = int(p)
                    availability, created = Availability.objects.get_or_create(date=on_date, room=room)
                    availability.placecount = placecount
                    try:
                        min_days = int(json_data['l' + k[1:]][i])
                    except:
                        min_days = None
                    if min_days is not None:
                        availability.min_days = min_days
                    availability.save()
                except ValueError:
                    pass
        payload = {'success': True}
    except UserNotAllowed:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #18
0
 def form_valid(self, form):
     if self.request.is_ajax():
         self.success = True
         payload = dict(success=self.success, location=self.success_url or self.get_success_url())
         try:
             payload['status_msg'] = self.status_msg
         except:
             pass
         return ajax_answer_lazy(payload)
     else:
         return HttpResponseRedirect(self.success_url)
Example #19
0
def delete_room_discount(request):
    try:
        d = Discount.objects.get(pk=int(request.POST['discount']))
        if not request.user in d.hotel.admins.all() and not request.user.is_superuser:
            raise AccessError
        r = Room.objects.get(pk=int(request.POST['room']))
        RoomDiscount.objects.filter(room=r, discount=d).delete()
        payload = {'success': True}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #20
0
def delete_comment(request, object_id):
    # Link used when Admin delete the comment
    try:
        if not request.user.is_superuser:
            raise AccessError
        Nnmcomment.objects.get(pk=int(object_id)).delete()
        payload = {'success': True}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #21
0
def add_room_discount(request):
    try:
        d = Discount.objects.get(pk=int(request.POST['discount']))
        if request.user not in d.hotel.admins.all() and not request.user.is_superuser:
            raise AccessError
        r = Room.objects.get(pk=int(request.POST['room']))
        if not RoomDiscount.objects.filter(room=r, discount=d).exists():
            RoomDiscount(room=r, discount=d, date=now()).save()
        payload = {'success': True}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #22
0
def param_value_delete(request, object_id):
    # Link used when User delete the param value
    try:
        if not request.user.is_superuser:
            raise AccessError
        ProductParameterValue.objects.get(pk=int(object_id)).delete()
        payload = {'success': True}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #23
0
def delete_feedback(request, object_id):
    # Link used when User delete the feedback
    try:
        if not request.user.is_superuser:
            raise AccessError
        Feedback.objects.get(pk=int(object_id)).delete()
        payload = {'success': True}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #24
0
def request_hotel_delete(request, pk):
    try:
        req_hotel = RequestAddHotel.objects.get(id=pk)
        if not request.user.is_superuser:
            raise UserNotAllowed
        req_hotel.delete()
        payload = {'success': True}
    except UserNotAllowed:
        payload = {'success': False, 'error': _('You are not allowed change room variants.')}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #25
0
def room_delete(request, pk):
    try:
        room = Room.objects.get(id=pk)
        if request.user not in room.hotel.admins.all() and not request.user.is_superuser:
            raise UserNotAllowed
        room.delete()
        payload = {'success': True}
    except UserNotAllowed:
        payload = {'success': False, 'error': _('You are not allowed change room variants.')}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #26
0
def delete_address(request, object_id):
    # Link used when User delete the address delivery
    try:
        if not request.user.is_authenticated():
            raise AccessError
        DeliveryAddress.objects.get(pk=int(object_id)).delete()
        payload = {'success': True, 'id': int(object_id)}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #27
0
def payment_method(request):
    try:
        p_m = request.POST["p_m"]
        paymnt_method = PaymentMethod.objects.get(pk=p_m)
        payload = {
            "success": True,
            "id": paymnt_method.pk,
            "description": paymnt_method.description,
            "card": paymnt_method.use_card,
        }
    except:
        payload = {"success": False}
    return ajax_answer_lazy(payload)
Example #28
0
def autocomplete_search(request, size=16):
    results = []
    search_qs = Product.objects.filter(
        Q(name__icontains=request.POST['q']) |
        Q(name_en__icontains=request.POST['q'])).order_by('name')[:5]
    for r in search_qs:
        img = make_thumbnail(r.main_image, width=int(size))
        userstring = {'name': r.name, 'path': r.get_absolute_url(),
                      'img': img,
                      'slug': r.slug, 'amount': "%0.2f" % (r.amount,), 'id': r.pk}
        results.append(userstring)
    payload = {'answer': results}
    return ajax_answer_lazy(payload)
Example #29
0
def delete_related_product(request, object_id, product_id):
    try:
        if not request.user.is_superuser:
            raise AccessError
        p = get_object_or_404(Product, pk=int(object_id))
        product = get_object_or_404(Product, pk=int(product_id))
        p.related_products.remove(product)
        p.save()
        payload = {'success': True}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #30
0
def del_compare_product(request, object_id):
    try:
        compare = request.session['shop_compare']
    except:
        compare = []
    product_id = int(object_id)
    if product_id in compare:
        compare.remove(product_id)
    try:
        request.session['shop_compare'] = compare
        payload = {'success': True}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #31
0
def room_rates(request):
    try:
        json_data = json.loads(request.body)
        currency = Currency.objects.get(
            code=setting('DEFAULT_CURRENCY', 'RUB'))
        hotel = Hotel.objects.get(id=int(json_data['hotel']))
        if request.user not in hotel.admins.all(
        ) and not request.user.is_superuser:
            raise UserNotAllowed
            # find settlements keys in data
        all_rooms, all_avail, all_limits = [], [], []
        for k in json_data.keys():
            if k[0] == 'r':
                all_rooms.append(k)
            elif k[0] == 'a':
                all_avail.append(k)
            elif k[0] == 'l':
                all_limits.append(k)
        for i, v in enumerate(json_data['dates']):
            on_date = datetime.fromtimestamp(
                time.mktime(time.strptime(v, "%d%m%Y")))
            for k in all_rooms:
                try:
                    settlement_id = int(k[1:])
                    settlement = SettlementVariant.objects.get(
                        id=settlement_id)
                    price = int(json_data[k][i])
                    placeprice, created = PlacePrice.objects.get_or_create(
                        date=on_date, settlement=settlement)
                    placeprice.amount = price
                    placeprice.currency = currency
                    placeprice.save()
                except ValueError:
                    pass
            for k in all_avail:
                try:
                    room_id = int(k[1:])
                    room = Room.objects.get(pk=room_id)
                    p = json_data[k][i]
                    if len(p.strip()) == 0:
                        placecount = 0
                    else:
                        placecount = int(p)
                    availability, created = Availability.objects.get_or_create(
                        date=on_date, room=room)
                    availability.placecount = placecount
                    try:
                        min_days = int(json_data['l' + k[1:]][i])
                    except:
                        min_days = None
                    if min_days is not None:
                        availability.min_days = min_days
                    availability.save()
                except ValueError:
                    pass
        payload = {'success': True}
    except UserNotAllowed:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #32
0
def filter_hotels_on_map(request, hotels):
    try:
        searched = hotels
        f_date = request.POST.get('start_date') or None
        amount_min = request.POST.get('amount_min') or None
        amount_max = request.POST.get('amount_max') or None
        options = request.POST.getlist('options') or None
        stars = request.POST.getlist('stars') or None
        if amount_max and amount_min:
            if f_date:
                from_date = convert_to_date(f_date)
                hotels_with_amount = PlacePrice.objects.filter(
                    date=from_date,
                    amount__range=(amount_min, amount_max)).values_list(
                        'settlement__room__hotel__pk', flat=True).distinct()
            else:
                hotels_with_amount = PlacePrice.objects.filter(
                    date=now(),
                    amount__range=(amount_min, amount_max)).values_list(
                        'settlement__room__hotel__pk', flat=True).distinct()
            searched = searched.filter(pk__in=hotels_with_amount,
                                       work_on_request=False)
        if options:
            for option in options:
                searched = searched.filter(option=option)
        if stars:
            searched = searched.filter(starcount__in=stars)
        searched = searched.order_by('starcount')
        results = []
        for hotel in searched:
            answer = {
                'name':
                hotel.get_name,
                'latitude':
                hotel.latitude,
                'url':
                hotel.get_absolute_url(),
                'address':
                hotel.address,
                'id':
                hotel.pk,
                'starcount':
                hotel.starcount,
                'img':
                make_thumbnail(hotel.main_image,
                               width=113,
                               height=75,
                               aspect=1),
                'longitude':
                hotel.longitude,
                'starcount_name':
                hotel.get_starcount_display(),
                'amount':
                str(int(hotel.current_amount))
            }

            results.append(answer)
        payload = {'success': True, 'hotels': results}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #33
0
def room_discounts(request):
    try:
        json_data = json.loads(request.body)
        hotel = Hotel.objects.get(id=int(json_data['hotel']))
        if request.user not in hotel.admins.all(
        ) and not request.user.is_superuser:
            raise UserNotAllowed
        all_rooms = []
        for k in json_data.keys():
            if k[0:2] == 'ub':
                all_rooms.append(k[2:])
        for r in all_rooms:
            room = Room.objects.get(pk=int(r))
            # TODO Check user rights for room
            simple_discount, created = SimpleDiscount.objects.get_or_create(
                room=room)
            try:
                if json_data['ub' + r][0] == '1':
                    simple_discount.ub = True
                    discount = int(json_data['ub' + r][3])
                    if 0 <= discount <= 100:
                        simple_discount.ub_discount = discount
                    else:
                        simple_discount.ub_discount = 0
                else:
                    simple_discount.ub = False
                    simple_discount.ub_discount = 0
                if json_data['gb' + r][0] == '1':
                    simple_discount.gb = True
                    simple_discount.gb_days = int(json_data['gb' + r][1])
                    penalty = int(json_data['gb' + r][2])
                    if 0 <= penalty <= 100:
                        simple_discount.gb_penalty = penalty
                    else:
                        simple_discount.gb_penalty = 0
                    discount = int(json_data['gb' + r][3])
                    if 0 <= discount <= 100:
                        simple_discount.gb_discount = discount
                    else:
                        simple_discount.gb_discount = 0
                else:
                    simple_discount.gb = False
                    simple_discount.gb_days = 0
                    simple_discount.gb_penalty = 0
                    simple_discount.gb_discount = 0
                if json_data['nr' + r][0] == '1':
                    simple_discount.nr = True
                    discount = int(json_data['nr' + r][3])
                    if 0 <= discount <= 100:
                        simple_discount.nr_discount = discount
                    else:
                        simple_discount.nr_discount = 0
                else:
                    simple_discount.nr = False
                    simple_discount.nr_discount = 0
                simple_discount.save()
            except:
                pass
        payload = {'success': True}
    except UserNotAllowed:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Example #34
0
def add_address(request):
    """
    Its Ajax add address in basket
    """
    # noinspection PyBroadException
    try:
        if not request.user.is_authenticated():
            raise AccessError
        address = DeliveryAddress()
        address.user = request.user
        country_new = request.POST.get('country') or None
        if country_new is not None:
            country, created = Country.objects.get_or_create(name=country_new)
            address.country = country
        region_new = request.POST.get('region') or None
        if region_new is not None:
            region, created = Region.objects.get_or_create(name=region_new)
            address.region = region
        zipcode = request.POST.get('zipcode') or None
        if zipcode is not None:
            address.zipcode = zipcode
        city_new = request.POST.get('city') or None
        if city_new is not None:
            city, created = City.objects.get_or_create(name=city_new)
            address.city = city
        street = request.POST.get('street') or None
        if street is not None:
            address.street = street
        house_number = request.POST.get('house_number') or None
        if house_number is not None:
            address.house_number = house_number
        building = request.POST.get('building') or None
        if building is not None:
            address.building = building
        flat_number = request.POST.get('flat_number') or None
        if flat_number is not None:
            address.flat_number = flat_number
        first_name = request.POST.get('first_name') or None
        if first_name is not None:
            address.first_name = first_name
        middle_name = request.POST.get('middle_name') or None
        if middle_name is not None:
            address.middle_name = middle_name
        last_name = request.POST.get('last_name') or None
        if last_name is not None:
            address.last_name = last_name
        phone = request.POST.get('phone') or None
        if phone is not None:
            address.phone = phone
        skype = request.POST.get('skype') or None
        if skype is not None:
            address.skype = skype
        address.save()
        payload = {'success': True}
    except AccessError as aerr:
        payload = {
            'success': False,
            'error': _('You are not allowed for add address')
        }
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)