Example #1
0
def index():
    form = ExcursionTypeForm()
    if request.method == 'POST' and form.validate_on_submit():
        excursion = ExcursionType()
        form.populate_obj(excursion)
        excursion.put()
        return redirect(url_for('excursion.admin.index'))
    excursions = ExcursionType.query().order(-ExcursionType.order_id)
    return render_template(
        'excursion/admin/index.html',
        form=form,
        excursions=excursions
    )
Example #2
0
def index():
    about = About.get_master_db()
    about_info = about.short_info

    galleries = Gallery.query(Gallery.is_public==True).order(-Gallery.created)
    images = []
    for gallery in galleries:
        for img in gallery.images:
            if len(images) >= 4:
                break
            images.append(img)

    excursions = ExcursionType.query(ExcursionType.is_public == True).count()
    hotels = Region.query(Region.is_public == True).count()
    exhibition_info = ExhibitionInfo.get_master_db().is_public
    investments = InvestmentInfo.get_master_db().is_public
    tenancy = TenancyInfo.get_master_db().is_public
    coach = CoachInfo.get_master_db().is_public
    soc_widgets = SocWidget.query(SocWidget.is_public == True)

    return render_template(
        'main_page/index.html',
        html_class='main_page',
        about=about_info,
        gallery=images,
        hotels=hotels,
        exhibition_info=exhibition_info,
        excursions=excursions,
        investments=investments,
        tenancy=tenancy,
        coach=coach,
        soc_widgets=soc_widgets
    )
Example #3
0
def edit_excursion(key_id, uid):
    excursion_type = ExcursionType.retrieve_by_id(key_id)
    if not excursion_type:
        return redirect(url_for('excursion.admin.index'))
    excursion = None
    for ex in excursion_type.excursions:
        if ex.uid == uid:
            excursion = ex
            break
    else:
        return redirect(url_for('excursion.admin.edit', key_id=key_id))
    if request.method == 'POST' and 'delete_btn' in request.form:
        for i, ex in enumerate(excursion_type.excursions):
            if ex.uid == uid:
                del excursion_type.excursions[i]
                excursion_type.put()
                break
        return redirect(url_for('excursion.admin.edit', key_id=key_id))
    form = ExcursionForm(obj=excursion)
    if request.method == 'POST' and form.validate_on_submit():
        for i, ex in enumerate(excursion_type.excursions):
            if ex.uid == uid:
                form.populate_obj(excursion_type.excursions[i])
                excursion_type.put()
                break
        return redirect(url_for('excursion.admin.edit', key_id=key_id))
    return render_template(
        'excursion/admin/excursion/edit.html',
        ex_form=form,
        excursion_type=excursion_type,
        excursion=excursion
    )
Example #4
0
def get_excursions():
    excursions = ExcursionType.query(ExcursionType.is_public == True).order(-ExcursionType.order_id)
    if not excursions:
        return redirect(url_for('services.index'))
    return render_template(
        'services/excursions.html',
        html_class='services_page',
        excursions=excursions,
        active_element='excursions'
    )
Example #5
0
def add_excursion(key_id):
    excursion_type = ExcursionType.retrieve_by_id(key_id)
    if not excursion_type:
        return redirect(url_for('excursion.admin.index'))
    if request.method == 'POST' and 'cancel_btn' in request.form:
        return redirect(url_for('excursion.admin.edit', key_id=excursion_type.key.id()))
    form = ExcursionForm()
    if request.method == 'POST' and form.validate_on_submit():
        excursion = Excursion()
        form.populate_obj(excursion)
        excursion.uid = str(uuid.uuid1()).replace('-', '')
        excursion_type.excursions.append(excursion)
        excursion_type.put()
        return redirect(url_for('excursion.admin.edit', key_id=excursion_type.key.id()))
    return render_template(
        'excursion/admin/excursion/add.html',
        ex_form=form,
        excursion_type=excursion_type
    )
Example #6
0
def get_services_side(active_element=None):
    excursions = ExcursionType.query(ExcursionType.is_public == True).order(ExcursionType.order_id)

    regions = Region.query(Region.is_public == True).order(Region.order_id)

    exhibition = ExhibitionInfo.get_master_db()
    exhibition = exhibition.description and exhibition.is_public

    investments = InvestmentInfo.get_master_db().is_public or TenancyInfo.get_master_db().is_public
    coach = CoachInfo.get_master_db().is_public

    return render_template(
        "j_env/services_side.html",
        excursions=excursions,
        regions=regions,
        exhibition=exhibition,
        investments=investments,
        coach=coach,
        active_element=active_element,
    )
Example #7
0
def get_excursion(key_id, uid):
    excursion_type = ExcursionType.retrieve_by_id(key_id)
    if not excursion_type:
        return redirect(url_for('services.index'))
    for i, e in enumerate(excursion_type.excursions):
        if e.uid == uid:
            break
    else:
        return redirect(url_for('services.index'))
    excursion = excursion_type.excursions[i]
    form = ExcursionOrderForm()
    if form.validate_on_submit():
        order = ExcursionOrder()
        form.populate_obj(order)
        order.excursion_name = '%s - %s' % (excursion_type.name, excursion.name)
        feedback_email = model.Config.get_master_db().feedback_email
        try:
            mail.send_mail(
                sender=feedback_email,
                to=feedback_email,
                subject=u'[%s] - Заказ экскурсии [%s]' % (
                    model.Config.get_master_db().brand_name,
                    order.excursion_name
                ),
                reply_to=form.email.data or feedback_email,
                body=u'Имя: %s\nEmail: %s\nТелефон: %s\nДата: %s\nКол-во человек: %s\nДоп. информация: %s\n' % (
                    order.name,
                    order.email,
                    order.telephone,
                    order.date,
                    order.people_count,
                    order.additional_info
                )
            )
        except Exception, e:
            flash(u'Не удалось обработать заказ, попробуйте повторить чуть позже.', category='error')
            logging.error(str(e))
        else:
            flash(u'Спасибо за заказ! Мы свяжемся с Вами в ближайшее время.', category='success')
        return redirect(url_for('services.excursion', key_id=key_id, uid=uid))