def add_param(request, object_id): 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() 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: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def hotels_in_country(request): try: searched = Hotel.objects.all() return filter_hotels_on_map(request, searched) except: payload = {'success': False} return AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
def add_address(request): """ Its Ajax add address in basket """ 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: payload = {'success': False, 'error': _('You are not allowed for add address')} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def post(self, request, *args, **kwargs): self.success = True location = None try: logout(self.request) location = '/' except: self.success = False payload = {'success': self.success, 'location': location} return AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload) else: return super(AjaxFormMixin, self).form_invalid(form, *args, **kwargs)
def delete_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 d.delete() payload = {'success': True} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def edit_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 html = render_to_string('cabinet/edit_discount.html', {'discount': d}) payload = {'success': True, 'html': html} except: payload = {'success': False} return AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload) else: return HttpResponseRedirect(self.success_url)
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 AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
def payment_method(request): try: p_m = request.POST['p_m'] payment_method = PaymentMethod.objects.get(pk=p_m) payload = { 'success': True, 'id': payment_method.pk, 'description': payment_method.description, 'card': payment_method.use_card } except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_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'])) 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 AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
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 AjaxLazyAnswer(payload)
def delete_material(request, object_id, material_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) material = get_object_or_404(ProductMaterial, pk=int(material_id)) p.materials.remove(material) p.save() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_material(request, object_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) material = get_object_or_404(ProductMaterial, pk=int(request.POST['material'])) p.materials.add(material) p.save() payload = {'success': True, 'name': material.name, 'id': material.pk} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_color(request, object_id, color_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) color = get_object_or_404(ProductColor, pk=int(color_id)) p.colors.remove(color) p.save() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_product(request, object_id): # Link used when User delete the product try: if not request.user.is_superuser: raise AccessError p = Product.objects.get(pk=int(object_id)) p.visible = False p.save() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def push_answer(request, object_id): try: f = Feedback.objects.get(pk=int(object_id)) f.answer = request.POST.get('answer') recipients = [f.email] mail_dict = {'feedback': f} subject = 'emails/feedback_answer_subject.txt' body = 'emails/feedback_answer_body.txt' send_template_mail(subject, body, mail_dict, recipients) f.save() payload = {'success': True, 'location': f.get_absolute_url()} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def hotels_in_city(request): try: c = request.POST['city'] path = request.POST['path'] or None if path: key = sha1('%s' % (path, )).hexdigest() data_key = cache.get(key) searched = Hotel.objects.filter(pk__in=data_key) else: city = City.objects.get(pk=c) searched = Hotel.objects.filter(Q(city=city) | Q(addon_city=city)) return filter_hotels_on_map(request, searched) except: payload = {'success': False} return AjaxLazyAnswer(payload)
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_msg': _('You are not allowed change room variants.') } except: payload = {'success': False} return AjaxLazyAnswer(payload)
def push_feedback(request): """ Its Ajax posted feedback """ try: msg = Feedback() msg.ip = request.META['REMOTE_ADDR'] msg.user_agent = request.META['HTTP_USER_AGENT'] msg.name = request.POST.get('name') msg.email = request.POST.get('email') msg.message = request.POST.get('message') msg.save() payload = {'success': True} except: payload = {'success': False} return AjaxLazyAnswer(payload)
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_msg': _('You are not allowed change room variants.') } except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_related_product(request, object_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(request.POST['product'])) p.related_products.add(product) p.save() payload = {'success': True, 'name': product.name, 'id': product.pk, 'url': product.get_absolute_url(), 'src': make_thumbnail(product.main_image, width=settings.RELATED_PRODUCT_WIDTH, height=settings.RELATED_PRODUCT_HEIGHT, aspect=1)} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_color(request, object_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) color = get_object_or_404(ProductColor, pk=int(request.POST['color'])) w = int(request.POST['width']) h = int(request.POST['height']) p.colors.add(color) p.save() payload = {'success': True, 'name': color.name, 'id': color.pk, 'src': make_thumbnail(color.img.url, width=w, height=h)} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)