예제 #1
0
 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)
예제 #2
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #3
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 AjaxLazyAnswer(payload)
        else:
            return super(AjaxFormMixin, self).form_invalid(form, *args, **kwargs)
예제 #4
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #5
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #6
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 AjaxLazyAnswer(payload)
     else:
         return HttpResponseRedirect(self.success_url)
예제 #7
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 AjaxLazyAnswer(payload)
예제 #8
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 AjaxLazyAnswer(payload)
예제 #9
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 AjaxLazyAnswer(payload)
예제 #10
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 AjaxLazyAnswer(payload)
예제 #11
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #12
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #13
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 AjaxLazyAnswer(payload)
예제 #14
0
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)
예제 #15
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 AjaxLazyAnswer(payload)
예제 #16
0
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)
예제 #17
0
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)
예제 #18
0
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)
예제 #19
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 AjaxLazyAnswer(payload)
예제 #20
0
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)
예제 #21
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #22
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #23
0
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)
예제 #24
0
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)
예제 #25
0
파일: ajax.py 프로젝트: ukaoma/nnmware
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)
예제 #26
0
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)
예제 #27
0
def delete_basket(request, object_id):
    # Link used when User delete the item from basket
    try:
        Basket.objects.get(pk=int(object_id)).delete()
        if request.user.is_authenticated():
            basket_user = Basket.objects.filter(user=request.user)
        else:
            basket_user = Basket.objects.filter(session_key=get_session_from_request(request))
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {'success': True, 'basket_count': basket_count,
                   'basket_sum': "%0.2f" % (all_sum,), 'id': int(object_id)}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
예제 #28
0
def add_basket(request, object_id):
    # Link used when User add to basket
    try:
        p = Product.objects.get(pk=int(object_id))
        if not p.avail or p.quantity < 1 or p.amount <= 0:
            raise AccessError
        try:
            color_id = request.POST['color']
            color = ProductColor.objects.get(pk=int(color_id))
            addon_text = color.name
        except:
            addon_text = ''
        if not request.user.is_authenticated():
            session_key = get_session_from_request(request)
            if Basket.objects.filter(session_key=session_key, product=p, addon=addon_text).count() > 0:
                b = Basket.objects.get(session_key=session_key, product=p, addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(session_key=session_key, product=p, addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(session_key=session_key)
        else:
            if Basket.objects.filter(user=request.user, product=p, addon=addon_text).count() > 0:
                b = Basket.objects.get(user=request.user, product=p, addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(user=request.user, product=p, addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(user=request.user)
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {'success': True, 'basket_count': basket_count,
                   'basket_sum': "%0.2f" % (all_sum,)}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
예제 #29
0
파일: ajax.py 프로젝트: ukaoma/nnmware
def room_variants(request):
    try:
        room = Room.objects.get(id=request.POST['room_id'])
        if request.user not in room.hotel.admins.all(
        ) and not request.user.is_superuser:
            raise UserNotAllowed
        settlements = SettlementVariant.objects.filter(
            room=room, enabled=True).order_by('settlement')
        results = []
        for s in settlements:
            results.append(s.settlement)
        payload = {'success': True, 'settlements': results}
    except UserNotAllowed:
        payload = {
            'success': False,
            'error_msg': _('You are not allowed change room variants.')
        }
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
예제 #30
0
def push_shopcallback(request):
    """
    Its Ajax posted shop callback
    """
    try:
        cb = ShopCallback()
        cb.ip = request.META['REMOTE_ADDR']
        cb.user_agent = request.META['HTTP_USER_AGENT']
        cb.clientname = request.POST.get('clientname')
        cb.clientphone = request.POST.get('clientphone')
        cb.save()
        mail_dict = {'callback': cb}
        recipients = [settings.SHOP_MANAGER]
        subject = 'emails/callback_admin_subject.txt'
        body = 'emails/callback_admin_body.txt'
        send_template_mail(subject, body, mail_dict, recipients)
        payload = {'success': True}
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)