def add_project(): form = AddProjectForm(request.form) if request.method == "POST" and form.validate(): project = Project(form.title.data, form.description.data, form.url.data, form.status.data) db.session.add(project) db.session.commit() project_technology = ProjectsTechnologies(project.id, form.technologies.data) db.session.add(project_technology) db.session.commit() flash("Project added", "info") return redirect(url_for("add_project")) pivot_data = [] technologies = ProjectsTechnologies.query.all() for elem in technologies: technology = Technology.query.filter_by(id=elem.technology_id).first() pivot_data.append((elem.project_id, technology, "technology", "select")) print pivot_data return render_template( "_add.html", form=form, rows=Project.query.all(), target_model="Project", fields=Project.__mapper__.c.keys(), extra_fields=Project.get_pivot_readable_fields(), pivot_data=pivot_data, pivot_data_update=[("technology", Technology.query.all(), "select")], action="addproject", )
def add_new(request): user = request.user if request.method == "POST": form = AddProjectForm(request.POST) if (form.is_valid()): name = form.cleaned_data['name'] project = Project() project.name = name project.user = user project.save() project_user = ProjectUser() project_user.project = project project_user.user = user project_user.save() tag = Tag() tag.name = '#' + name tag.user = user tag.type = 'project' tag.save() return HttpResponseRedirect('/project/' + name) return render(request, 'project/add_new.html', { 'form': AddProjectForm(), })
def index(): formUpdate = UpdateProjectForm(prefix="formUpdate") d = Projects.query.order_by(Projects.id).all() data = [] for p in d: t = p.read.split(" ") if len(data) == 0: data.append(p) elif str(session['author_id']) in t: data.append(p) elif t.count("0") == len(t): data.append(p) form = AddProjectForm(prefix='form') formAdd = AddUserToProjectForm(prefix='formAdd') if form.validate_on_submit() and form.submit.data: a.createProject(session['author_id'], session['session_id'], form.name.data, form.description.data) if formUpdate.validate_on_submit() and formUpdate.submit.data: p = Projects.query.filter_by(id = int(formUpdate.idProject.data)).all() p = p[0] read = filter (lambda a: a != 0, [int(s) for s in p.read.split(" ")]) a.updateProject(session['author_id'], session['session_id'], int(formUpdate.idProject.data), formUpdate.name.data, formUpdate.description.data, read) if formAdd.validate_on_submit() and formAdd.submit.data: p = Projects.query.filter_by(id = int(formAdd.idProject.data)).all() p = p[0] read = filter (lambda a: a != 0, [int(s) for s in p.read.split(" ")]) a.getUserByName(session['author_id'], session['session_id'], formAdd.name.data) time.sleep(1) u = Users.query.filter_by(name = formAdd.name.data).all() if not u: flash("User not found or the server don't send the user information!") else: u = u[0] read.append(u.id) a.updateProject(session['author_id'], session['session_id'], int(formAdd.idProject.data), p.name, p.content, read) return render_template('index.html', data = data, form = form, formUpdate = formUpdate, formAdd = formAdd)
def update_project(project_id): project = Project.query.get_or_404(project_id) if current_user.is_authenticated: form = AddProjectForm() if form.validate_on_submit(): if form.header_image.data: header_image = save_picture(form.header_image.data) project.header_image = header_image if form.project_images.data: for image in form.project_images.data: if image: image = save_picture(image) project.project_images.append(ImageSet(image=image)) time.sleep(2) project.title = form.title.data project.description = form.description.data project.show_in_home = form.show_in_home.data db.session.commit() flash(_('Project has been updated'), 'success') return redirect(url_for('project', project_id=project.id)) elif request.method == 'GET': form.title.data = project.title form.description.data = project.description form.show_in_home.data = project.show_in_home header_image = url_for('static', filename="images/project_images/" + project.header_image) return render_template('update_project.html', title=_("Update Project"), project=project, form=form)
def add_project(): form = AddProjectForm() if form.validate_on_submit(): if form.header_image.data: header_image = save_picture(form.header_image.data) else: header_image = 'default_header.png' project = Project(title=form.title.data, description=form.description.data, header_image=header_image, show_in_home=form.show_in_home.data, user_id=current_user.id) if form.project_images.data: for image in form.project_images.data: if image: image = save_picture(image) project.project_images.append(ImageSet(image=image)) time.sleep(2) db.session.add(project) db.session.commit() flash(_('Project Successfully Added'), 'success') return render_template('add_project.html', title=_('Add Project'), form=form) return render_template('add_project.html', title=_('Add Project'), form=form)
def show_plot(plot_id): """Show specific plot details""" plot = Plot.query.get_or_404(plot_id) if g.user not in plot.users: flash("Not authorized to view this page.", "danger") return redirect(url_for("homepage")) form_plantlist = AddPlantListForm() form_plantlist.plantlists.choices = [( plantlist.id, plantlist.name, ) for plantlist in g.user.plantlists if plantlist not in plot.plantlists] form_project = AddProjectForm() form_project.projects.choices = [( project.id, project.name, ) for project in g.user.projects if project not in plot.projects] return render_template( "plots/show.html", form_plantlist=form_plantlist, form_project=form_project, plot=plot, )
def user_content(user_id): """Shows user content page, which is an overview of projects, plots, and plant lists saved to user's profile""" user = User.query.get_or_404(user_id) if g.user != user: flash("Not authorized to view this page.", "danger") return redirect(url_for("homepage")) form_plot = AddPlotForm() # Load in choices based on users currently connected components form_plot.plots.choices = [(plot.id, plot.name,) for plot in g.user.plots] form_plantlist = AddPlantListForm() form_plantlist.plantlists.choices = [ (plantlist.id, plantlist.name,) for plantlist in g.user.plantlists ] form_project = AddProjectForm() form_project.projects.choices = [ (project.id, project.name,) for project in g.user.projects ] return render_template( "users/content.html", user=user, form_plot=form_plot, form_plantlist=form_plantlist, form_project=form_project, )
def add_entry(): form = AddProjectForm(request.form) cats = db.session.query(Category).all() cats = [cat.title for cat in cats] if request.method == 'POST' and form.validate(): #try: proj = Projects(form.title.data, form.description.data, form.date_end.data, form.goal_end.data, form.httext.data, g.user, form.loc.data, form.types.data, form.lat.data, form.lng.data, form.image_link.data or url_for('static', filename='img/cover.jpg')) dupl = set() for cat in form.cat.data.split(','): cat = cat.strip() if cat: #category = db.session.query(Category).filter_by(title=cat).first() #if not category: #category = Category(title=cat) category = db.session.query(Category).filter_by(title=cat).first() \ or Category(title=cat) if cat not in dupl: proj.cat.append(category) dupl.add(cat) db.session.add(proj) db.session.commit() flash('Project added') #except: #app.logger.debug('Cant add project') return redirect('/') return render_template('add.html', form=form, cats=cats)
def admin(): form_event_add = AddEventForm() form_event_edit = EditEventForm() form_project_add = AddProjectForm() if request.method == 'GET': members = models.Member.query.all() events = models.Event.query.all() projects = models.Project.query.all() technologies = models.Technology.query.all() return render_template('admin.html', form_event_add=form_event_add, form_event_edit=form_event_edit, form_project_add=form_project_add, members=members, projects=projects, technologies=technologies) if request.method == 'POST': action = request.form.get('action') if (action == "event-add"): d = {} for k, v in request.form.items(): if (k == "action" or k == "csrf_token"): continue d[k] = v event = models.Event(**d) db.session.add(event) db.session.commit() return "Added event." elif (action == "event-edit"): event_id = request.form.get('id') d = {} for k, v in request.form.items(): if (k == "action" or k == "csrf_token" or k == 'id'): continue d[k] = v #return str(d); db.session.query( models.Event).filter(models.Event.id == event_id).update(d) db.session.commit() return "Edited event." elif (action == "event-remove"): event_id = request.form.get('event_id') db.session.query( models.Event).filter(models.Event.id == event_id).delete() db.session.commit() return "Removed event." else: return "Fail"
def add_project(): form = AddProjectForm(request.form) if request.method == 'POST' and form.validate(): project = Project(form.title.data, form.description.data, form.url.data, form.status.data) db.session.add(project) db.session.commit() project_technology = ProjectsTechnologies(project.id, form.technologies.data) db.session.add(project_technology) db.session.commit() flash('Project added', 'info') return redirect(url_for('add_project')) pivot_data = [] technologies = ProjectsTechnologies.query.all() for elem in technologies: technology = Technology.query.filter_by(id=elem.technology_id).first() pivot_data.append( (elem.project_id, technology, 'technology', 'select')) print pivot_data return render_template('_add.html', form=form, rows=Project.query.all(), target_model="Project", fields=Project.__mapper__.c.keys(), extra_fields=Project.get_pivot_readable_fields(), pivot_data=pivot_data, pivot_data_update=[ ('technology', Technology.query.all(), 'select') ], action="addproject")
def show_plantlist(plantlist_id): """Show specific plant list""" plantlist = PlantList.query.get_or_404(plantlist_id) if g.user not in plantlist.users: flash("Not authorized to view this page.", "danger") return redirect(url_for("homepage")) # In order to get the appropriate symbols for each plant on a per plantlist basis, # we get the plantlist_plants instance which houses the specific symbol for each # plant on a given plantlist plantlists_plants = PlantLists_Plants.query.filter( PlantLists_Plants.plantlist_id == plantlist_id).all() # Map the symbols to the plants for use in generating on frontend plant_symbol_map = { item.plant_id: item.symbol for item in plantlists_plants } form_plot = AddPlotForm() form_plot.plots.choices = [( plot.id, plot.name, ) for plot in g.user.plots if plot not in plantlist.plots] form_project = AddProjectForm() form_project.projects.choices = [( project.id, project.name, ) for project in g.user.projects if project not in plantlist.projects] return render_template( "plantlists/show.html", form_plot=form_plot, form_project=form_project, plantlist=plantlist, plant_symbol_map=plant_symbol_map, symbol_size="fa-4x", )