Esempio n. 1
0
def edit_project(title):
    import __init__, models, forms
    from __init__ import db
    from models import Project
    from forms import ProjectForm

    project = Project.query.filter_by(title=title).first()
    if not project:
        abort(404)
    project_form = ProjectForm(obj=project)

    if request.method == "POST":
        if project_form.validate():
            project_form.populate_obj(project)
            db.session.commit()
            flash("Edit was successful.")
            return redirect(url_for("main._portfolio"))
        else:
            flash("Project editing failed.")

    return render_template("edit_form.html",
                           form=project_form,
                           title="Edit Projects",
                           right=random.choice(rights),
                           is_web=True)
Esempio n. 2
0
def edit_project2(project_id):

  if 'email' not in session:
    return redirect(url_for('home'))

  project_By_ID = project.query.filter_by(id = project_id).first_or_404()

  show_project = ProjectForm()
  show_project.set_supervisor_choices()

  show_project.setFormContentFromProject(project_By_ID)

  if request.method == 'POST':
    show_project = ProjectForm()
    show_project.set_supervisor_choices()
    if show_project.validate() == False:
      flash('Please fill out everything')
      return render_template('edit_project.html', show_project=show_project, projectByID = project_By_ID)
    else:
      project_By_ID.updateProject(show_project)
      db.session.add(project_By_ID)
      db.session.commit()
      return redirect(url_for('home'))
                     
  elif request.method == 'GET':
    return render_template('edit_project.html', show_project=show_project, projectByID = project_By_ID)
Esempio n. 3
0
def create_project():

  if 'email' not in session:
    return redirect(url_for('home'))

  show_project = ProjectForm()
  show_project.set_supervisor_choices()

  if request.method == 'POST':
    if show_project.validate() == False:
      flash('All fields are required.')
      return render_template('create_project.html', show_project=show_project)
    else:
      new_project = project(show_project, session['email'])
      db.session.add(new_project)
      db.session.commit()
      if show_project.file.data.filename:
        os.makedirs("Project/files/" + str(newuser.id))
        filename = secure_filename(show_project.file.data.filename)
        show_project.file.data.save('Project/files/' + str(newuser.id) + "/" + filename)
      flash('Project has been created')
      return redirect(url_for('create_project'))
 
  elif request.method == 'GET':
    return render_template('create_project.html', show_project=show_project) 
Esempio n. 4
0
def form():
	form = ProjectForm()
	email = session['email']
	project_id = project_nums()
	user = User.query.filter_by(email=email).first()
	user_id = user.uid
	firstname, lastname = user.firstname, user.lastname
	
	if request.method == "POST":
		if form.validate() == False:
			return render_template('form.html', form=form, firstname=firstname, lastname=lastname)
		else:
			name = form.groupname.data
			goal = form.goal.data
			accomplish = form.accomplish.data
			friends = form.friends.data
			new_user_project = Projects(project_id, name, user_id, goal, accomplish)
			if friends:
				friends = friends.split(" ")
				for i in friends:
					friend = None
					if "@" in i:
						friend = User.query.filter_by(email=i[1:-2]).first()
						friend_id = friend.uid
					if friend:
						new_friend_project = Projects(project_id, name, friend_id, '', '')
						db.session.add(new_friend_project)
						db.session.commit()
			db.session.add(new_user_project)
			db.session.commit()

			return redirect(url_for('home', firstname = firstname, lastname = lastname))


	return render_template("form.html", form=form, firstname=firstname, lastname= lastname)
Esempio n. 5
0
 def add(self):
     form = ProjectForm(csrf_enabled=False)
     if form.validate():
         project = form.save()
         db.session.add(project)
         db.session.commit()
         return 201, project.id
     return 400, form.errors
Esempio n. 6
0
 def add(self):
     form = ProjectForm(csrf_enabled=False)
     if form.validate():
         project = form.save()
         db.session.add(project)
         db.session.commit()
         return 201, project.id
     return 400, form.errors
Esempio n. 7
0
File: views.py Progetto: moba/summy
def add_project():
    form = ProjectForm(request.form)
    if not form.validate():
        return str(form.errors)
    project = Project(form.name.data)
    db.session.add(project)
    db.session.commit()
    return redirect(url_for('index'))
Esempio n. 8
0
def new_project():
    form = ProjectForm(request.form)
    if request.method == 'POST' and form.validate():
        # save the project
        osoba = Osoba()
        save_changes(osoba, form, new=True)
        flash('Project created successfully!')
        return redirect('/')
    return render_template('new_project.html', form=form)
Esempio n. 9
0
def project_edit(project_id):
    project = Project.query.filter_by(id=project_id).first_or_404()
    form = ProjectForm(obj=project)

    if request.method == 'POST' and form.validate():
        form.populate_obj(project)
        db.session.commit()

        flash('Project has been updated successfully.', 'success')
        return redirect(url_for('project', project_id=project.id))

    return render_template('project/form.html', form=form, action_url=url_for('project_edit', project_id=project.id))
Esempio n. 10
0
def create_project():
    form = ProjectForm()
    if request.method == "GET" and 'project_id' in request.values:
        form.name.data = request.values['project_id']

    if request.method == "POST":
        # At first, we don't want the user to bother with the identifier
        # so it will automatically be missing because not displayed into
        # the form
        # Thus we fill it with the same value as the filled name,
        # the validation will take care of the slug
        if not form.id.data:
            form.id.data = form.name.data
        if form.validate():
            # save the object in the db
            project = form.save()
            db.session.add(project)
            db.session.commit()

            # create the session object (authenticate)
            session[project.id] = project.password
            session.update()

            # send reminder email
            g.project = project

            message_title = _(
                "You have just created '%(project)s' "
                "to share your expenses",
                project=g.project.name)

            message_body = render_template("reminder_mail.%s" %
                                           get_locale().language)

            msg = Message(message_title,
                          body=message_body,
                          recipients=[project.contact_email])
            try:
                mail.send(msg)
            except SMTPRecipientsRefused:
                msg_compl = 'Problem sending mail. '
                # TODO: destroy the project and cancel instead?
            else:
                msg_compl = ''

            # redirect the user to the next step (invite)
            flash(
                _("%(msg_compl)sThe project identifier is %(project)s",
                  msg_compl=msg_compl,
                  project=project.id))
            return redirect(url_for(".invite", project_id=project.id))

    return render_template("create_project.html", form=form)
Esempio n. 11
0
def getProject(*args, **kwargs):
    """
    获取业务列表
    """
    form = ProjectForm(data=kwargs)
    if not form.validate():
        return dictify(test={"code": 1}, success=False, msg=u"表单参数有误")

    project_id = form.project_id.data

    projects = Project.objects.filter(id__in=project_id).values("id", "name")
    data = list(projects)

    return dictify(test={"code": 4}, success=True, data=data)
Esempio n. 12
0
def getProject(*args, **kwargs):
    """
    获取业务列表
    """
    form = ProjectForm(data = kwargs)
    if not form.validate():
        return dictify(test = {"code": 1}, success = False, msg = u"表单参数有误")

    project_id = form.project_id.data

    projects = Project.objects.filter(id__in = project_id).values("id", "name")
    data = list(projects)

    return dictify(test = {"code": 4}, success = True, data = data)
Esempio n. 13
0
def create_project():
    form = ProjectForm()
    if request.method == "GET" and 'project_id' in request.values:
        form.name.data = request.values['project_id']

    if request.method == "POST":
        # At first, we don't want the user to bother with the identifier
        # so it will automatically be missing because not displayed into
        # the form
        # Thus we fill it with the same value as the filled name,
        # the validation will take care of the slug
        if not form.id.data:
            form.id.data = form.name.data
        if form.validate():
            # save the object in the db
            project = form.save()
            db.session.add(project)
            db.session.commit()

            # create the session object (authenticate)
            session[project.id] = project.password
            session.update()

            # send reminder email
            g.project = project

            message_title = _("You have just created '%(project)s' "
                "to share your expenses", project=g.project.name)

            message_body = render_template("reminder_mail.%s" %
                get_locale().language)

            msg = Message(message_title,
                body=message_body,
                recipients=[project.contact_email])
            try:
                mail.send(msg)
            except SMTPRecipientsRefused:
                msg_compl = 'Problem sending mail. '
                # TODO: destroy the project and cancel instead?
            else:
                msg_compl = ''

            # redirect the user to the next step (invite)
            flash(_("%(msg_compl)sThe project identifier is %(project)s",
                msg_compl=msg_compl, project=project.id))
            return redirect(url_for(".invite", project_id=project.id))

    return render_template("create_project.html", form=form)
Esempio n. 14
0
def add_projects():
    form = ProjectForm(request.form)
    if request.method == 'POST':
        if form.validate() == False:
            flash('All fields are required.')
            return render_template('project_add.html', form=form)
        else:
            choice = filter(lambda c: c[0] == form.name.data, form.name.choices)[0]
            print(choice)
            project_abv = choice[0]
            project_name = choice[1]
            id = create_project(s, name=project_name, short_name=project_abv, user=current_user.id)
            if id == -1:
                form.name.errors = ["That name isn't unique.",]
                return render_template('project_add.html', form=form)
            return view_projects()

    elif request.method == 'GET':
        return render_template('project_add.html', form=form)
Esempio n. 15
0
def new_project():
    import __init__, models, forms
    from __init__ import db
    from models import Project
    from forms import ProjectForm

    project_form = ProjectForm()
    if request.method == "POST":
        if project_form.validate():
            filename = photos.save(project_form.image.data)
            #index =
            file_url = os.path.join('images/projects/', filename)
            index = (db.session.query(db.func.max(Project.index)).scalar()
                     or 0) + 1
            project = Project(title=project_form.title.data,
                              imgfile=file_url,
                              website=project_form.website.data,
                              github_url=project_form.github_url.data,
                              is_game=project_form.is_game.data,
                              description=project_form.description.data,
                              long_desc=project_form.long_desc.data,
                              index=index)

            db.session.add(project)
            print(file_url, flush=True)
            print('successfully added project', flush=True)
            db.session.commit()
            flash("Project was created.")
            return redirect(url_for("main._portfolio"))
        else:
            flash("Project creation failed.")

    return render_template("edit_form.html",
                           form=project_form,
                           title="Create Projects",
                           right=random.choice(rights),
                           new=True,
                           is_web=True)
Esempio n. 16
0
def new_project():
    form = ProjectForm(request.form)
    if request.method == 'POST':
        form.repositories.choices = get_repo_list(g.user)
        if form.validate():
            project = Projects(name=form.name.data, author_id=g.user.id)
            db_session.add(project)
            db_session.commit()
            project.collaborators.append(g.user)
            repo_name_list = []
            for repo in form.repositories.data:
                repo_id, repo_name = repo.split('*')
                repo_name_list.append(repo_name)
                repository = Repositories(
                    name=repo_name, github_repo_id=repo_id, 
                    project_id=project.id)
                db_session.add(repository)
            db_session.commit()
            return redirect(url_for('add_labels', project_id=project.id))

    # this is for GET request
    form.repositories.choices = get_repo_list(g.user)
    return render_template(
        "new_project.html", form=form, view_url=url_for('new_project'))
Esempio n. 17
0
def edit_project(p):
    project = Project.query.filter_by(team_name=p).first()
    if project.admin.nickname != current_user.nickname:
        abort(403)
    else:
        form = ProjectForm()
        if request.method == 'POST':
            status = request.form.get('status')
            if status == "for_avatar":
                avatar_file = request.files['avatar_file']
                filename = f'project_logos/{randomString(20)}{get_ending(avatar_file.filename)}'
                print(f"[DEBUG]::{app.config['UPLOAD_FOLDER']}")

                avatar_file.save(
                    os.path.join(app.config['UPLOAD_FOLDER'], filename))

                os.remove(
                    os.path.join(
                        app.config['UPLOAD_FOLDER'],
                        f"project_logos/{project.logo.replace('/static/project_logos','')}"
                    ))
                project.logo = url_for('static', filename=filename)
                db.session.commit()
                print('[INFO] :: Success setting new project logo')
                return make_response({'filename': filename}, 200)
            elif status == "delete":
                print('[INFO] :: status - project deleted')
                #!!! [WARNING]:: YOU MUST DELETE ALL POSTS, COMMENTS AND CHATS
                for req in project.requests:
                    db.session.delete(req)
                db.session.delete(project)
                db.session.commit()
                return make_response('Success', 200)
            else:
                validation = Form.validate(form)

                if form.validate(instance=project):
                    project.team_name = form.team_name.data
                    project.project_name = form.project_name.data
                    project.tags.clear()
                    for tag in form.selected_tags:
                        t = Tag.query.filter_by(name=tag).first()
                        project.tags.append(t)
                    project.about = form.about.data
                    db.session.commit()
                    return redirect(url_for('get_project',
                                            p=project.team_name))
                else:
                    tags = Tag.query.all()
                    logo = project.logo
                    return render_template('for_project_model/edit.html',
                                           form=form,
                                           tags=tags,
                                           logo=logo)

        form.team_name.data = project.team_name
        form.project_name.data = project.project_name
        form.tags.data = [i.name for i in project.tags]
        form.about.data = project.about
        form.selected_tags = [i.name for i in project.tags]
        print(f'[DEBUG]::{form.selected_tags}')
        tags = Tag.query.all()
        logo = project.logo
        return render_template('for_project_model/edit.html',
                               form=form,
                               tags=tags,
                               logo=logo)