Beispiel #1
0
def getById(type, id):
    try:
        o = db_session.query(type).filter_by(id=object.id)
    except:
        db_session.rollback()
    finally:
        closeDbSession()
Beispiel #2
0
def deleteById(object, item_id):
    try:
        db_session.query(type(object)).filter_by(id=item_id).delete()
        db_session.commit()
    except:
        db_session.rollback()
    finally:
        closeDbSession()
Beispiel #3
0
def add(object):
    try:
        db_session.add(object)
        db_session.commit()
    except:
        db_session.rollback()
    finally:
        closeDbSession()
Beispiel #4
0
def query_email(email):
    try:
        r = db_session.query(User).filter_by(email =email).all()
    except:
        db_session.rollback()
        r = None
    db_session.close()
    return r
Beispiel #5
0
def update(object):
    try:
        objToUpdate = db_session.query(type(object)).filter_by(id=object.id)
        objToUpdate.update(object.toMappedValues())
        db_session.commit()
    except:
        db_session.rollback()
    finally:
        closeDbSession()
Beispiel #6
0
def updatedata(data, model):
    try:
        db_session.query(model).filter(model.id == 1).update(data)
        db_session.commit()
        flash("information updated successfully", "success")
    except exc.SQLAlchemyError as e:
        print(e)
        db_session.rollback()
        flash('there was an error committing your data.', 'danger')
Beispiel #7
0
def update_social_media(data):
    try:
        for i, k in enumerate(data, start=1):
            db_session.query(SocialMedia).filter(SocialMedia.site_id == i). \
                update({'site_link': data[k]})
        db_session.commit()
        flash('Restaurant social media accounts committed successfully .',
              'success')
    except exc.SQLAlchemyError:
        db_session.rollback()
        flash('there was an error committing your data.', 'danger')
Beispiel #8
0
    def post(self):
        args = self.reqparse.parse_args()
        o = UserRoles(args["role_name"])

        try:
            db_session.add(o)
            db_session.commit()
        except IntegrityError as err:
            db_session.rollback()
            return {"DB Error: {0}".format(err)}, 500
        return o.as_dict(),201
Beispiel #9
0
    def post(self):
        args = self.reqparse.parse_args()
        o = SubCategory(args["name"],args["description"],args["image_url"],args["category_id"])

        try:
            db_session.add(o)
            db_session.commit()
        except IntegrityError as err:
            db_session.rollback()
            return {"DB Error: {0}".format(err)}, 500
        return o.as_dict(),201
Beispiel #10
0
    def post(self):
        args = self.reqparse.parse_args()
        o = Orders(args["table_id"],args["waiter_id"],args["chef_id"],args["order_details"],args["order_status"],args["cost"])

        try:
            db_session.add(o)
            db_session.commit()
        except IntegrityError as err:
            db_session.rollback()
            return {"DB Error: {0}".format(err)}, 500
        #return o.as_dict(),201
        return "Success"
Beispiel #11
0
def add_employee(data):
    try:
        new_employee = Employee(employee_username=data['employee_username'],
                                employee_email=data['employee_email'],
                                employee_status=data['employee_status'])
        new_employee._set_password = data['employee_password']
        db_session.add(new_employee)
        db_session.commit()
        db_session.refresh(new_employee)
        flash(
            'Employee {} added successfully .'.format(
                data['employee_username']), 'success')
    except exc.SQLAlchemyError as e:
        db_session.rollback()
        flash('there was an error committing your data.', 'danger')
Beispiel #12
0
def add_menu_item(data):
    try:
        new_item = MenuItemsTable(item_name=data['item_name'],
                                  item_category=data['item_category'],
                                  item_status=data['item_status'],
                                  item_price=data['item_price'],
                                  item_size=data['item_size'],
                                  item_image=data['item_image'])
        db_session.add(new_item)
        db_session.commit()
        db_session.refresh(new_item)
        flash('Item {} added successfully .'.format(data['item_name']),
              'success')
    except exc.SQLAlchemyError:
        db_session.rollback()
        flash('there was an error committing your data.', 'danger')
Beispiel #13
0
    def post(self):
        args = self.reqparse.parse_args()
        o = Category(args["name"],args["description"],args["image_url"])

        try:
            db_session.add(o)
            db_session.commit()
        except IntegrityError as err:
            db_session.rollback()
            return {"DB Error: {0}".format(err)}, 500

        file = args['image']
        if file:
            extension = os.path.splitext(file.filename)[1]
            filename = "uploads/categories/category_img_" + str(o.id) + extension
            o.image_url = filename
            file.save(os.path.join(os.getcwd(), filename))

        return o.as_dict(),201
Beispiel #14
0
    def generate_fake(count=100, **kwargs):
        """Generate a number of fake users for testing."""
        from sqlalchemy.exc import IntegrityError
        from random import seed, choice
        from faker import Faker

        fake = Faker()

        seed()
        for i in range(count):
            u = User(first_name=fake.first_name(),
                     last_name=fake.last_name(),
                     email=fake.email(),
                     password='******',
                     verified_email=True,
                     role=choice([r for r in Role]),
                     **kwargs)
            db_session.add(u)
            try:
                db_session.commit()
            except IntegrityError:
                db_session.rollback()
Beispiel #15
0
def few_steps():
    reload(app.utilities)
    customer_details_form = CustomerDetailsForm()
    delivery_customer_details_form = DeliveryCustomerDetailsForm()

    # checks if the customer's POST request is within restaurant's opening days/hours
    within_working_day = (
        (app.utilities.from_date < datetime.datetime.now().time() <
         app.utilities.to_date)
        and datetime.datetime.now().strftime('%A').lower()
        in app.utilities.working_days)
    if request.method == 'POST' and within_working_day:
        order_method = request.values.get('order-method')
        verified = False

        if order_method == 'Pick-up' and customer_details_form.validate():
            order_array = eval(request.cookies.get('order'))
            customer_name = customer_details_form.customer_name.data
            customer_phone = customer_details_form.customer_phone.data
            session['customer_phone'] = customer_phone
            customer_email = customer_details_form.customer_email.data
            address_line1 = ''
            address_line2 = ''
            state = ''
            zipcode = ''
            notes = customer_details_form.notes.data

            try:
                app.utilities.is_number_valid(customer_phone)

                customer = Customers(customer_name=customer_name,
                                     customer_phone=customer_phone,
                                     customer_email=customer_email,
                                     customer_verified=verified)
                db_session.add(customer)
                db_session.commit()
                session['customer_id'] = customer.customer_id

                order = Orders(customer_id=customer.customer_id,
                               order_method=order_method.lower(),
                               datetime_made=datetime.datetime.now(),
                               status='pending',
                               notes=notes)

                db_session.add(order)
                db_session.commit()

                for item in order_array:
                    item = OrderItems(order_id=order.order_id,
                                      item_name=item['item_name'],
                                      item_quantity=item['item_qty'],
                                      item_size=item['item_size'],
                                      item_price=item['item_price'])
                    db_session.add(item)
                    db_session.commit()

            except exc.SQLAlchemyError as e:
                flash(
                    'there was an error submitting your order, please try again later',
                    'danger')
            except TwilioException as e:
                flash(
                    'there was an error submitting your order, please include country key with your phone number and try again',
                    'danger')
            except:
                print('an error occurred :)')
            else:
                return redirect(url_for('.phone_validation'))
            db_session.rollback()
            return render_template(
                'few_steps.html',
                customer_details_form=customer_details_form,
                delivery_customer_details_form=delivery_customer_details_form,
                allow_delivery=app.utilities.delivery_allowed,
                allow_pickup=app.utilities.pickup_allowed,
                delivery_taxes=app.utilities.delivery_tax,
                delivery_charges=app.utilities.delivery_charges,
                min_amount=app.utilities.min_amount,
                max_amount=app.utilities.max_amount,
            )
        elif order_method == 'Delivery' and delivery_customer_details_form.validate(
        ):
            order_array = eval(request.cookies.get('order'))

            customer_name = customer_details_form.customer_name.data
            customer_phone = customer_details_form.customer_phone.data
            session['customer_phone'] = customer_phone
            customer_email = customer_details_form.customer_email.data
            address_line1 = delivery_customer_details_form.address_line1.data
            address_line2 = delivery_customer_details_form.address_line2.data
            state = delivery_customer_details_form.state.data
            zipcode = delivery_customer_details_form.zipcode.data
            notes = delivery_customer_details_form.notes.data

            try:
                app.utilities.is_number_valid(customer_phone)

                customer = Customers(customer_name=customer_name,
                                     customer_phone=customer_phone,
                                     customer_email=customer_email,
                                     customer_verified=verified)
                db_session.add(customer)
                db_session.commit()
                session['customer_id'] = customer.customer_id

                order = Orders(customer_id=customer.customer_id,
                               order_method=order_method.lower(),
                               datetime_made=datetime.datetime.now(),
                               address_line1=address_line1,
                               address_line2=address_line2,
                               state=state,
                               zipcode=zipcode,
                               status='pending',
                               notes=notes)

                db_session.add(order)
                db_session.commit()

                for item in order_array:
                    item = OrderItems(order_id=order.order_id,
                                      item_name=item['item_name'],
                                      item_quantity=item['item_qty'],
                                      item_size=item['item_size'],
                                      item_price=item['item_price'])
                    db_session.add(item)
                    db_session.commit()

            except exc.SQLAlchemyError as e:
                flash(
                    'there was an error submitting your order, please try again later',
                    'danger')
            except TwilioException as e:
                flash(
                    'there was an error submitting your order, please include country key with your phone number and try again',
                    'danger')
            except:
                print('an error occurred :)')
            else:
                return redirect(url_for('.phone_validation'))

            db_session.rollback()
            return render_template(
                'few_steps.html',
                customer_details_form=customer_details_form,
                delivery_customer_details_form=delivery_customer_details_form,
                allow_delivery=app.utilities.delivery_allowed,
                allow_pickup=app.utilities.pickup_allowed,
                delivery_taxes=app.utilities.delivery_tax,
                delivery_charges=app.utilities.delivery_charges,
                min_amount=app.utilities.min_amount,
                max_amount=app.utilities.max_amount)
        return render_template(
            'few_steps.html',
            customer_details_form=customer_details_form,
            delivery_customer_details_form=delivery_customer_details_form,
            allow_delivery=app.utilities.delivery_allowed,
            allow_pickup=app.utilities.pickup_allowed,
            delivery_taxes=app.utilities.delivery_tax,
            delivery_charges=app.utilities.delivery_charges,
            min_amount=app.utilities.min_amount,
            max_amount=app.utilities.max_amount,
        )
    elif request.method == 'POST' and within_working_day is False:
        flash(
            'You can place orders within working hours/days: {}, From {} To {}.'
            .format(', '.join(app.utilities.working_days).title(),
                    app.utilities.from_date.strftime('%H:%M %p'),
                    app.utilities.to_date.strftime('%H:%M %p')), 'warning')

        return render_template(
            'few_steps.html',
            customer_details_form=customer_details_form,
            delivery_customer_details_form=delivery_customer_details_form,
            allow_pickup=app.utilities.pickup_allowed,
            allow_delivery=app.utilities.delivery_allowed,
            delivery_taxes=app.utilities.delivery_tax,
            delivery_charges=app.utilities.delivery_charges,
            min_amount=app.utilities.min_amount,
            max_amount=app.utilities.max_amount,
        )
    return redirect(
        url_for('.menu',
                allow_delivery=app.utilities.delivery_allowed,
                delivery_taxes=app.utilities.delivery_tax,
                delivery_charges=app.utilities.delivery_charges,
                min_amount=app.utilities.min_amount,
                max_amount=app.utilities.max_amount))
Beispiel #16
0
    def process_components(sim_path):
        # dump components
        comps = re.findall(r'filename:[ \t]*([^\s]+)',
                           file(sim_path).read())
        file(dirname(sim_path) + "/comps.json", "w").write(json.dumps(comps))
        # plot components
        for comp in comps:
            for mode in ("lin", "log"):
                plot(dirname(sim_path) + '/' + comp,
                     outfile=dirname(sim_path) + ('/plot-%s-%s.gif' % (comp, mode)),
                     logger=appendLog,
                     logy=(mode == "log"))

    os.path.walk(workdir % 'mcstas',
                 lambda _arg, folder, files:
                 process_components(folder + "/mcstas.sim"),
                 [])


if __name__ == '__main__':
    while True:
        time.sleep(1)
        try:
            work()
        except:
            # rollback any non-committed transactions
            db_session.rollback()
            # print error message to stdout
            print 'Job failed because:'
            traceback.print_exc()
Beispiel #17
0
    def process_components(sim_path):
        # dump components
        comps = re.findall(r'filename:[ \t]*([^\s]+)', file(sim_path).read())
        file(dirname(sim_path) + "/comps.json", "w").write(json.dumps(comps))
        # plot components
        for comp in comps:
            for mode in ("lin", "log"):
                plot(dirname(sim_path) + '/' + comp,
                     outfile=dirname(sim_path) + ('/plot-%s-%s.gif' %
                                                  (comp, mode)),
                     logger=appendLog,
                     logy=(mode == "log"))

    os.path.walk(
        workdir % 'mcstas',
        lambda _arg, folder, files: process_components(folder + "/mcstas.sim"),
        [])


if __name__ == '__main__':
    while True:
        time.sleep(1)
        try:
            work()
        except:
            # rollback any non-committed transactions
            db_session.rollback()
            # print error message to stdout
            print 'Job failed because:'
            traceback.print_exc()