示例#1
0
def create_project():
    if request.method == 'GET':
        form = CreateProjectForm(request.form)
        return render_template('create_project.html', form=form)
    name = request.form['name']
    code = request.form['code']
    company = request.form['company']
    description = request.form['description']
    budget = request.form['budget']
    contingency = request.form['contingency']
    leader = request.form['leader']
    coordinator = request.form['coordinator']
    status = 3
    cat_id = request.form['category']
    sub_cat_id = request.form['sub_category']
    category = db.session.query(Category).get(cat_id)
    sub_category = db.session.query(SubCategory).get(sub_cat_id)
    if request.form.get('is_old') is not None:
        is_old = True
    else:
        is_old = False
    member_list = request.form.getlist('member')
    adviser_list = request.form.getlist('adviser')
    member_list.append(int(leader))
    skill_list = request.form.getlist('skill')
    deadline = datetime.strptime(request.form['deadline'], "%m/%d/%Y").date()
    start_date = datetime.strptime(request.form['start_date'],
                                   "%m/%d/%Y").date()
    is_duplicate = Project.query.filter_by(code=code, name=name).first()
    if is_duplicate is None:
        project = Project(name, code, company, description, budget,
                          contingency, leader, coordinator, is_old, start_date,
                          deadline, status)
        # To add new skill
        for i in skill_list:
            skill = db.session.query(Skill).get(i)
            project.skills.append(skill)
        # To add new member
        for i in member_list:
            member = db.session.query(Student).get(i)
            project.members.append(member)
        # To add new adviser
        for i in adviser_list:
            adviser = db.session.query(Stakeholder).get(i)
            project.advisers.append(adviser)
        project.categories.append(category)
        project.sub_categories.append(sub_category)
        project.created_at = datetime.now()
        generate_planning_hour(project)
        db.session.add(project)
        db.session.commit()
        flash('Project created')
        return redirect('/project/projects')
    else:
        form = CreateProjectForm(request.form)
        error = 'Duplicate entry'
        return render_template('create_project.html', error=error, form=form)