Пример #1
0
def create_project():
    if session.get('username') is None:
        next_url = 'project/create'
        return redirect(url_for('login', next_url=next_url))
    if request.method == 'GET':
        return render_template('projectpublish.html')
    if request.method == 'POST':
        project = dict()
        project['startTime'] = request.form.get('startTime')
        project['endTime'] = request.form.get('endTime')
        project['creator'] = session['username']
        project['status'] = 0
        project['name'] = request.form.get('name')
        project['type'] = request.form.get('type')
        project['budget'] = request.form.get('budget')
        project['description'] = request.form.get('description')
        project['contact'] = request.form.get('contact')
        project['contact_mobile'] = request.form.get('contact_mobile')
        project['contact_email'] = request.form.get('contact_email')
        project['currentPeople'] = 1
        project['created_time'] = datetime.now()
        project['team'] = [session['username']]
        project['applier'] = []
        project['maxPeople'] = int(request.form.get('maxPeople'))
        rm = recommend.recommendDesigner()
        pm = project_manager.ProjectManager()
        project_id = pm.create_project(project)
        rm.createPoi(project_id)
        return redirect(url_for('alldisplay'))
Пример #2
0
def userattendproject():
    # render template without data
    if request.method == 'GET':
        return render_template('user_attend_project.html')
    # request for data
    if request.method == 'POST':
        page_size = 4
        page_no = int(request.json['page_no'])
        pm = project_manager.ProjectManager()
        projects = pm.find_attend_projects_by_user(
            username=session.get('username'),
            page_no=page_no,
            page_size=page_size)
        response = {}
        project_list = []
        username = session.get('username')
        for idx, project in enumerate(projects):
            proj = {
                'id': idx + 1,
                '_id': str(project['_id']),
                'name': project['name'],
                'creator': str(project['creator']),
                'created_time': str(project['created_time']),
                'username': username
            }
            project_list.append(proj)
        response['projects'] = project_list
        project_count = pm.get_attend_project_count_by_user(
            username=session.get('username'))
        import math
        page_count = int(math.ceil(project_count / page_size))
        response['page_count'] = page_count
        response_json = json.dumps(response, default=json_util.default)
        return response_json
Пример #3
0
def apply_project():
    username = session.get('username')
    if username:
        pm = project_manager.ProjectManager()
        pm.apply_project(username, request.json['project_id'])
        print request.json
        print pm.find_project_by_id(request.json['project_id'])
        return '123'
    return 'login'
Пример #4
0
def quit_project():
    username = session.get('username')
    if username:
        pm = project_manager.ProjectManager()
        is_success = pm.quit(username=username,
                             project_id=request.json['project_id'])
        if is_success:
            return jsonify(dict(result='ok'))
        else:
            return jsonify(dict(result='fail'))
Пример #5
0
def singledisplay(project_id):
    pm = project_manager.ProjectManager()
    projects = pm.find_project_by_id(project_id)
    rm = recommend.recommendDesigner()
    flag = request.args.get('flag')
    if (flag == '1' and session.get('username')):
        print 'dasjgasdlfkiu'
        rm.updatePoi(project_id, session.get('username'))
    print projects['team']
    return render_template('projectdisplay.html', project=projects)
Пример #6
0
def show_project_logs():
    log = jlog.get_log_by_project_id(request.args.get('project_id'))
    pm = project_manager.ProjectManager()
    log['project'] = pm.find_project_by_id(log['project_id'])

    def get_p_time(time):
        time = str(time)
        return time[:len(time) - 7]

    return render_template("projectshowlogs.html",
                           log=log,
                           get_p_time=get_p_time)
Пример #7
0
def project_search():
    pm = project_manager.ProjectManager()
    input = request.form['input']
    print 'input' + input
    page = int(request.args.get('page', 1))
    page = max(1, page)
    projects = pm.project_search(input, page=page)
    pages = len(list(projects)) / 9 + 1
    print pages
    return render_template('projectshow.html',
                           projects=projects,
                           page=page,
                           pages=range(pages))
Пример #8
0
def permit_apply():
    username = session.get('username')
    if username:
        pm = project_manager.ProjectManager()
        mes = message.find_mes_by_id(request.json['message_id'])
        applier = mes['username']
        project_id = mes['project_id']
        if username == mes['project_owner']:
            pm.approve_applier(applier, project_id, request.json['message_id'])
            return jsonify(dict(result='ok'))
        else:
            print '没有权限'
            return jsonify(dict(result='false'))
    return 'login'
Пример #9
0
def alldisplay():
    pm = project_manager.ProjectManager()
    page = int(request.args.get('page', 1))
    page = max(1, page)
    projects = pm.find_all_project(page=page)
    pages = pm.project_count()
    if session.get('username'):
        rm = recommend.recommendDesigner()
        recommendprojects = rm.recomendSta(session.get('username'))
        return render_template('projectshow.html',
                               projects=projects,
                               page=page,
                               pages=range(pages),
                               reprojects=recommendprojects)
    return render_template('projectshow.html',
                           projects=projects,
                           page=page,
                           pages=range(pages))
Пример #10
0
def showprojectdetail():
    project_id = request.args.get('project_id')
    pm = project_manager.ProjectManager()
    project = pm.find_project_by_id(project_id)
    project['teamList'] = project['team'][:]
    for i, t_user in enumerate(project['team']):
        _user = auth.find_user_by_username(t_user)
        project['team'][i] = _user
    project['creator'] = auth.find_user_by_username(project['creator'])
    cm = comment.CommentManager()
    comments = cm.get_all_comment_by_projectid(str(project['_id']))
    for _comment in comments:
        _username = _comment['username']
        _user = auth.find_user_by_username(_username)
        _comment['user'] = _user

    def get_p_time(time):
        time = str(time)
        return time[:len(time) - 7]

    return render_template('showprojectdetail.html',
                           project=project,
                           comments=comments,
                           get_p_time=get_p_time)
Пример #11
0
def more_projects():
    pm = project_manager.ProjectManager()
    projects = list(pm.find_all_project())
    return json.dumps(projects, default=json_util.default)
Пример #12
0
def project_edit():
    project_id = request.args.get('project_id')
    pm = project_manager.ProjectManager()
    project = pm.find_project_by_id(project_id)
    return render_template('project_edit.html', project=project)
Пример #13
0
def end_project():
    project_id = request.args.get('project_id')
    project_manager.ProjectManager().finish_project(project_id)
    return redirect(url_for('showprojectdetail', project_id=project_id))