Exemple #1
0
def delete_poll(poll_id, delete_key):
    try:
        poll = Poll.get_poll(poll_id)
        if poll is None:
            flask.abort(404)
        if poll.delete_key != delete_key:
            flask.abort(403)
        delete_form = forms.DeleteForm()
        if delete_form.validate_on_submit():
            poll.key.delete()
            import time
            time.sleep(0.5)
            flask.flash('Poll deleted successfully.', 'success')
            events.poll_deleted_event(poll)
            return flask.redirect('/', code=302)  # Redirect back to home page
        form = forms.ResponseForm()
        return flask.render_template('poll.html',
                                     title=poll.title,
                                     poll=poll,
                                     responses=poll.get_responses(),
                                     form=form,
                                     delete_form=delete_form,
                                     delete=True)
    except:  # Poll.get_poll() with an invalid ID can return one of many exceptions so leaving this for general case
        # More info see: https://github.com/googlecloudplatform/datastore-ndb-python/issues/143
        flask.abort(404)
Exemple #2
0
def summit_delete(ridge_id, summit_id):
    if not current_user.admin:
        abort(401)
    form = forms.DeleteForm()
    if form.validate_on_submit():
        g.summits_dao.delete(summit_id)
    return redirect(url_for('index'))
Exemple #3
0
def climb_delete(summit_id, redirect_url):
    del_form = forms.DeleteForm()
    if del_form.validate_on_submit():
        g.climbs_dao.delete(current_user.id, summit_id)
        app.logger.info("Climb deleted uid=%s, sid=%s", current_user.id,
                        summit_id)
        flash(u'Ваше восхождение удалено')
    else:
        flash(u'Invalid CSRF token', 'error')
    return redirect(redirect_url)
Exemple #4
0
def summit(ridge_id, summit_id):
    s = g.summits_dao.get(summit_id, True)
    if s is None:
        return abort(404)
    climbers = move_to_front(g.climbs_dao.climbers(summit_id),
                             lambda x: x['user'] == current_user)
    return render_template('summit.html',
                           summit=s,
                           climbers=climbers,
                           del_form=forms.DeleteForm(),
                           active_page='summits')
Exemple #5
0
def user(user_id):
    user = g.users_dao.get_by_id(user_id)
    if user is None:
        return abort(404)
    climbed = g.climbs_dao.climbed(user_id)
    params = dict(user=user,
                  climbed=climbed,
                  del_form=forms.DeleteForm(),
                  active_page='top')
    if user == current_user:
        params['image_form'] = forms.ImageUploadForm()
    return render_template('user.html', **params)
Exemple #6
0
def settings_delete_account():
    if session['login']:
        form = forms.DeleteForm()
        user = db.member_info(session['user_id'])
        if form.validate_on_submit():
            if check_password_hash(user[0][2], form.password.data):
                db.delete_member(user[0][0])
                flash('Account Deleted', 'success')
                logout()
                return redirect(url_for('index'))
            else:
                flash("Incorrect Password!", "error")
        return render_template('delete_account.html', form=form)
def delete(task_id):
    task = Task.query.get(task_id)
    form2 = forms.DeleteForm()
    if task:
        if form2.validate_on_submit():
            db.session.delete(task)
            db.session.commit()
            flash('Task has been updated')
            return redirect(url_for('index'))

        return render_template('delete.html', form=form2, task_id=task_id, title=task.title)
    else:
        flash('Task not found!')

    return redirect(url_for('index'))
def delete(task_id):
    task = Task.query.get(task_id)
    form = forms.DeleteForm()
    if task:
        if form.validate_on_submit():
            db.session.delete(task)
            db.session.commit()
            flash("Task deleted")
            return redirect(url_for('index'))
        return render_template('delete.html',
                               form=form,
                               task_id=task.id,
                               title=task.title)
    flash("Task doesnot exist")
    return redirect(url_for('index'))
Exemple #9
0
def delete(dispname):
    form = forms.DeleteForm()
    personToDelete = Person.query.filter_by(dispname=dispname).first()
    if form.validate_on_submit():
        if request.method == 'POST':
            # delete information in database
            db.session.delete(personToDelete)
            db.session.commit()
            # delete face embedding(s) in .dat file
            with open('embeddings/senet50_label_emb.dat', 'rb') as f:
                _label_emb = pickle.load(f)
            _label_emb.pop(str(dispname))
            with open('embeddings/senet50_label_emb.dat', 'wb') as f:
                pickle.dump(_label_emb, f)
            # delete image(s) in directory (folder)
            dir_path = 'app/static/' + str(dispname).replace(' ', '_')
            shutil.rmtree(dir_path)
            return redirect(url_for('register'))
    return render_template('CRUD/user_delete.html', personToDelete=personToDelete, form=form)
Exemple #10
0
def delete(request,*kw,**kwargs):
    if request.method == 'GET':
        form = forms.DeleteForm()
        return  django.shortcuts.render_to_response('bots/delete.html', {'form': form},context_instance=django.template.RequestContext(request))
    else:
        if 'submit' in request.POST:
            form = forms.DeleteForm(request.POST)
            if form.is_valid():
                botsglobal.logger.info(_(u'Start deleting in configuration.'))
                if form.cleaned_data['deltransactions']:
                    #while testing with very big loads, deleting transaction when wrong. Using raw SQL solved this.
                    from django.db import connection, transaction
                    cursor = connection.cursor()
                    cursor.execute("DELETE FROM ta")
                    cursor.execute("DELETE FROM filereport")
                    cursor.execute("DELETE FROM report")
                    transaction.commit_unless_managed()
                    request.user.message_set.create(message=_(u'Transactions are deleted.'))
                    botsglobal.logger.info(_(u'    Transactions are deleted.'))
                    #clean data files
                    deletefrompath = botsglobal.ini.get('directories','data','botssys/data')
                    shutil.rmtree(deletefrompath,ignore_errors=True)
                    botslib.dirshouldbethere(deletefrompath)
                    request.user.message_set.create(message=_(u'Data files are deleted.'))
                    botsglobal.logger.info(_(u'    Data files are deleted.'))
                if form.cleaned_data['delconfiguration']:
                    models.confirmrule.objects.all().delete()
                    models.channel.objects.all().delete()
                    models.chanpar.objects.all().delete()
                    models.partner.objects.all().delete()
                    models.translate.objects.all().delete()
                    models.routes.objects.all().delete()
                    request.user.message_set.create(message=_(u'Database configuration is deleted.'))
                    botsglobal.logger.info(_(u'    Database configuration is deleted.'))
                if form.cleaned_data['delcodelists']:
                    models.ccode.objects.all().delete()
                    models.ccodetrigger.objects.all().delete()
                    request.user.message_set.create(message=_(u'User code lists are deleted.'))
                    botsglobal.logger.info(_(u'    User code lists are deleted.'))
                if form.cleaned_data['delinfile']:
                    deletefrompath = botslib.join(botsglobal.ini.get('directories','botssys','botssys'),'infile')
                    shutil.rmtree('bots/botssys/infile',ignore_errors=True)
                    request.user.message_set.create(message=_(u'Files in botssys/infile are deleted.'))
                    botsglobal.logger.info(_(u'    Files in botssys/infile are deleted.'))
                if form.cleaned_data['deloutfile']:
                    deletefrompath = botslib.join(botsglobal.ini.get('directories','botssys','botssys'),'outfile')
                    shutil.rmtree('bots/botssys/outfile',ignore_errors=True)
                    request.user.message_set.create(message=_(u'Files in botssys/outfile are deleted.'))
                    botsglobal.logger.info(_(u'    Files in botssys/outfile are deleted.'))
                if form.cleaned_data['deluserscripts']:
                    deletefrompath = botsglobal.ini.get('directories','usersysabs')
                    for root, dirs, files in os.walk(deletefrompath):
                        head, tail = os.path.split(root)
                        if tail == 'charsets':
                            del dirs[:]
                            continue
                        for bestand in files:
                            if bestand != '__init__.py':
                                os.remove(os.path.join(root,bestand))
                    request.user.message_set.create(message=_(u'User scripts are deleted (in usersys).'))
                    botsglobal.logger.info(_(u'    User scripts are deleted (in usersys).'))
                elif form.cleaned_data['delbackup']:
                    deletefrompath = botsglobal.ini.get('directories','usersysabs')
                    for root, dirs, files in os.walk(deletefrompath):
                        head, tail = os.path.split(root)
                        if tail == 'charsets':
                            del dirs[:]
                            continue
                        for bestand in files:
                            name,ext = os.path.splitext(bestand)
                            if ext and len(ext) == 15 and ext[1:].isdigit() :
                                os.remove(os.path.join(root,bestand))
                    request.user.message_set.create(message=_(u'Backupped user scripts are deleted/purged (in usersys).'))
                    botsglobal.logger.info(_(u'    Backupped user scripts are deleted/purged (in usersys).'))
                botsglobal.logger.info(_(u'Finished deleting in configuration.'))
    return django.shortcuts.redirect('/home')
Exemple #11
0
def delete(request, *kw, **kwargs):
    if request.method == 'GET':
        form = forms.DeleteForm()
        return django.shortcuts.render(request, 'bots/delete.html',
                                       {'form': form})
    else:
        if 'submit' in request.POST:
            form = forms.DeleteForm(request.POST)
            if form.is_valid():
                from django.db import connection, transaction
                if form.cleaned_data['delconfiguration'] or form.cleaned_data[
                        'delcodelists'] or form.cleaned_data['deluserscripts']:
                    #write backup plugin first
                    plugout_backup_core(request, *kw, **kwargs)
                botsglobal.logger.info(_(u'Start deleting in configuration.'))
                if form.cleaned_data['deltransactions']:
                    #while testing with very big loads, deleting gave error. Using raw SQL solved this.
                    cursor = connection.cursor()
                    cursor.execute("DELETE FROM ta")
                    cursor.execute("DELETE FROM filereport")
                    cursor.execute("DELETE FROM report")
                    transaction.commit_unless_managed()
                    messages.add_message(request, messages.INFO,
                                         _(u'Transactions are deleted.'))
                    botsglobal.logger.info(_(u'Transactions are deleted.'))
                    #clean data files
                    deletefrompath = botsglobal.ini.get(
                        'directories', 'data', 'botssys/data')
                    shutil.rmtree(deletefrompath, ignore_errors=True)
                    botslib.dirshouldbethere(deletefrompath)
                    notification = _(u'Data files are deleted.')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                elif form.cleaned_data['delacceptance']:
                    from django.db.models import Min
                    list_file = [
                    ]  #list of files for deletion in data-directory
                    report_idta_lowest = 0
                    for acc_report in models.report.objects.filter(
                            acceptance=1
                    ):  #for each acceptance report. is not very efficient.
                        if not report_idta_lowest:
                            report_idta_lowest = acc_report.idta
                        max_report_idta = models.report.objects.filter(
                            idta__gt=acc_report.idta).aggregate(Min('idta'))[
                                'idta__min']  #select 'next' report...
                        if not max_report_idta:  #if report is report of last run, there is no next report
                            max_report_idta = sys.maxint
                        #we have a idta-range now: from (and including) acc_report.idta till (and excluding) max_report_idta
                        list_file += models.ta.objects.filter(
                            idta__gte=acc_report.idta,
                            idta__lt=max_report_idta).exclude(
                                status=1).values_list('filename',
                                                      flat=True).distinct()
                        models.ta.objects.filter(
                            idta__gte=acc_report.idta,
                            idta__lt=max_report_idta).delete(
                            )  #delete ta in range
                        models.filereport.objects.filter(
                            idta__gte=acc_report.idta,
                            idta__lt=max_report_idta).delete(
                            )  #delete filereports in range
                    if report_idta_lowest:
                        models.report.objects.filter(
                            idta__gte=report_idta_lowest, acceptance=1).delete(
                            )  #delete all acceptance reports
                        for filename in list_file:  #delete all files in data directory geenrated during acceptance testing
                            if filename.isdigit():
                                botslib.deldata(filename)
                    notification = _(
                        u'Transactions from acceptance-testing deleted.')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                if form.cleaned_data['delconfiguration']:
                    models.confirmrule.objects.all().delete()
                    models.routes.objects.all().delete()
                    models.channel.objects.all().delete()
                    models.chanpar.objects.all().delete()
                    models.translate.objects.all().delete()
                    models.partner.objects.all().delete()
                    notification = _(u'Database configuration is deleted.')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                if form.cleaned_data['delcodelists']:
                    #while testing with very big loads, deleting gave error. Using raw SQL solved this.
                    cursor = connection.cursor()
                    cursor.execute("DELETE FROM ccode")
                    cursor.execute("DELETE FROM ccodetrigger")
                    transaction.commit_unless_managed()
                    notification = _(u'User code lists are deleted.')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                if form.cleaned_data['delpersist']:
                    cursor = connection.cursor()
                    cursor.execute("DELETE FROM persist")
                    transaction.commit_unless_managed()
                    notification = _(u'Persist data is deleted.')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                if form.cleaned_data['delinfile']:
                    deletefrompath = botslib.join(
                        botsglobal.ini.get('directories', 'botssys',
                                           'botssys'), 'infile')
                    shutil.rmtree(deletefrompath, ignore_errors=True)
                    notification = _(u'Files in botssys/infile are deleted.')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                if form.cleaned_data['deloutfile']:
                    deletefrompath = botslib.join(
                        botsglobal.ini.get('directories', 'botssys',
                                           'botssys'), 'outfile')
                    shutil.rmtree(deletefrompath, ignore_errors=True)
                    notification = _(u'Files in botssys/outfile are deleted.')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                if form.cleaned_data['deluserscripts']:
                    deletefrompath = botsglobal.ini.get(
                        'directories', 'usersysabs')
                    for root, dirs, files in os.walk(deletefrompath):
                        head, tail = os.path.split(root)
                        if tail == 'charsets':
                            del dirs[:]
                            continue
                        for bestand in files:
                            if bestand != '__init__.py':
                                os.remove(os.path.join(root, bestand))
                    notification = _(u'User scripts are deleted (in usersys).')
                    messages.add_message(request, messages.INFO, notification)
                    botsglobal.logger.info(notification)
                botsglobal.logger.info(
                    _(u'Finished deleting in configuration.'))
    return django.shortcuts.redirect('/home')