Exemple #1
0
def store_edit(store_id):
    if not current_user.has_capability('editor'):
        abort(403)
    store = Store.query.get_or_404(store_id)
    if not current_user.has_capability(
            'admin') and store.region not in current_user.region:
        abort(403)
    form = StoreForm(obj=store)
    if form.validate_on_submit():
        opening_times_data = {}
        for field in ['all', 'delivery', 'pickup']:
            opening_times_data[field] = getattr(form,
                                                'opening_times_%s' % field)
            delattr(form, 'opening_times_%s' % field)
        form.populate_obj(store)
        setattr(store, 'revisited_%s' % current_user.role, datetime.utcnow())
        db.session.add(store)
        db.session.commit()
        save_opening_times_form(form, opening_times_data, store)
        es_index_store_delay.delay(store.id)
        create_store_revision_delay.delay(store.id)
        upload_files(form, store, 'store')
        flash('Geschäft erfolgreich gespeichert', 'success')
        return redirect('/admin/stores')
    return render_template('store-edit.html',
                           form=form,
                           store=store,
                           opening_times=get_opening_times_for_form(store.id))
Exemple #2
0
def store_new():
    if not current_user.has_capability('editor'):
        abort(403)
    form = StoreForm()
    if form.validate_on_submit():
        store = Store()
        opening_times_data = {}
        for field in ['all', 'delivery', 'pickup']:
            opening_times_data[field] = getattr(form, 'opening_times_%s' % field)
            delattr(form, 'opening_times_%s' % field)
        form.populate_obj(store)
        db.session.add(store)
        db.session.commit()
        upload_files(form, store, 'store')
        geocode_store_delay.delay(store.id)
        save_opening_times_form(form, opening_times_data, store)
        es_index_store_delay.apply_async((store.id, ), countdown=5)
        create_store_revision_delay.apply_async((store.id, ), countdown=5)
        flash('Geschäft erfolgreich gespeichert', 'success')
        return redirect('/admin/stores')
    return render_template('store-new.html', form=form)