コード例 #1
0
ファイル: routes.py プロジェクト: Nishka/info3180-project3_4
def register(name=None):
    """ Adds a new user to the wishlist user base"""
    title="Register"
    error=None
    if request.method == "GET":
        return render_template("register.html",title=title)
    if request.method == "POST":
        print "method is post"
        if request.form['firstname']=="" or request.form['lastname'] =="" or request.form['email']=="" or request.form['password'] =="" or request.form['password_conf'] =="":
            error="Invalid User Info Supplied"
            print error
        else:
            try:
                
                if request.form['password'] !=request.form['password_conf']:
                    error ="passwords dont match"
                else:
                    created_user = User(request.form['firstname'].upper(),request.form['lastname'].upper(),request.form['email'].lower(),request.form['password'].upper())
                   
                    conn = sqlite3.connect(app.config['DATABASE'])
                    if conn is not None:
                        cur = conn.cursor()
                        cur.execute("SELECT * from wishlist_users where email=?",(created_user.email))
                        row = cur.fetchone()
                        if row is None:
                            cur.execute("INSERT INTO wishlist_users (firstname,lastname,email,password) VALUES (?,?,?,?)", (created_user.firstname, created_user.lastname, created_user.email, created_user.password) )
                            conn.commit()
                        else:
                            raise ValueError
                        print created_user.firstname
                    error= "User Created Successfully! Please go to login page"
            except:
                error="Registration Failed"
        return render_template("register.html",title=title,error=error)
コード例 #2
0
def login():
    """ Verifies whether or not user has access to wishlist"""
    title="Login"
    if request.method == "GET":
        return render_template("login.html",title=title)
    if request.method == "POST":
        request.form['']
        return render_template("login.html",title=title)
コード例 #3
0
def login():
    """ Verifies whether or not user has access to wishlist"""
    title = "Login"
    if request.method == "GET":
        return render_template("login.html", title=title)
    if request.method == "POST":
        request.form['']
        return render_template("login.html", title=title)
コード例 #4
0
ファイル: routes.py プロジェクト: Nishka/info3180-project3_4
def login():
    """ Verifies whether or not user has access to wishlist"""
    title="Login"
    if request.method == "GET":
        return render_template("login.html",title=title)
    if request.method == "POST":
        print "inside post"
        if valid_login(request.form['email'],request.form['password']):
            print "valid user"
            return log_the_user_in(request.form['email'].lower())
        else:
            error="Failed Login"
        return render_template("login.html",title=title,error=error)
コード例 #5
0
ファイル: board.py プロジェクト: bluenote212/rnd-board
def board_write():
    if session["id"] is None or session["id"] == "":
        return redirect(url_for("board.member_login"))

    if request.method == "POST":
        #name = request.form.get("name")
        writer_id = session.get("id")
        title = request.form.get("title")
        contents = request.form.get("contents")

        current_utc_time = round(datetime.utcnow().timestamp() * 1000)

        board = mongo.db.board

        post = {
            "writer_id": writer_id,
            "name": session["name"],
            "title": title,
            "contents": contents,
            "view": 0,
            "pubdate": current_utc_time,
        }
        x = board.insert_one(post)
        return redirect(url_for("board.board_view", idx=x.inserted_id))
    else:
        return render_template("write.html", name=session["name"], title="글 작성")
コード例 #6
0
def getwall():
    """
        Fast estimate Wall
    """
    categories = [(c.id, c.name) for c in Category.query.all()]

    c_form = ColumnEntryForm(request.form)
    f_form = FoundationEntryForm(request.form)
    o_form = OpeningForm(request.form)
    sb_form = BeamEntryForm(request.form)
    w_form = WallEntryForm(request.form)

    c_form.category.choices = categories
    f_form.category.choices = categories
    o_form.category.choices = categories
    sb_form.category.choices = categories
    w_form.category.choices = categories

    return render_template('wall_index.html',
                           title='FastEstimate Wall',
                           beam_form=sb_form,
                           column_form=c_form,
                           foundation_form=f_form,
                           opening_form=o_form,
                           wall_form=w_form,
                           beams=Beam.query.all(),
                           columns=Column.query.all(),
                           foundations=Foundation.query.all(),
                           openings=Opening.query.all(),
                           walls=Wall.query.all())
コード例 #7
0
ファイル: project.py プロジェクト: bluenote212/rnd-board
def project_write():
    col = mongo.db.version_list_customer
    data = col.find({}).sort("pubdate",-1)
    
    if request.method == "POST":
        
        project_name1 = request.form.get("project_name1")
        project_name2 = request.form.get("project_name2")
        name = request.form.get("name")
        startdate = request.form.get("startdate")
        enddate = request.form.get("enddate")
        author = request.form.get("author")
        
        current_utc_time = round(datetime.utcnow().timestamp() * 1000)
        
        post = {
                "project_name1" : project_name1,
                "project_name2" : project_name2,
                "name" : name,
                "startdate" : startdate,
                "enddate" : enddate,
                "author" : author,
                "pubdate": current_utc_time,
                }
        col.insert_one(post)

        return redirect(url_for("project.project_write", data=data))
    
    else:
        return render_template("project_write.html", data=data)
コード例 #8
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def walls(page=1):
    """
        This method returns the list of all products in the database in
         JSON format
    """
    walls = Wall.query.paginate(page, 5)
    return render_template('walls.html', title='Walls', walls=walls)
コード例 #9
0
ファイル: board.py プロジェクト: bluenote212/rnd-board
def board_edit(idx):
    if request.method == "GET":
        board = mongo.db.board
        data = board.find_one({"_id": ObjectId(idx)})
        if data is None:
            flash("해당 게시물이 존재하지 않습니다.")
            return redirect(url_for("board.lists"))
        else:
            if session.get("id") == data.get("writer_id"):
                return render_template("edit.html", data=data, title="글 수정")
            else:
                flash("글 수정 권한이 없습니다.")
                return redirect(url_for("board.lists"))
    else:
        title = request.form.get("title")
        contents = request.form.get("contents")
        board = mongo.db.board

        data = board.find_one({"_id": ObjectId(idx)})

        if data.get("writer_id") == session.get("id"):
            board.update_one({"_id": ObjectId(idx)}, {
                "$set": {
                    "title": title,
                    "contents": contents,
                }
            })
            flash("수정되었습니다.")
            return redirect(url_for("board.board_view", idx=idx))
        else:
            flash("글 수정 권한이 없습니다.")
            return redirect(url_for("board.lists"))
コード例 #10
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def create_category():
    form = CategoryForm(request.form)

    return render_template(
        'category_create.html',
        title='Category By Id',
        form=form,
    )
コード例 #11
0
def register(name=None):
    """ Adds a new user to the wishlist user base"""
    title="Register"
    error=None
    if request.method == "GET":
        return render_template("register.html",title=title)
    if request.method == "POST":
        print "method is post"
        print request.form['firstname']
        if request.form['firstname']=="" or request.form['lastname'] =="" or request.form['email']=="" or request.form['password'] =="" or request.form['password_conf'] =="":
            error="Invalid User Info Supplied"
        created_user = User(request.form['firstname'],request.form['lastname'],request.form['email'],request.form['password'])
        print created_user
        if created_user == "<User ''>":
            
            print error
        return render_template("register.html",title=title,error=error)
コード例 #12
0
ファイル: admin.py プロジェクト: semyoyon/vkr_site
def admin():
    # Check if admin is logged-in
    if not admin_loggedin():
        return redirect(url_for('login'))
    msg = ''
    # Retrieve all accounts from the database
    cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
    cursor.execute('SELECT * FROM accounts')
    accounts = cursor.fetchall()
    return render_template('admin/index.html', accounts=accounts)
コード例 #13
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def home():
    """
        Fast estimate Home Page
    """
    wall_resource = 'http://localhost:8090/wall/:WA1'
    res = requests.get(wall_resource)
    wall_ = loads(res.text)
    return render_template(
        'index.html',
        title='FastEstimate',
        message="Create Professional Construction Estimates in Seconds.",
        wall=wall_)
コード例 #14
0
def register(name=None):
    """ Adds a new user to the wishlist user base"""
    title = "Register"
    error = None
    if request.method == "GET":
        return render_template("register.html", title=title)
    if request.method == "POST":
        print "method is post"
        print request.form['firstname']
        if request.form['firstname'] == "" or request.form[
                'lastname'] == "" or request.form[
                    'email'] == "" or request.form[
                        'password'] == "" or request.form[
                            'password_conf'] == "":
            error = "Invalid User Info Supplied"
        created_user = User(request.form['firstname'],
                            request.form['lastname'], request.form['email'],
                            request.form['password'])
        print created_user
        if created_user == "<User ''>":

            print error
        return render_template("register.html", title=title, error=error)
コード例 #15
0
ファイル: test_main.py プロジェクト: sierxue/gt
def test_render_template():
    path = pathlib.Path("./nbs/other/Assessment.ipynb")
    path_id = main.get_id(path)
    nb, _ = main.convert_html(path)
    nb = nb.replace("{{root}}", main.ROOT)
    html = main.render_template("content.html", {
        "nb": nb,
        "root": main.ROOT,
        "id": path_id,
    })

    assert type(html) is str
    assert main.ROOT in html
    assert path_id in html
    assert nb in html
コード例 #16
0
ファイル: board.py プロジェクト: bluenote212/rnd-board
def lists():
    page = request.args.get("page", 1, type=int)
    limit = request.args.get("limit", 10, type=int)

    search = request.args.get("search", -1, type=int)
    keyword = request.args.get("keyword", "", type=str)

    query = {}
    search_list = []

    if search == 0:
        search_list.append({"title": {"$regex": keyword}})
    elif search == 1:
        search_list.append({"contents": {"$regex": keyword}})
    elif search == 2:
        search_list.append({"title": {"$regex": keyword}})
        search_list.append({"contents": {"$regex": keyword}})
    elif search == 3:
        search_list.append({"name": {"$regex": keyword}})

    if len(search_list) > 0:
        query = {"$or": search_list}

    board = mongo.db.board
    datas = board.find(query).skip((page-1) * limit).limit(limit)

    tot_count = board.find(query).count()
    last_page_num = math.ceil(tot_count / limit)

    block_size = 5
    block_num = int((page-1) / block_size)
    block_start = int((block_size * block_num) + 1)
    block_last = math.ceil(block_start + (block_size-1))

    
    return render_template(
            "list.html", 
            datas=datas, 
            limit=limit, 
            page=page,
            block_start=block_start,
            block_last=block_last,
            last_page=last_page_num,
            search=search,
            keyword=keyword,
            title="게시판 리스트"
            )
コード例 #17
0
ファイル: admin.py プロジェクト: semyoyon/vkr_site
def admin_emailtemplate():
    # Check if admin is logged-in
    if not admin_loggedin():
        return redirect(url_for('login'))
    # Get the template directory path
    template_dir = os.path.join(os.path.dirname(__file__), 'templates')
    # Update the template file on save
    if request.method == 'POST':
        content = request.form['content'].replace('\r', '')
        open(template_dir + '/activation-email-template.html',
             mode='w',
             encoding='utf-8').write(content)
    # Read the activation email template
    content = open(template_dir + '/activation-email-template.html',
                   mode='r',
                   encoding='utf-8').read()
    return render_template('admin/email-template.html', content=content)
コード例 #18
0
ファイル: routes.py プロジェクト: Nishka/info3180-project3_4
def view_test():
    """ Verifies whether or not user has access to test"""
    try:
        conn = sqlite3.connect(app.config['DATABASE'])
        print "connect done"
        if conn is not None:
            cur = conn.cursor()
            print "cursor done"
            cur.execute("SELECT * from wishlist_users")
            print "execute done"
            row = cur.fetchone()
            if row is not None:
                print "fetch done in if"
                return jsonify(uid=row[0],email=row[3],firstname=row[1],lastname=row[2])
        else:
            raise ValueError
    except:
        error="Failed to generate json"
        return render_template('home.html', error=error)
コード例 #19
0
ファイル: project.py プロジェクト: bluenote212/rnd-board
def project_view():
    idx = request.args.get("idx")
    if idx is not None:
        col = mongo.db.version_list_customer
        data = col.find_one({"_id": ObjectId(idx)})
        result = {
            "id": data.get("_id"),
            "project_name1": data.get("project_name1"),
            "project_name2": data.get("project_name2"),
            "name": data.get("name"),
            "startdate": data.get("startdate"),
            "enddate": data.get("enddate"),
            "author": data.get("author"),
            "pubdate": data.get("pubdate")
        }
    
        #return(result['project_name'])
        return render_template("project_view.html", result=result)
    return abort(400)
コード例 #20
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def wall_result():
    """
        Fast estimate Wall
    """

    data = dict(doc_id=uu_id('doc'))
    if request.method == 'POST':
        data['wall_tag'] = request.form.get('tag')
        data['length'] = request.form.get('length')
        data['height'] = request.form.get('height')
        #data['category'] = Category.query.get_or_404(request.form.get('category'))
        data['rebar'] = dict(hbar=request.form.get('h_bar_type'),
                             hspacing=request.form.get('h_bar_spacing'),
                             vbar=request.form.get('v_bar_type'),
                             vspacing=request.form.get('v_bar_spacing'))
    #qsr = qsrep.Stuctural
    #product = Product(name, price, category, uid)
    openings_dict = {}
    openings = Opening.query.filter_by(wall_tag=data['wall_tag']).all()

    if openings is not None:
        for opening in openings:
            openings_dict[opening.tag] = {
                'w': opening.width,
                'h': opening.height,
                'amt': opening.amount
            }
    else:
        openings_dict = None

    wall_bq = estimator.Walls(data['length'], data['height'], openings_dict)
    data['estimate'] = wall_bq.wall
    #wall_data = str(data)

    #wall_resource = 'http://localhost:8090/wall/:' +  wall_data
    #res = requests.get(wall_resource)
    #wall_ = loads(res.text)
    return render_template('wall_result.html',
                           title='FastEstimate Wall',
                           data=data,
                           opening=openings_dict)
コード例 #21
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def getwall():
    """
        Fast estimate Wall
    """
    categories = [(c.id, c.name) for c in Category.query.all()]
    w_form = WallEntryForm(request.form)
    o_form = OpeningForm(request.form)
    sb_form = BeamEntryForm(request.form)
    o_form.category.choices = categories
    w_form.category.choices = categories
    sb_form.category.choices = categories

    openings = Opening.query.all()
    beams = Beam.query.all()
    return render_template('wall_index.html',
                           title='FastEstimate Wall',
                           wall_form=w_form,
                           opening_form=o_form,
                           beam_form=sb_form,
                           openings=openings,
                           beams=beams)
コード例 #22
0
ファイル: board.py プロジェクト: bluenote212/rnd-board
def board_view():
    idx = request.args.get("idx")
    page = request.args.get("page", 1, type=int)
    search = request.args.get("search", -1, type=int)
    keyword = request.args.get("keyword", "", type=str)

    if idx is not None:
        board = mongo.db.board
        #data = board.find_one({"_id": ObjectId(idx)})
        data = board.find_one_and_update({"_id": ObjectId(idx)}, {"$inc": {"view": 1}}, return_document=True)
        if data is not None:
            result = {
                "id": data.get("_id"),
                "name": data.get("name"),
                "title": data.get("title"),
                "contents": data.get("contents"),
                "pubdate": data.get("pubdate"),
                "writer_id": data.get("writer_id", "")
            }
            

            return render_template("view.html", result=result, page=page, search=search, keyword=keyword, title="글 상세보기")
    return abort(400)
コード例 #23
0
ファイル: routes.py プロジェクト: Nishka/info3180-project3_4
def view_list(uid):
    """ Verifies whether or not user has access to wishlist"""
    error=None
    return render_template("wishlist.html",error=error)
コード例 #24
0
def home(name=None):
    title = "Home"
    return render_template("home.html", title=title)
コード例 #25
0
ファイル: routes.py プロジェクト: Nishka/info3180-project3_4
def home(error=None):
    title="Home"
    return render_template("home.html",title=title,error=error)
コード例 #26
0
def home(name=None):
    title="Home"
    return render_template("home.html",title=title)
コード例 #27
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def internal_server_error(e):
    return render_template('500.html', title='Server Fault'), 500
コード例 #28
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def categories():
    categories = Category.query.all()
    return render_template('categories.html',
                           title='Categories',
                           categories=categories)
コード例 #29
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def page_not_found(e):
    return render_template('404.html', title='Not Found'), 404
コード例 #30
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def category(id):
    category = Category.query.get_or_404(id)
    return render_template('category.html',
                           title='Category By Id',
                           category=category)
コード例 #31
0
ファイル: project.py プロジェクト: bluenote212/rnd-board
def project_schedule():
    
    day = datetime.now() #현재 날짜 계산
    
    #table 헤더 값을 구함 현재 달에서 -3, +8
    th = [
            '<th>' + (day - relativedelta(months = 3)).strftime('%Y-%m') + '</th>',
            '<th>' + (day - relativedelta(months = 2)).strftime('%Y-%m') + '</th>',
            '<th>' + (day - relativedelta(months = 1)).strftime('%Y-%m') + '</th>',
            '<th style="background-color:#FA58AC"><font color="#FFFFFF">' + day.strftime('%Y-%m') + '</font></th>',
            '<th>' + (day + relativedelta(months = 1)).strftime('%Y-%m') + '</th>',
            '<th>' + (day + relativedelta(months = 2)).strftime('%Y-%m') + '</th>',
            '<th>' + (day + relativedelta(months = 3)).strftime('%Y-%m') + '</th>',
            '<th>' + (day + relativedelta(months = 4)).strftime('%Y-%m') + '</th>',
            '<th>' + (day + relativedelta(months = 5)).strftime('%Y-%m') + '</th>',
            '<th>' + (day + relativedelta(months = 6)).strftime('%Y-%m') + '</th>',
            '<th>' + (day + relativedelta(months = 7)).strftime('%Y-%m') + '</th>'
        ]
    
    #version_list_TCS DB 연결
    col = mongo.db.version_list_TCS
    
    #version_list_TCS에 저장된 data중 가장 최신 date의 data만 find
    date_temp = list(col.find({}, {"_id":0, "date":1}))
    date = sorted(date_temp, reverse = True, key = lambda x:(x['date']))
    
    #DB에서 enddate가 table th 범위 안에 있고 date가 오늘 날짜 인것만 find
    data = list(col.find({"$and": [ {"enddate":{"$gte":(day - relativedelta(months = 3)).strftime('%Y-%m-%d')}}, 
                                    {"enddate":{"$lte":(day + relativedelta(months = 8)).strftime('%Y-%m-%d')}},
                                    {"date":(date[0]['date'])}
                                    ]}, {"project_key":1,"project_name":1 , "name":1, "enddate":1, "date":1} ))
    
    #data에서 중복 제거한 project_key 값을 추출하여 project_key_only에 저장
    project_key_only = []
    for i in range(len(data)):
        if data[i]['project_key'] not in project_key_only:
            project_key_only.append(data[i]['project_key'])
    
    
    #project_key를 key로 하는 dict 형태로 data를 변경하여 temp에 저장
    temp = {}
    for i in range(0, len(project_key_only)):
        temp1 = []
        for j in range(0, len(data)):
            if project_key_only[i] == data[j]['project_key']:
                temp1.append([data[j]['project_name'], data[j]['name'], data[j]['enddate']])
        temp.setdefault(project_key_only[i],temp1)
    
    
    #temp에 저장된 data를 월별로 final에 저장
    final = []
    for i in range(0, len(project_key_only)):
        first_temp = ''
        second_temp = ''
        third_temp = ''
        fourth_temp = ''
        fifth_temp =''
        sixth_temp = ''
        seventh_temp = ''
        eightth_temp = ''
        nineth_temp = ''
        tenth_temp = ''
        eleventh_temp = ''
        for j in range(0, len(temp[project_key_only[i]])):
            if temp[project_key_only[i]][j][2][:-3] == (day - relativedelta(months = 3)).strftime('%Y-%m'):
                first_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day - relativedelta(months = 2)).strftime('%Y-%m'):
                second_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day - relativedelta(months = 1)).strftime('%Y-%m'):
                third_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day.strftime('%Y-%m')):
                fourth_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day + relativedelta(months = 1)).strftime('%Y-%m'):
                fifth_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day + relativedelta(months = 2)).strftime('%Y-%m'):
                sixth_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day + relativedelta(months = 3)).strftime('%Y-%m'):
                seventh_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day + relativedelta(months = 4)).strftime('%Y-%m'):
                eightth_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day + relativedelta(months = 5)).strftime('%Y-%m'):
                nineth_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day + relativedelta(months = 6)).strftime('%Y-%m'):
                tenth_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
            if temp[project_key_only[i]][j][2][:-3] == (day + relativedelta(months = 7)).strftime('%Y-%m'):
                eleventh_temp += str(temp[project_key_only[i]][j][1]) + ' (' + str(temp[project_key_only[i]][j][2][8:]) + '일)' + '<br>'
        final.append({ 
                        "project_key": project_key_only[i], 
                        "project_name1": temp[project_key_only[i]][j][0],
                        "type": "TCS",
                        "1st": first_temp[:-4], 
                        "2st":second_temp[:-4], 
                        "3st": third_temp[:-4], 
                        "4st": fourth_temp[:-4], 
                        "5st": fifth_temp[:-4], 
                        "6st": sixth_temp[:-4], 
                        "7st": seventh_temp[:-4],
                        "8st": eightth_temp[:-4],
                        "9st": nineth_temp[:-4],
                        "10st": tenth_temp[:-4],
                        "11st": eleventh_temp[:-4]
                        })
        
    
    #고객사 프로젝트 리스트 연결, 검색
    col = mongo.db.version_list_customer
    c_data = list(col.find({}, {"_id":0}))
    
    for i in range(0, len(c_data)):
        if c_data[i]['project_name1'] == '':
            c_data[i]['project_name1'] = c_data[i]['project_name2']
    
    c_data = sorted(c_data, reverse = False, key = lambda x:(x['enddate']))
    
    
    #고객사 프로젝트 DB에서 중복을 제거한 고객사 프로젝트 리스트를 c_project_name에 저장
    c_project_name = []
    for i in range(0, len(c_data)):
        c_project_name.append(c_data[i]['project_name2'])
    c_project_name = list(set(c_project_name))
    
    #c_data를 dic 형식으로 변경하여 c_data_dic에 저장
    c_data_dic = {}
    for i in range(0, len(c_project_name)):
        c_temp = []
        for j in range(0, len(c_data)):
            if c_data[j]['project_name2'] == c_project_name[i]:
                c_temp.append([c_data[j]['project_name1'], c_data[j]['name'], c_data[j]['startdate'], c_data[j]['enddate']])
        c_data_dic.setdefault(c_project_name[i], c_temp)
    

    c_final = []
    for i in range(0, len(c_project_name)):
        first_temp = ''
        second_temp = ''
        third_temp = ''
        fourth_temp = ''
        fifth_temp =''
        sixth_temp = ''
        seventh_temp = ''
        eightth_temp = ''
        nineth_temp = ''
        tenth_temp = ''
        eleventh_temp = ''
        project_name = ''
        for j in range(0, len(c_data_dic[c_project_name[i]])):
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day - relativedelta(months = 3)).strftime('%Y-%m'):
                first_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day - relativedelta(months = 2)).strftime('%Y-%m'):
                second_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day - relativedelta(months = 1)).strftime('%Y-%m'):
                third_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day.strftime('%Y-%m')):
                fourth_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day + relativedelta(months = 1)).strftime('%Y-%m'):
                fifth_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day + relativedelta(months = 2)).strftime('%Y-%m'):
                sixth_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day + relativedelta(months = 3)).strftime('%Y-%m'):
                seventh_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day + relativedelta(months = 4)).strftime('%Y-%m'):
                eightth_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day + relativedelta(months = 5)).strftime('%Y-%m'):
                nineth_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day + relativedelta(months = 6)).strftime('%Y-%m'):
                tenth_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            if c_data_dic[c_project_name[i]][j][2][:-3] == (day + relativedelta(months = 7)).strftime('%Y-%m'):
                eleventh_temp += str(c_data_dic[c_project_name[i]][j][1]) + ' (' + str(c_data_dic[c_project_name[i]][j][3][8:]) + '일)' + '<br>'
            project_name = c_data_dic[c_project_name[i]][j][0]
        c_final.append({
                        "project_key": '',
                        "project_name1": project_name,
                        "type": c_project_name[i], 
                        "1st": first_temp[:-4], 
                        "2st":second_temp[:-4], 
                        "3st": third_temp[:-4], 
                        "4st": fourth_temp[:-4], 
                        "5st": fifth_temp[:-4], 
                        "6st": sixth_temp[:-4], 
                        "7st": seventh_temp[:-4],
                        "8st": eightth_temp[:-4],
                        "9st": nineth_temp[:-4],
                        "10st": tenth_temp[:-4],
                        "11st": eleventh_temp[:-4]
                        })
    
    result_final = final + c_final
    
    result_final = sorted(result_final, reverse = True, key = lambda x:(x['project_name1']))
    
    col = mongo.db.project_schedule_list
    col.delete_many({})
    for i in range(0, len(result_final)):
        col.insert_one({
                    'project_key': result_final[i]['project_key'],
                    'project_name': result_final[i]['project_name1'],
                    'type' : result_final[i]['type'],
                    '1st': result_final[i]['1st'],
                    '2st': result_final[i]['2st'],
                    '3st': result_final[i]['3st'],
                    '4st': result_final[i]['4st'],
                    '5st': result_final[i]['5st'],
                    '6st': result_final[i]['6st'],
                    '7st': result_final[i]['7st'],
                    '8st': result_final[i]['8st'],
                    '9st': result_final[i]['9st'],
                    '10st': result_final[i]['10st'],
                    '11st': result_final[i]['11st']
                })
    
    
    #project_schedule_list collection에 등록되어 있는 Document를 _id 빼고 검색
    data = list(col.find({},{'_id':0}))
    
    td = []
    #data를 리스트 형식으로 변한해서 td에 집어 넣는 구문
    for i in range(0, len(data)):
        if data[i]['type'] == "TCS":
            td.append(['<td class="first td1" width="200" style=word-break:break-all"><a href="https://tcs.telechips.com:8443/projects/' + data[i]['project_key'] + '?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=no-filter"><font color="white" size="2">' + data[i]['project_name'] + '</font></a></td>', \
                       data[i]['type'], data[i]['1st'], data[i]['2st'], data[i]['3st'], data[i]['4st'], data[i]['5st'], data[i]['6st'], data[i]['7st'], data[i]['8st'], data[i]['9st'], data[i]['10st'], data[i]['11st']])
        else:
            td.append([data[i]['project_name'], data[i]['type'], data[i]['1st'], data[i]['2st'], data[i]['3st'], data[i]['4st'], data[i]['5st'], data[i]['6st'], data[i]['7st'], data[i]['8st'], data[i]['9st'], data[i]['10st'], data[i]['11st']])

    return render_template("project_schedule.html", th=th, td=td)
コード例 #32
0
ファイル: views.py プロジェクト: imoapps/FastEstimateII
def forbidden(e):
    return render_template('403.html', title='Forbidden'), 403
コード例 #33
0
ファイル: admin.py プロジェクト: semyoyon/vkr_site
def admin_account(id):
    # Check if admin is logged-in
    if not admin_loggedin():
        return redirect(url_for('login'))
    page = 'Создать'
    cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
    # Default input account values
    account = {
        'username': '',
        'password': '',
        'email': '',
        'activation_code': '',
        'rememberme': '',
        'role': 'Member'
    }
    roles = ['Member', 'Admin']
    # GET request ID exists, edit account
    if id:
        # Edit an existing account
        page = 'Редактировать'
        # Retrieve account by ID with the GET request ID
        cursor.execute('SELECT * FROM accounts WHERE id = %s', (id, ))
        account = cursor.fetchone()
        if request.method == 'POST' and 'submit' in request.form:
            # update account
            password = account['password']
            if account['password'] != request.form['password']:
                hash = request.form['password'] + app.secret_key
                hash = hashlib.sha1(hash.encode())
                password = hash.hexdigest()
            cursor.execute(
                'UPDATE accounts SET username = %s, password = %s, email = %s, activation_code = %s, rememberme = %s, role = %s WHERE id = %s',
                (
                    request.form['username'],
                    password,
                    request.form['email'],
                    request.form['activation_code'],
                    request.form['rememberme'],
                    request.form['role'],
                    id,
                ))
            mysql.connection.commit()
            return redirect(url_for('admin'))
        if request.method == 'POST' and 'delete' in request.form:
            # delete account
            cursor.execute('DELETE FROM accounts WHERE id = %s', (id, ))
            mysql.connection.commit()
            return redirect(url_for('admin'))
    if request.method == 'POST' and request.form['submit']:
        # Create new account
        hash = request.form['password'] + app.secret_key
        hash = hashlib.sha1(hash.encode())
        password = hash.hexdigest()
        cursor.execute(
            'INSERT INTO accounts (username,password,email,activation_code,rememberme,role) VALUES (%s,%s,%s,%s,%s,%s)',
            (
                request.form['username'],
                password,
                request.form['email'],
                request.form['activation_code'],
                request.form['rememberme'],
                request.form['role'],
            ))
        mysql.connection.commit()
        return redirect(url_for('admin'))
    return render_template('admin/account.html',
                           account=account,
                           page=page,
                           roles=roles)