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)
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'))
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)
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')
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)
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'))
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)
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')
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')