Example #1
0
 def validate_python(self, values, state):
     voucher = Voucher.find_by_code(values['voucher']['code'])
     error_dict = {}
     if voucher is not None:
         message = "Duplicate Voucher Code"
         error_dict = {'voucher.code': "Code already exists!"}
         raise Invalid(message, values, state, error_dict=error_dict)
Example #2
0
 def validate_python(self, values, state):
     voucher = Voucher.find_by_code(values['voucher']['code'])
     error_dict = {}
     if voucher is not None:
         message = "Duplicate Voucher Code"
         error_dict = {'voucher.code': "Code already exists!"}
         raise Invalid(message, values, state, error_dict=error_dict)
Example #3
0
    def index(self):
        c.admin = h.auth.authorized(h.auth.has_organiser_role)
        if c.admin:
            c.vouchers = Voucher.find_all()
        else:
            c.vouchers = h.signed_in_person().vouchers

        return render('/voucher/list.mako')
Example #4
0
 def validate_python(self, values, state):
     # TODO: This doesn't work, code is randomly generated - this doesn't search for prefixes
     voucher = Voucher.find_by_code(values['voucher']['code'])
     error_dict = {}
     if voucher is not None:
         message = "Duplicate Voucher Code"
         error_dict = {'voucher.code': "Code already exists!"}
         raise Invalid(message, values, state, error_dict=error_dict)
Example #5
0
    def index(self):
        c.admin = h.auth.authorized(h.auth.has_organiser_role)
        if c.admin:
            c.vouchers = Voucher.find_all()
        else:
            c.vouchers = h.signed_in_person().vouchers

        return render('/voucher/list.mako')
Example #6
0
 def validate_python(self, values, state):
     # TODO: This doesn't work, code is randomly generated - this doesn't search for prefixes
     voucher = Voucher.find_by_code(values["voucher"]["code"])
     error_dict = {}
     if voucher is not None:
         message = "Duplicate Voucher Code"
         error_dict = {"voucher.code": "Code already exists!"}
         raise Invalid(message, values, state, error_dict=error_dict)
Example #7
0
    def delete(self, id):
        """Delete the voucher

        GET will return a form asking for approval.

        POST requests will delete the item.
        """
        c.voucher = Voucher.find_by_id(id)
        return render('/voucher/confirm_delete.mako')
Example #8
0
    def delete(self, id):
        """Delete the voucher

        GET will return a form asking for approval.

        POST requests will delete the item.
        """
        c.voucher = Voucher.find_by_id(id)
        return render('/voucher/confirm_delete.mako')
Example #9
0
    def _new(self):
        results = self.form_result['voucher']
        count = results['count']  # Number of voucher codes to generate
        del (results['count'])

        for i in xrange(count):
            if 'products' in results:
                del (results['products'])
            c.voucher = Voucher(**results)
            if c.voucher.code != '':
                c.voucher.code += '-'  #add a dash between prefix and random
            c.voucher.code += generate_code()
            meta.Session.add(c.voucher)  # save voucher to DB

            results['products'] = self.form_result['products']

            for category in c.product_categories:
                # depending on "display" type of product, handle the input appropriately
                if category.display == 'radio':
                    if 'category_' + str(category.id) in results[
                            'products'] and results['products'][
                                'category_' + str(category.id)] != None:
                        product = Product.find_by_id(
                            results['products']['category_' +
                                                str(category.id)])
                        vproduct = VoucherProduct()
                        vproduct.voucher = c.voucher
                        vproduct.product = product
                        vproduct.qty = 1
                        vproduct.percentage = results['products'][
                            'category_' + str(category.id) + '_percentage']
                        meta.Session.add(vproduct)  # Save product to DB
                        c.voucher.products.append(
                            vproduct
                        )  # Assign individual product discount to voucher
                else:
                    for product in category.products_nonfree:
                        if 'product_' + str(
                                product.id) + '_qty' in results['products']:
                            if results['products']['product_' +
                                                   str(product.id) +
                                                   '_qty'] not in (0, None):
                                vproduct = VoucherProduct()
                                vproduct.voucher = c.voucher
                                vproduct.product = product
                                vproduct.qty = results['products'][
                                    'product_' + str(product.id) + '_qty']
                                vproduct.percentage = results['products'][
                                    'product_' + str(product.id) +
                                    '_percentage']
                                meta.Session.add(vproduct)
                                c.voucher.products.append(vproduct)

        meta.Session.commit()  #save all updates
        h.flash("Voucher created")
        return redirect_to(controller='voucher', action='index')
Example #10
0
    def _delete(self, id):
        c.voucher = Voucher.find_by_id(id)

        if not c.voucher.registration:
            meta.Session.delete(c.voucher)
            meta.Session.commit()
            h.flash("Voucher has been deleted.")
        else:
            h.flash("Cannot delete a voucher which has already been used.", 'error')

        redirect_to('index')
Example #11
0
    def _delete(self, id):
        c.voucher = Voucher.find_by_id(id)

        if not c.voucher.registration:
            meta.Session.delete(c.voucher)
            meta.Session.commit()
            h.flash("Voucher has been deleted.")
        else:
            h.flash("Cannot delete a voucher which has already been used.",
                    'error')

        redirect_to('index')