def edit(id): errors = [] form = EditTaskForm(request.form) task = None possible_assigned = [elem.username for elem in list(User.view('users/by_username'))] possible_project = [elem.title for elem in list (Project.view('projects/by_title'))] if id == NEW_TASK_ID: task = Task() else: if not g.db.doc_exist(id): abort(404) task = Task.get(id) if request.method == 'GET': form = EditTaskForm(obj=task) form.assigned.choices = zip(possible_assigned, possible_assigned) form.project.choices = zip(possible_project, possible_project) # dirty hack here: we use referrer to determine from which # project we came from and set correct value to select field if PROJECT_ROUTE in request.referrer: project = request.referrer.split('/')[-1] project = Project.get(project_id) form.project.default = project.title form.process() if request.method == 'POST' and form.validate(): form.populate_obj(task) task.author = session['username'] task.update_date = datetime.datetime.utcnow() task.tags = ' '.join(set(task.tags.split())) if id == NEW_TASK_ID: task.create_date = task.update_date task.save() for ff in request.files.keys(): f = request.files[ff] if f: fname = secure_filename(f.filename) fld = os.path.join(UPLOADED_FILES, task._id) if not os.path.exists(fld): os.mkdir(fld) target_path = os.path.join(fld, fname) while os.path.exists(target_path): filename, ext = os.path.splitext(target_path) r = ''.join(random.choice('0123456789abcdef') for i in range(8)) target_path = os.path.join(fld, filename + '-' + r + ext) f.save(target_path) flash('Successfully uploaded %s' % fname) flash('Task was successfully %s' % ('created' if id == NEW_TASK_ID else 'updated')) return redirect(url_for('tasks.show', id=task._id)) errors.extend(format_form_errors(form.errors.items())) return render_template('task_edit.html', id = id, form = form, errors = errors)
def add_project(project): db = connect_db(app.config.get('DB')) Project.set_db(db) # db_project = Project() db_project.author = project['author'] db_project.title = project['title'] db_project.start_date = datetime.date.today() db_project.due_date = datetime.date.today() db_project.text = project['descr'] # db.save_doc(db_project)
def add_project(project): db = connect_db(app.config.get("DB")) Project.set_db(db) # db_project = Project() db_project.author = project["author"] db_project.title = project["title"] db_project.start_date = datetime.date.today() db_project.due_date = datetime.date.today() db_project.text = project["descr"] # db.save_doc(db_project)
def edit(id): errors = [] form = EditProjectForm(request.form) project = None if id == NEW_PROJECT_ID: project = Project() else: if not g.db.doc_exist(id): abort(404) project = Project.get(id) if request.method == 'GET': form = EditProjectForm(obj=project) pass if request.method == 'POST' and form.validate(): form.populate_obj(project) project.author = session['username'] ''' if id != NEW_PROJECT_ID: for ff in request.files.keys(): f = request.files[ff] if f: fname = secure_filename(f.filename) fld = os.path.join(UPLOADED_FILES, id) if not os.path.exists(fld): os.mkdir(fld) target_path = os.path.join(fld, fname) while os.path.exists(target_path): filename, ext = os.path.splitext(target_path) r = ''.join(random.choice('0123456789abcdef') for i in range(8)) target_path = os.path.join(fld, filename + '-' + r + ext) f.save(target_path) flash('Successfully uploaded %s' % fname) ''' project.save() flash('Project was successfully %s' % ('created' if id == NEW_PROJECT_ID else 'updated')) return redirect(url_for('index.index')) errors.extend(format_form_errors(form.errors.items())) return render_template('project_edit.html', id = id, form = form, errors = errors)
def index(): assigned_task = [] author_tasks = [] author_projects = [] if session.get('logged_in', None): username = session['username'] assigned_task = list(Task.view('tasks/by_assigned', key = username)) author_tasks = list(Task.view('tasks/by_author', key = username)) author_projects = list(Project.view('projects/by_author', key = username)) return render_template('index.html', assigned_tasks = assigned_task, \ author_tasks = author_tasks, author_projects = author_projects)
def add_task(task): db = connect_db(app.config.get("DB")) Task.set_db(db) Project.set_db(db) # db_task = Task() # db_project = list(Project.view("projects/by_title", key=task["project"]))[0] db_task.author = task["author"] db_task.assigned = task["assigned"] db_task.priority = task["priority"] db_task.title = task["title"] db_task.text = task["text"] db_task.status = task["status"] db_task.project = db_project.title db_task.create_date = datetime.datetime.utcnow() db_task.update_date = datetime.datetime.utcnow() db_task.due_date = datetime.date.today() # db.save_doc(db_task)
def index(): assigned_task = [] author_tasks = [] author_projects = [] if session.get('logged_in', None): username = session['username'] assigned_task = list(Task.view('tasks/by_assigned', key=username)) author_tasks = list(Task.view('tasks/by_author', key=username)) author_projects = list(Project.view('projects/by_author', key=username)) return render_template('index.html', assigned_tasks = assigned_task, \ author_tasks = author_tasks, author_projects = author_projects)
def add_task(task): db = connect_db(app.config.get('DB')) Task.set_db(db) Project.set_db(db) # db_task = Task() # db_project = list(Project.view('projects/by_title', key=task['project']))[0] db_task.author = task['author'] db_task.assigned = task['assigned'] db_task.priority = task['priority'] db_task.title = task['title'] db_task.text = task['text'] db_task.status = task['status'] db_task.project = db_project.title db_task.create_date = datetime.datetime.utcnow() db_task.update_date = datetime.datetime.utcnow() db_task.due_date = datetime.date.today() # db.save_doc(db_task)
def show(id): if not g.db.doc_exist(id): abort(404) errors = [] project = Project.get(id) tasks = list(Task.view('tasks/by_project', key=project.title)) ''' fpath = os.path.join(UPLOADED_FILES, id) files = None if os.path.exists(fpath): files = os.listdir(fpath) ''' return render_template('project_show.html', \ project = project, tasks = split_by_priority(tasks), errors = errors)
def show(id): if not g.db.doc_exist(id): abort(404) errors = [] project = Project.get(id) tasks = list(Task.view('tasks/by_project', key = project.title)) ''' fpath = os.path.join(UPLOADED_FILES, id) files = None if os.path.exists(fpath): files = os.listdir(fpath) ''' return render_template('project_show.html', \ project = project, tasks = split_by_priority(tasks), errors = errors)
def edit(id): errors = [] form = EditProjectForm(request.form) project = None if id == NEW_PROJECT_ID: project = Project() else: if not g.db.doc_exist(id): abort(404) project = Project.get(id) if request.method == 'GET': form = EditProjectForm(obj=project) pass if request.method == 'POST' and form.validate(): form.populate_obj(project) project.author = session['username'] ''' if id != NEW_PROJECT_ID: for ff in request.files.keys(): f = request.files[ff] if f: fname = secure_filename(f.filename) fld = os.path.join(UPLOADED_FILES, id) if not os.path.exists(fld): os.mkdir(fld) target_path = os.path.join(fld, fname) while os.path.exists(target_path): filename, ext = os.path.splitext(target_path) r = ''.join(random.choice('0123456789abcdef') for i in range(8)) target_path = os.path.join(fld, filename + '-' + r + ext) f.save(target_path) flash('Successfully uploaded %s' % fname) ''' project.save() flash('Project was successfully %s' % ('created' if id == NEW_PROJECT_ID else 'updated')) return redirect(url_for('index.index')) errors.extend(format_form_errors(form.errors.items())) return render_template('project_edit.html', id=id, form=form, errors=errors)
def edit(id): errors = [] form = EditTaskForm(request.form) task = None possible_assigned = [ elem.username for elem in list(User.view('users/by_username')) ] possible_project = [ elem.title for elem in list(Project.view('projects/by_title')) ] if id == NEW_TASK_ID: task = Task() else: if not g.db.doc_exist(id): abort(404) task = Task.get(id) if request.method == 'GET': form = EditTaskForm(obj=task) form.assigned.choices = zip(possible_assigned, possible_assigned) form.project.choices = zip(possible_project, possible_project) # dirty hack here: we use referrer to determine from which # project we came from and set correct value to select field if PROJECT_ROUTE in request.referrer: project = request.referrer.split('/')[-1] project = Project.get(project_id) form.project.default = project.title form.process() if request.method == 'POST' and form.validate(): form.populate_obj(task) task.author = session['username'] task.update_date = datetime.datetime.utcnow() task.tags = ' '.join(set(task.tags.split())) if id == NEW_TASK_ID: task.create_date = task.update_date task.save() for ff in request.files.keys(): f = request.files[ff] if f: fname = secure_filename(f.filename) fld = os.path.join(UPLOADED_FILES, task._id) if not os.path.exists(fld): os.mkdir(fld) target_path = os.path.join(fld, fname) while os.path.exists(target_path): filename, ext = os.path.splitext(target_path) r = ''.join( random.choice('0123456789abcdef') for i in range(8)) target_path = os.path.join(fld, filename + '-' + r + ext) f.save(target_path) flash('Successfully uploaded %s' % fname) flash('Task was successfully %s' % ('created' if id == NEW_TASK_ID else 'updated')) return redirect(url_for('tasks.show', id=task._id)) errors.extend(format_form_errors(form.errors.items())) return render_template('task_edit.html', id=id, form=form, errors=errors)
async def get_all_projects() -> List[Project]: return [ project async for p in db.project.find() if (project := Project.from_mongo(p)) is not None ]
router = APIRouter() @router.post("/test_file/") async def benford_test_file(file: UploadFile = File( ...)) -> BenfordStatsResponse: content = cast(bytes, await file.read()) try: if (df := get_data_frame(content)) is None: raise ValueError("Could not parse your file.") stats = {} for column in df.columns: if (lst := type_guard_and_parse(df[column].to_list())): # PyMongo does not allow for `.` in keys. digit_stats = significant_digits_stats(lst) stats[column.replace(".", ",")] = ColumnStats( values=digit_stats, obey=does_obey_benford(digit_stats)) response = BenfordStatsResponse(stats=stats) project = Project(stats=stats, filename=file.filename) await db.project.insert_one(project.mongo()) except (Exception, ValueError, ValidationError) as err: getLogger("fastapi").error(err) raise HTTPException(status_code=400, detail=str(err)) from err return response @router.get("/assert_stats/") async def benford_test_data() -> Dict[str, float]: return get_benford_assertion()