Ejemplo n.º 1
0
 def test_func_get_picture(self):
     BC = BusinessCard(name='name',
                       description='description',
                       contact_information='contact_information',
                       business_id=1)
     db.session.add(BC)
     db.session.commit()
     self.assertEqual(BC.picture, BusinessCard.get_picture(BC.business_id))
Ejemplo n.º 2
0
 def test_func_save(self):
     BC = BusinessCard(name='name',
                       description='description',
                       contact_information='contact_information',
                       business_id=1)
     BC.save()
     committed_BC = BusinessCard.query.get(BC.id)
     self.assertEqual(BC, committed_BC)
Ejemplo n.º 3
0
def business_card_list():
    if not session.get('id', '') == '':
        if not Business.check_confirmed(session.get('id', '')):
            session['id'] = ''

    form = FindForm()
    business_card_list = BusinessCard.sort_by_rating()[::-1]
    if form.validate_on_submit():
        business_card_list = BusinessCard.find(form.words.data)
        if business_card_list[0] == 0:
            form.words.errors = ("Ничего не найдено", "")
    return render_template('business_card_list.html', title='Странички бизнесов',
                           business_card_list=business_card_list, BusinessCard=BusinessCard, form=form)
Ejemplo n.º 4
0
 def test_func_is_real(self):
     BC1 = BusinessCard(name='name',
                        description='description',
                        contact_information='contact_information',
                        business_id=1)
     BC2 = BusinessCard(name='name',
                        description='description',
                        contact_information='contact_information',
                        business_id=2)
     db.session.add(BC1)
     db.session.commit()
     self.assertTrue(BusinessCard.is_real(BC1.id))
     self.assertFalse(BusinessCard.is_real(BC2.id))
Ejemplo n.º 5
0
 def test_func_how_much(self):
     BC1 = BusinessCard(name='name',
                        description='description',
                        contact_information='contact_information',
                        business_id=2)
     BC2 = BusinessCard(name='name',
                        description='description',
                        contact_information='contact_information',
                        business_id=1)
     db.session.add(BC1)
     db.session.add(BC2)
     db.session.commit()
     self.assertEqual(2, BusinessCard.how_much())
Ejemplo n.º 6
0
def business_card(business_id):
    if int(business_id) == session.get('id', '') and (not BusinessCard.is_real(business_id)):
        not_created = True
        return render_template('business_card.html', title='Страница бизнеса', name="", description="",
                               contact_information="", not_created=not_created, Widget=Widget, bid=business_id)
    elif session.get('id', '') == '' and not BusinessCard.is_real(business_id):
        return redirect('/business/business_card_list')
    elif not BusinessCard.is_real(business_id):
        return redirect('/business/business_card_list')
    session['id_client'] = ''
    not_created = False
    name = BusinessCard.get_name(business_id)
    description = BusinessCard.get_description(business_id)
    contact_information = BusinessCard.get_contact_information(business_id)
    address = BusinessCard.get_address(business_id)
    form = CommentsForm()

    if form.validate_on_submit():
        if not Client.is_real(form.email.data, business_id):
            form.email.errors = (
                "Вы не можете отправлять комментарии, потому что вы не являетесь клиентом этого бизнеса", "")
        else:
            comments = Comments(form.text.data, Client.get_id(form.email.data), business_id, form.name.data,
                                form.star.data)
            Comments.save(comments)
            rating = BusinessCard.get_new_rating(business_id)
            rows = BusinessCard.query.filter_by(business_id=business_id).update(
                {'rating': rating})
            db.session.commit()

            return redirect(url_for('business.business_card', business_id=business_id))

    comment_list = Comments.query.filter_by(business_id=business_id).all()
    if session.get('id', '') == int(business_id):
        business_account = True
    else:
        business_account = False
    form.star.data = 1
    howmuchcomments = BusinessCard.how_much_comments(business_id)
    rating = BusinessCard.get_new_rating(business_id)
    return render_template('business_card.html', title='Страничка бизнеса',
                           name=name, description=description,
                           contact_information=contact_information, rating=rating, howmuchcomments=howmuchcomments,
                           business_account=business_account, business_id=business_id, not_created=not_created,
                           form=form, comment_list=comment_list[::-1], address=address, Comments=Comments,
                           BusinessCard=BusinessCard, Widget=Widget, bid=business_id)
Ejemplo n.º 7
0
def login():
    if session.get('id', '') != '':
        if not Business.check_confirmed(session.get('id', '')):
            session['id'] = ''
        return redirect(url_for('business.business_card', business_id=session.get('id', '')))
    session['id_client'] = ''
    find_form = FindForm()
    business_card_list = BusinessCard.sort_by_rating()[::-1]
    if find_form.submit2.data and find_form.validate_on_submit():
        business_card_list = BusinessCard.find(find_form.words.data)
        if business_card_list[0] == 0:
            find_form.words.errors = ("Ничего не найдено", "")

    form = OrderForm()
    if form.submit.data and form.validate_on_submit():
        number = form.number.data
        password = form.password.data
        if Process.query.all() is None:
            form.password.errors = ('Введён неверный номер заказа или  пароль', '')
        elif Process.query.filter_by(number=number).first() is None:
            form.password.errors = ('Введён неверный номер заказа или  пароль', '')
        elif Process.is_real_number(number) is False:
            form.password.errors = ('Введён неверный номер заказа или  пароль', '')
        else:
            if Process.check_p(Process.get_id(number), password):
                session['id_client'] = Process.get_client_id(Process.get_id(number))
                return redirect(url_for('business_client.status', process_id=Process.get_id(number)))

            else:
                form.password.errors = ('Введён неверный номер заказа или  пароль', '')

    return render_template('business_client_index.html',
                           title='Найти заказ',
                           msg='Введите данные заказа',
                           form=form,
                           find_form=find_form,
                           business_card_list=business_card_list,
                           BusinessCard=BusinessCard,
                           )
Ejemplo n.º 8
0
def change_business():
    if session.get('id', '') == '':
        return redirect('/business')
    if not Business.check_confirmed(session.get('id', '')):
        return redirect('/business/unconfirmed')
    changename = ""
    changepassword = ""
    form_name = ChangeBusinessNameForm()
    form_password = ChangeBusinessPasswordForm()
    id = session.get('id', '')
    if form_name.submit1.data and form_name.validate_on_submit():
        free_name = Business.name_is_free(form_name.new_name.data)
        b_password = Business.query.filter_by(id=id).first().password
        b_name = Business.get_name(id)
        if free_name or b_name == form_name.new_name.data \
                and check_password_hash(b_password, form_name.password.data):
            rows = Business.query.filter_by(id=id).update({'name': form_name.new_name.data})
            db.session.commit()
            if BusinessCard.is_real(session.get('id', '')):
                rows = BusinessCard.query.filter_by(business_id=session.get('id', '')).update(
                    {'name': form_name.new_name.data})
                db.session.commit()
            changename = "Название было изменено"
            # return redirect('/change_business')
        elif not free_name and form_name.new_name.data != b_name:
            form_name.new_name.errors = ('Название занято', '')
        elif not check_password_hash(b_password, form_name.password.data):
            form_name.password.errors = ('Неправильный пароль', '')
    if form_password.submit2.data and form_password.validate_on_submit():
        b_password = Business.query.filter_by(id=id).first().password
        check_new = form_password.new_password.data == form_password.check_new_password.data
        check_old = check_password_hash(b_password, form_password.old_password.data)
        password_is_valid = Business.password_is_valid(form_password.new_password.data)
        if check_old and check_new and password_is_valid:
            new_password = generate_password_hash(form_password.new_password.data)
            rows = Business.query.filter_by(id=id).update({'password': new_password})
            db.session.commit()
            changepassword = "******"
            # return redirect('/change_business')
        elif not password_is_valid:
            form_password.new_password.errors = ('Пароль не может содержать пробелы', '')
        elif not check_new:
            form_password.check_new_password.errors = ('Пароли не совпадают', '')
        elif not check_old:
            form_password.old_password.errors = ('Неправильный пароль', '')
    form_name.new_name.data = Business.query.filter_by(id=id).first().name
    return render_template('change_business.html', title='Изменить настройки бизнеса', form=form_name,
                           p_form=form_password,
                           changename=changename, changepassword=changepassword)
Ejemplo n.º 9
0
def creation_card():
    if session.get('id', '') == '':
        return redirect('/business/')
    elif not Business.check_confirmed(session.get('id', '')):
        return redirect('/business/unconfirmed')
    form = CreationCardForm()
    business_id = session.get('id', '')
    name = Business.get_name(business_id)
    if form.validate_on_submit():
        if not BusinessCard.is_real(business_id):
            card = BusinessCard("", "", "", "", business_id)
            BusinessCard.save(card)
        rows = BusinessCard.query.filter_by(business_id=business_id).update({'name': name})
        rows = BusinessCard.query.filter_by(business_id=business_id).update({'description': form.description.data})
        rows = BusinessCard.query.filter_by(business_id=business_id).update(
            {'contact_information': form.contact_information.data})
        rows = BusinessCard.query.filter_by(business_id=business_id).update({'address': form.address.data})
        db.session.commit()

        if 'file' in request.files:
            file = request.files['file']
            if file.filename != '':
                if file and allowed_file(file.filename):
                    pic = Pictures(business_id)
                    id_picture = Pictures.save(pic)
                    picture = str(id_picture)
                    filename = secure_filename(file.filename)
                    picture += "." + filename.rsplit('.', 1)[1].lower()
                    rows = Pictures.query.filter_by(id=id_picture).update({'picture': picture})
                    rows = BusinessCard.query.filter_by(business_id=business_id).update({'picture': picture})
                    db.session.commit()
                    file.save(os.path.join(UPLOAD_FOLDER, str(picture)))
        return redirect(url_for('business.business_card', business_id=session.get('id', '')))
    if BusinessCard.is_real(business_id):
        form.description.data = BusinessCard.get_description(business_id)
        form.contact_information.data = BusinessCard.get_contact_information(business_id)
        form.address.data = BusinessCard.get_address(business_id)
    else:
        form.description.data = ""
        form.contact_information.data = ""
        form.address.data = ""
    return render_template('create_business_card.html', title='Изменить страничку бизнеса', form=form, name=name)
Ejemplo n.º 10
0
def status(process_id):
    if session.get('id', '') != '':
        return redirect(url_for('business.business_card', business_id=session.get('id', '')))
    elif session.get('id_client', '') == '':
        return redirect('/business_client/login')
    elif Process.get_client_id(process_id) != session.get('id_client', ''):
        return redirect('/business_client/login')

    form_stage = StatusEmailForm()
    form_check = CheckBoxForm()
    form_star = RatingForm()
    starsave = ""
    stagesave = ""
    if form_stage.submit1.data:
        if Process.get_send(process_id):
            rows = Process.query.filter_by(id=process_id).update({'send_all_stages': 0})
            db.session.commit()
        else:
            rows = Process.query.filter_by(id=process_id).update({'send_all_stages': 1})
            db.session.commit()

        stagesave = "Изменения были сохранены"

    if form_star.submit2.data:
        rows = Process.query.filter_by(id=process_id).update({"star": form_star.star.data})
        db.session.commit()
        starsave = "Спасибо за оценку"
    rating = Process.get_star(process_id)
    form_check.checkbox.data = False
    send_stages = Process.get_send(process_id)
    number = Process.get_number(process_id)
    client_email = Client.get_email(Process.get_client_id(process_id))
    business_name = Business.get_name(Process.get_business(process_id))
    data = Process.get_data(process_id).strftime("%B %d, %Y")
    type = PossibleProcess.get_type(Process.get_type_id(process_id))
    desc_type = PossibleProcess.get_desc(Process.get_type_id(process_id))
    desc = Process.get_desc(process_id)

    percent = Process.get_percent(process_id)
    current_stage = Process.get_stages(process_id)
    current_stage_name = Process.get_stage_name(current_stage)
    client_id = Process.get_client_id(process_id)
    price = Process.get_price(process_id)

    business_id = Process.get_business(process_id)

    business_card_exists = BusinessCard.is_real(Process.get_business(process_id))

    # получение всех стадий процесса
    stages = Stage.sort_by_id_for_business(Process.get_type_id(process_id))

    chat = Chat.get_by_proc(process_id).id
    is_picture = (PossibleProcess.get_picture(Process.get_type_id(process_id)) != "-1")
    picture = PossibleProcess.get_picture(Process.get_type_id(process_id))
    return render_template('Status.html',
                           title='Статус заказа',
                           number=number,
                           client_email=client_email,
                           business_name=business_name,
                           type=type,
                           desc=desc,
                           desc_type=desc_type,
                           percent=percent,
                           data=data,
                           current_stage=current_stage,
                           current_stage_name=current_stage_name,
                           stages=stages,
                           price=price,
                           business_id=business_id,
                           form_stage=form_stage,
                           form_check=form_check,
                           send_stages=send_stages,
                           form_star=form_star,
                           rating=rating,
                           starsave=starsave,
                           stagesave=stagesave,
                           business_card_exists=business_card_exists,
                           client_id=client_id,
                           chat=chat,
                           is_picture=is_picture,
                           picture=picture,
                           Widget=Widget)
Ejemplo n.º 11
0
 def test_func_by_rating(self):
     BC = BusinessCard(name='name',
                       description='description',
                       contact_information='contact_information',
                       business_id=1)
     self.assertEqual(BC.rating, BusinessCard.by_rating(BC))
Ejemplo n.º 12
0
def mock():
    db.drop_all()
    db.create_all()

    # Первый бизнес

    business = Business(name="Туристическое агенство Маленький Принц", password="******",
                        email="*****@*****.**", confirmed=True)
    Business.save(business)

    # возможная услуга для первого бизнеса
    process = PossibleProcess("Помощь выбора путёвки", "Подбор идеального места для отдыха", 1, "10000")
    pr_id = process.save()

    stage_not_started = Stage("Не начат", 1)
    stage_not_started.save()
    stage_finished = Stage("Закончен", 1)
    stage_finished.save()

    # стадии для этой услуги
    stage = Stage("Анкетирование", 1)
    stage.save()

    stage = Stage("Диалог с клиентом", 1)
    stage.save()

    stage = Stage("Покупка путёвки", 1)
    stage.save()

    Stage.fix_not_finished(1)

    # созданный заказ для первой услуги
    client = Client('*****@*****.**')
    client.save()

    process = Process(1, 'Подбор идеального места для отдыха', 1, 1, "AAAAAA-AAAAAA", "10000", "qweqwe")
    process.save()

    # вторая возможная услуга для первого бизнеса
    process = PossibleProcess("Собственная экскурсия",
                              "Создание экскурсии спецально по персональным требованиям клиента", 1, "20000")
    pr_id = process.save()

    # стадии для этой услуги
    stage_not_started = Stage("Не начат", 2)
    stage_not_started.save()
    stage_finished = Stage("Закончен", 2)
    stage_finished.save()

    stage = Stage("Диалог с клиентом", 2)
    stage.save()

    stage = Stage("Поиск экукурсоводов", 2)
    stage.save()

    stage = Stage("Создание программы экскурсии", 2)
    stage.save()

    Stage.fix_not_finished(2)

    pic = Pictures(1)
    id_picture = Pictures.save(pic)
    picture = "2.jpeg"
    rows = Pictures.query.filter_by(id=id_picture).update({'picture': picture})
    rows = PossibleProcess.query.filter_by(id=2).update({'picture': picture})
    db.session.commit()

    # созданный заказ для второй услуги
    client = Client('*****@*****.**')
    client.save()

    process = Process(2, 'Предпочитает картинные галереи', 1, 2, "BBBBBB-BBBBBB", "20000", "asdasd")
    process.save()

    rows = Process.query.filter_by(id=2).update({'current_stage': 9})
    rows = Process.query.filter_by(id=2).update({'percent': round(45)})
    db.session.commit()

    # создать страницу первого бизнеса
    card = BusinessCard("Туристическое агенство Маленький Принц",
                        "Поможем Вам найти место для идеального препровождения", "Телефон: +7(924)732-90-65",
                        "метро Добрынинская", 1)
    BusinessCard.save(card)

    pic = Pictures(1)
    id_picture = Pictures.save(pic)
    picture = "1.jpg"
    rows = Pictures.query.filter_by(id=id_picture).update({'picture': picture})
    rows = BusinessCard.query.filter_by(business_id=1).update({'picture': picture})
    db.session.commit()

    # создать комментарии к бизнесу
    comments = Comments(
        "Очень доволен фирмой! Крайне приятный персонал: были вежливы и очень быстро мне подобрали место для отдыха", 1,
        1, "Александр", 5)
    Comments.save(comments)
    # еще один
    comments = Comments("Всё, конечно, хорошо, но с местом немного прогадали. Но никаких особых претензий нет", 2, 1,
                        "Анастасия", 1)
    Comments.save(comments)

    rating = BusinessCard.get_new_rating(1)
    rows = BusinessCard.query.filter_by(business_id=1).update(
        {'rating': rating})
    db.session.commit()

    # Второй бизнес

    business = Business(name="Общество историков 1984", password="******",
                        email="*****@*****.**", confirmed=True)
    Business.save(business)

    # возможная услуга для второго бизнеса
    process = PossibleProcess("Подготовка к ЕГЭ", "Курсы по подготовке к ЕГЭ по истории", 2, "30000")
    pr_id = process.save()

    stage_not_started = Stage("Не начат", 3)
    stage_not_started.save()
    stage_finished = Stage("Закончен", 3)
    stage_finished.save()

    # стадии для этой услуги
    stage = Stage("Первый триместр", 3)
    stage.save()

    stage = Stage("Второй триместр", 3)
    stage.save()

    stage = Stage("Третий триместр", 3)
    stage.save()

    Stage.fix_not_finished(3)

    # созданный заказ для первой услуги
    client = Client('*****@*****.**')
    client.save()

    process = Process(3, 'Курсы по подготовки к ЕГЭ по истории', 2, 3, "CCCCCC-CCCCCC", "30000", "zxczxc")
    process.save()

    # вторая возможная услуга для второго бизнеса
    process = PossibleProcess("Консультирование", "Помощь в написании курсовой/докторской и прочих работ", 2, "40000")
    pr_id = process.save()

    stage_not_started = Stage("Не начат", 4)
    stage_not_started.save()
    stage_finished = Stage("Закончен", 4)
    stage_finished.save()

    # стадии для этой услуги
    stage = Stage("Первая встреча", 4)
    stage.save()

    stage = Stage("Поиск информации", 4)
    stage.save()

    stage = Stage("Консультирование", 4)
    stage.save()

    Stage.fix_not_finished(4)

    # созданный заказ для второй услуги

    process = Process(4, 'Помощь в написании курсовой/докторской и прочих работ', 2, 1, "DDDDDD-DDDDDD", "40000",
                      "werwer")
    process.save()

    business = Business(name="Как у бабушки", password="******",
                        email="*****@*****.**", confirmed=True)
    Business.save(business)

    w = Widget(-1, 'game', 'http://0.0.0.0:8080/business/widget', 'game', 1, 3)
    w.save()

    # возможная услуга для 3 бизнеса
    process = PossibleProcess("Домашняя пицца", "Сделанная дома пицца по рецепту моей бабушки", 3, "50000")
    pr_id = process.save()

    stage_not_started = Stage("Не начат", 5)
    stage_not_started.save()
    stage_finished = Stage("Закончен", 5)
    stage_finished.save()

    # стадии для этой услуги
    stage = Stage("Приготовление пиццы", 5)
    stage.save()

    stage = Stage("Упаковка пиццы", 5)
    stage.save()

    stage = Stage("Доставка", 5)
    stage.save()

    Stage.fix_not_finished(5)

    process = Process(5, 'Сделанная дома пицца', 3, 1, "EEEEEE-EEEEEE", "30000", "sdfsdf")
    process.save()

    # вторая возможная услуга для второго бизнеса
    process = PossibleProcess("Домашняя шаурма", "Сделанная дома шаурма по-моему рецепту", 3, "40000")
    pr_id = process.save()

    stage_not_started = Stage("Не начат", 6)
    stage_not_started.save()
    stage_finished = Stage("Закончен", 6)
    stage_finished.save()

    # стадии для этой услуги
    stage = Stage("Приготовление шаурмы", 6)
    stage.save()

    stage = Stage("Упаковка", 6)
    stage.save()

    stage = Stage("Доставка", 6)
    stage.save()

    Stage.fix_not_finished(6)

    process = Process(6, 'Сделанная дома шаурма', 3, 1, "FFFFFF-FFFFFF", "40000", "xcvxcv")
    process.save()

    process = Process(2, 'Детская экскурсия', 1, 2, "GGGGGG-GGGGGG", "25000", "ertert")
    process.save()

    rows = Process.query.filter_by(id=7).update({'current_stage': 7})
    rows = Process.query.filter_by(id=7).update({'percent': round(100)})
    db.session.commit()

    print('Success')