From 89ed4cce083500d684e7ba331db76e434fa07825 Mon Sep 17 00:00:00 2001 From: Suraj Tripathi Date: Sat, 14 Feb 2026 16:40:31 +0530 Subject: [PATCH 1/4] Added Templated and Login --- README.md | 17 +++ app.py | 57 ++++++++ static/css/style.css | 220 ++++++++++++++++++++++++++++++ templates/admin/dashboard.html | 11 ++ templates/hello.html | 7 + templates/layout.html | 235 +++++++++++++++++++++++++++++++++ templates/login.html | 98 ++++++++++++++ templates/register.html | 116 ++++++++++++++++ 8 files changed, 761 insertions(+) create mode 100644 static/css/style.css create mode 100644 templates/admin/dashboard.html create mode 100644 templates/hello.html create mode 100644 templates/layout.html create mode 100644 templates/login.html create mode 100644 templates/register.html diff --git a/README.md b/README.md index 42553ee66..0bcf21c81 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,20 @@ The app in this repo is deployed at [https://flask.onrender.com](https://flask.o ## Deployment Follow the guide at https://render.com/docs/deploy-flask. + + +# Create Venv + +``` +py -m venv .venv +cd .venv\Script\activate +``` +#Istall package using requirement file + +``` +pip install -r requirements.txt +``` + +#Run the flask Application + +flask --app app run --debug \ No newline at end of file diff --git a/app.py b/app.py index d82c51f0d..b4a74e0ea 100644 --- a/app.py +++ b/app.py @@ -1,6 +1,63 @@ from flask import Flask +from flask import render_template, abort, redirect, url_for +from flask import request +from flask import session app = Flask(__name__) +app.secret_key = b'_5#y2L"F4Q8z\n\xec]/' + +roles=('Admin','Viewer') + +# adding user for static login dictionary has been created down +user_dict={} +user_dict['amit@mail.com']={id:1,"name":"Amit","password":"mypass"} +user_dict['suraj@mail.com']={id:2,"name":"Suraj","password":"pass2"} +user_dict['amit@mail.com']['role']=roles[1] +user_dict['suraj@mail.com']['role']=roles[0] + @app.route('/') def hello_world(): return 'Hello, World!' + +@app.route('/home') +def hello(name=None): + print(session) + if 'user' in session: + name=session["user"]['name'] + return render_template('admin/dashboard.html', person=name) + +@app.route('/login',methods=['POST', 'GET']) +def login(): + error = None + if request.method == 'POST': + if request.form['email']: + if (isvalid(request.form['email'],request.form['password'])): + session['user'] = user_dict[request.form['email']] + return redirect(url_for('hello')) + else: + error='Invalid Username or password' + else: + error = 'Invalid username/password' + return render_template('login.html', error=error) + +@app.route('/test') +def test_page(): + print(user_dict) + return '' + +def isvalid(username,password): + dictU=user_dict[username] + dictP = user_dict[username]['password'] + print(f"{username==dictU} {password==dictP} {user_dict[username]} {user_dict[username]['password']}") + if (username in user_dict and password == dictP): + return True + else: + return False + +@app.route('/logout') +def logout(): + # remove the username from the session if it's there + session.pop('user', None) + return redirect(url_for('login')) + + diff --git a/static/css/style.css b/static/css/style.css new file mode 100644 index 000000000..59cba55d1 --- /dev/null +++ b/static/css/style.css @@ -0,0 +1,220 @@ +@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"); + +:root { + --bg-background: #F9FAFE; + --header-width: 66px; + --nav-height: 60px; + --aside-width: 330px; + --body-height: 100vh; + --limit-shadow: 0 0 1px rgba(0,0,0,0.21); + --first-color: #030D45; + --first-color-light: #AFA5D9; + --white-color: #F7F6FB; + --body-font: 'Poppins', sans-serif; + --normal-font-size: 1rem; + --w-fixed: 0; + --x-fixed: 1; + --y-fixed: 2; + --z-fixed: 3; +} + +*, +::before, +::after { + box-sizing: border-box; + /*background: rgba(90,120,150,0.15);*/ +} + +h1 { + font-size: 21px; + font-weight: 600; + color: #030D45; + margin: 3px 0; +} + +h5 { + font-size: 15px; + font-weight: 500; + color: #009BE3; + margin: 0 0 3px; +} + +body { + background: var(--bg-background); + position: relative; + margin: var(--header-height) 0 0 0; + font-family: var(--body-font); + font-size: var(--normal-font-size); + transition: .5s; + height: var(--body-height); + overflow: hidden; +} + +header{ + background: var(--bg-background); + z-index: var(--b-fixed); + width: var(--header-width); + height: var(--body-height); + z-index: var(--y-fixed); + box-shadow: var(--limit-shadow); +} + +.header_bottom .dropdown-toggle::after{ + display:none; +} + +span.vhr{ + font-weight: 300; + color: rgba(0,0,255,0.15); +} + +nav { + background: var(--bg-background); + margin-left: calc(var(--header-width) + 1px); + width: calc (100% - var(--header-width)); + height: var(--nav-height); + z-index: var(--y-fixed); + /*box-shadow: var(--limit-shadow);*/ +} + +.navbarX { + z-index: var(--x-fixed)!important; +} + +main { + margin-left: var(--header-width); + margin-top: var(--nav-height); + height: calc(var(--body-height) - var(--nav-height)); + z-index: var(--w-fixed); +} + +main section { + width: 100%; + background: rgba(0,0,255,0.15); +} + +.avatar { + vertical-align: middle; + width: 36px; + height: 36px; + border-radius: 50%; + object-fit: cover; +} + +a.profile-item span { + display: block; + color: #718087; + font-size: 90%;; +} + +ul.dropdown-menu { + min-width: 300px; +} + +header .btn-light:hover, header .btn-light:active{ + background: #030D45; + color: #ffffff; +} + +header .btn-light:hover path, header .btn-light:active path{ + fill: #ffffff; +} + +.nav_list a{ + padding: 10px 9px; + margin: 1px 9px; + border-radius: 6px; +} + +.nav_list a:hover, a.active{ + background: var(--first-color); +} + +.nav_list a:hover path, a.active path{ + fill: #ffffff; +} + +.nav_list a span{ + filter: drop-shadow(0 0 0.3rem rgba(0,0,0,0.15)); + position: absolute; + line-height: 30px; + width: 150px; + background: #ffffff; + border-radius: 6px; + margin-top: -3px; + margin-left: 18px; + padding: 0 6px; + display: none; + transition-duration: 500ms; + transition-property: display; +} + +.nav_list a:hover span{ + /*display:none;*/ + display: inline-block; + transition-duration: 500ms; + transition-property: display; +} + +nav .btn-light { + padding: 1px 6px; + border-radius: 6px; +} + +nav .btn-secondary { + background: #ECEEF5; + border: #ECEEF5; + color: #000000; + padding: 6px 9px; + border-radius: 6px; +} + +nav .btn-secondary .badge { + background: #E25D6F; + color: #ffffff; + padding: 6px 9px; + border-radius: 12px; + +} + +/*nav .btn-secondary .badge[data-count]:after{ + content: attr(data-count); +}*/ + +nav .btn-outline-secondary{ + border: 1px solid #E0E5F1; + padding: 6px 9px; + color: #000000; + border-radius: 6px; +} + +nav .btn-outline-secondary:hover, +nav .btn-outline-secondary.dropdown-toggle.show, +nav .btn-outline-secondary:active{ + background: #ffffff; + color: #000000; + filter: drop-shadow(0 0 0.24rem rgba(0,0,0,0.09)); +} + +nav .btn-light:hover { + background: #ffffff; + filter: drop-shadow(0 0 0.24rem rgba(0,0,0,0.09)); +} + +nav .btn-secondary:hover, +nav .btn-secondary:active, +nav .btn-secondary:focus{ + color: #000000!important; + background: #ffffff!important; + filter: drop-shadow(0 0 0.24rem rgba(0,0,0,0.09)); +} + +nav .btn-secondary:focus:hover{ + color: #000000!important; + background: #ffffff!important; + filter: drop-shadow(0 0 0.24rem rgba(3,13,69,0.60)); +} + +nav .btn-light small { + color: #009BE3; +} \ No newline at end of file diff --git a/templates/admin/dashboard.html b/templates/admin/dashboard.html new file mode 100644 index 000000000..af23700a0 --- /dev/null +++ b/templates/admin/dashboard.html @@ -0,0 +1,11 @@ +{% extends "./layout.html" %} +{% block title %}Dashboard{% endblock %} +{% block content %} +
+ {% if person %} +

Hello {{ person }}!

+ {% else %} +

Hello, World!

+ {% endif %} +
+{% endblock %} \ No newline at end of file diff --git a/templates/hello.html b/templates/hello.html new file mode 100644 index 000000000..90524cdb6 --- /dev/null +++ b/templates/hello.html @@ -0,0 +1,7 @@ + +Hello from Flask +{% if person %} +

Hello {{ person }}!

+{% else %} +

Hello, World!

+{% endif %} \ No newline at end of file diff --git a/templates/layout.html b/templates/layout.html new file mode 100644 index 000000000..e0498ba08 --- /dev/null +++ b/templates/layout.html @@ -0,0 +1,235 @@ + + + + {% block head %} + + + + {% block title %}{% endblock %} - My Webpage + {% endblock %} + + +
+ +
+ +
+ {% block content %}{% endblock %} +
+ + + \ No newline at end of file diff --git a/templates/login.html b/templates/login.html new file mode 100644 index 000000000..5048f8e8e --- /dev/null +++ b/templates/login.html @@ -0,0 +1,98 @@ + + + + + + + + +
+
+
+
+
+
+ BootstrapBrain Logo +
+

We make digital products that drive you to stand out.

+

We write words, take photos, make videos, and interact with artificial intelligence.

+
+ + + +
+
+
+
+
+
+
+
+
+
+

Login

+

Enter your details to register

+
+
+
+ {% if error %} +

{{error}}

+ {% endif %} +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+
+ +
+
+
+

Do not have an account? Register

+
+
+
+
+
+

Or continue with

+ +
+
+
+
+
+
+ +
+ + \ No newline at end of file diff --git a/templates/register.html b/templates/register.html new file mode 100644 index 000000000..81695ea99 --- /dev/null +++ b/templates/register.html @@ -0,0 +1,116 @@ + + + + + + + + +
+
+
+
+
+
+ BootstrapBrain Logo +
+

We make digital products that drive you to stand out.

+

We write words, take photos, make videos, and interact with artificial intelligence.

+
+ + + +
+
+
+
+
+
+
+
+
+
+

Registration

+

Enter your details to register

+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+
+
+
+
+
+

Already have an account? Sign in

+
+
+
+
+
+

Or continue with

+ +
+
+
+
+
+
+
+
+ + \ No newline at end of file From 34aa8ed1e87ac53f0989a49daa29fc8bc6f8a4cb Mon Sep 17 00:00:00 2001 From: mrsurajtripathi Date: Sun, 15 Feb 2026 14:49:49 +0530 Subject: [PATCH 2/4] Seperate modules and templates --- ReadMeDoc.md | 13 ++ app.py | 56 ++++--- config/__init__.py | 0 config/settings.py | 15 ++ modules/__init__.py | 0 modules/authmodule.py | 15 ++ static/css/style.css | 51 ++++++ templates/admin/blogs/index.html | 11 ++ templates/admin/blogs/new.html | 37 +++++ templates/admin/category/index.html | 27 ++++ templates/admin/category/new.html | 26 ++++ templates/header.html | 135 ++++++++++++++++ templates/layout.html | 231 ++-------------------------- templates/navbar.html | 79 ++++++++++ 14 files changed, 454 insertions(+), 242 deletions(-) create mode 100644 ReadMeDoc.md create mode 100644 config/__init__.py create mode 100644 config/settings.py create mode 100644 modules/__init__.py create mode 100644 modules/authmodule.py create mode 100644 templates/admin/blogs/index.html create mode 100644 templates/admin/blogs/new.html create mode 100644 templates/admin/category/index.html create mode 100644 templates/admin/category/new.html create mode 100644 templates/header.html create mode 100644 templates/navbar.html diff --git a/ReadMeDoc.md b/ReadMeDoc.md new file mode 100644 index 000000000..4158190d2 --- /dev/null +++ b/ReadMeDoc.md @@ -0,0 +1,13 @@ +# List +list=[] +list=[1,'b','12.3] +list.append(2) //at the end +list.extend() +# Dictionary + +# Tuples + +# Sets + + + diff --git a/app.py b/app.py index b4a74e0ea..12a5209c2 100644 --- a/app.py +++ b/app.py @@ -2,26 +2,19 @@ from flask import render_template, abort, redirect, url_for from flask import request from flask import session +from config.settings import user_dict , roles, category_item, category +from modules.authmodule import isvalid + app = Flask(__name__) app.secret_key = b'_5#y2L"F4Q8z\n\xec]/' -roles=('Admin','Viewer') - -# adding user for static login dictionary has been created down -user_dict={} -user_dict['amit@mail.com']={id:1,"name":"Amit","password":"mypass"} -user_dict['suraj@mail.com']={id:2,"name":"Suraj","password":"pass2"} -user_dict['amit@mail.com']['role']=roles[1] -user_dict['suraj@mail.com']['role']=roles[0] - @app.route('/') def hello_world(): return 'Hello, World!' -@app.route('/home') -def hello(name=None): - print(session) +@app.route('/admin') +def dashboard(name=None): if 'user' in session: name=session["user"]['name'] return render_template('admin/dashboard.html', person=name) @@ -33,7 +26,7 @@ def login(): if request.form['email']: if (isvalid(request.form['email'],request.form['password'])): session['user'] = user_dict[request.form['email']] - return redirect(url_for('hello')) + return redirect(url_for('dashboard')) else: error='Invalid Username or password' else: @@ -44,15 +37,6 @@ def login(): def test_page(): print(user_dict) return '' - -def isvalid(username,password): - dictU=user_dict[username] - dictP = user_dict[username]['password'] - print(f"{username==dictU} {password==dictP} {user_dict[username]} {user_dict[username]['password']}") - if (username in user_dict and password == dictP): - return True - else: - return False @app.route('/logout') def logout(): @@ -60,4 +44,32 @@ def logout(): session.pop('user', None) return redirect(url_for('login')) +@app.route('/admin/blogs') +def admin_blogs(): + error=None + if 'user' in session: + return render_template('admin/blogs/new.html',error=error) + else: + return redirect(url_for('login')) +@app.route('/admin/categories') +def admin_category(): + error=None + print(category) + return render_template('admin/category/index.html',category=category) + +@app.route('/admin/categories/new',methods=['GET','POST']) +def admin_newcategory(): + error=None + if 'user' not in session: + return redirect(url_for('login')) + if request.method == 'POST': + if request.form['name']: + category_item['name']=request.form['name']; + category_item['status']= request.form['status'] + category.append(category_item) + print(category); + return redirect(url_for('admin_category')) + else: + error='Please Enter Category' + return render_template('admin/category/new.html',error=error) diff --git a/config/__init__.py b/config/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/config/settings.py b/config/settings.py new file mode 100644 index 000000000..2b959aece --- /dev/null +++ b/config/settings.py @@ -0,0 +1,15 @@ +roles=('Admin','Viewer') + +# adding user for static login dictionary has been created down +user_dict={} +user_dict['amit@mail.com']={"id":"1","name":"Amit","password":"mypass"} +user_dict['suraj@mail.com']={"id":"2","name":"Suraj","password":"pass2"} +user_dict['amit@mail.com']['role']=roles[1] +user_dict['suraj@mail.com']['role']=roles[0] + +category=[] +category_item={} +category.append(category_item) + +posts=[] +post_data={} \ No newline at end of file diff --git a/modules/__init__.py b/modules/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/authmodule.py b/modules/authmodule.py new file mode 100644 index 000000000..be6f9520e --- /dev/null +++ b/modules/authmodule.py @@ -0,0 +1,15 @@ +from config.settings import user_dict,roles + +def isvalid(username,password): + dictU=user_dict[username] + dictP = user_dict[username]['password'] + print(f"{username==dictU} {password==dictP} {user_dict[username]} {user_dict[username]['password']}") + if (username in user_dict and password == dictP): + return True + else: + return False + +class Auth(): + def __init__(self) -> None: + pass + \ No newline at end of file diff --git a/static/css/style.css b/static/css/style.css index 59cba55d1..fb36f9428 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -217,4 +217,55 @@ nav .btn-secondary:focus:hover{ nav .btn-light small { color: #009BE3; +} + +.contact-form{ + background: #fff; + margin-top: 10%; + margin-bottom: 5%; + width: 70%; +} +.contact-form .form-control{ + border-radius:1rem; +} +.contact-image{ + text-align: center; +} +.contact-image img{ + border-radius: 6rem; + width: 11%; + margin-top: -3%; + transform: rotate(29deg); +} +.contact-form form{ + padding: 14%; +} +.contact-form form .row{ + margin-bottom: -7%; +} +.contact-form h3{ + margin-bottom: 8%; + margin-top: -10%; + text-align: center; + color: #0062cc; +} +.contact-form .btnContact { + width: 50%; + border: none; + border-radius: 1rem; + padding: 1.5%; + background: #dc3545; + font-weight: 600; + color: #fff; + cursor: pointer; +} +.btnContactSubmit +{ + width: 50%; + border-radius: 1rem; + padding: 1.5%; + color: #fff; + background-color: #0062cc; + border: none; + cursor: pointer; } \ No newline at end of file diff --git a/templates/admin/blogs/index.html b/templates/admin/blogs/index.html new file mode 100644 index 000000000..af23700a0 --- /dev/null +++ b/templates/admin/blogs/index.html @@ -0,0 +1,11 @@ +{% extends "./layout.html" %} +{% block title %}Dashboard{% endblock %} +{% block content %} +
+ {% if person %} +

Hello {{ person }}!

+ {% else %} +

Hello, World!

+ {% endif %} +
+{% endblock %} \ No newline at end of file diff --git a/templates/admin/blogs/new.html b/templates/admin/blogs/new.html new file mode 100644 index 000000000..1d83af2fd --- /dev/null +++ b/templates/admin/blogs/new.html @@ -0,0 +1,37 @@ +{% extends "./layout.html" %} +{% block title %}New Blogs{% endblock %} +{% block content %} +
+
+
+ rocket_contact +
+
+

Create New Post

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/templates/admin/category/index.html b/templates/admin/category/index.html new file mode 100644 index 000000000..29cad0fb8 --- /dev/null +++ b/templates/admin/category/index.html @@ -0,0 +1,27 @@ +{% extends "./layout.html" %} +{% block title %}New Category{% endblock %} +{% block content %} +
+ + + + + + + + + + + {% for item in category %} + + + + + + + {% endfor %} + + +
#CategoryStatusAction
1{{item["name"]}}Otto@mdo
+
+{% endblock %} \ No newline at end of file diff --git a/templates/admin/category/new.html b/templates/admin/category/new.html new file mode 100644 index 000000000..62d0308f5 --- /dev/null +++ b/templates/admin/category/new.html @@ -0,0 +1,26 @@ +{% extends "./layout.html" %} +{% block title %}New Category{% endblock %} +{% block content %} +
+
+

Add Category

+
+
+ + +
+
+ + +
+
+ +
+
+
+
+{%endblock %} \ No newline at end of file diff --git a/templates/header.html b/templates/header.html new file mode 100644 index 000000000..2d9853613 --- /dev/null +++ b/templates/header.html @@ -0,0 +1,135 @@ +
+ +
\ No newline at end of file diff --git a/templates/layout.html b/templates/layout.html index e0498ba08..405ab045d 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -1,235 +1,26 @@ + {% block head %} - + - + + + + {% block title %}{% endblock %} - My Webpage + {% endblock %} - -
- -
- + + {% include 'header.html' %} + {% include 'navbar.html' %}
{% block content %}{% endblock %}
+ {%block footer %}{%endblock %} \ No newline at end of file diff --git a/templates/navbar.html b/templates/navbar.html new file mode 100644 index 000000000..34324ddb2 --- /dev/null +++ b/templates/navbar.html @@ -0,0 +1,79 @@ + \ No newline at end of file From d3cb4c4ab6d91093eacf2feb6801909fb8874bd6 Mon Sep 17 00:00:00 2001 From: mrsurajtripathi Date: Sun, 15 Feb 2026 15:57:22 +0530 Subject: [PATCH 3/4] Layout Modification --- templates/admin/category/categorylayout.html | 5 ++ templates/admin/category/index.html | 3 ++ templates/admin/category/new.html | 2 + templates/admin/dashboard.html | 2 + templates/header.html | 7 --- templates/layout.html | 9 ++-- templates/navbar.html | 48 +++----------------- 7 files changed, 22 insertions(+), 54 deletions(-) create mode 100644 templates/admin/category/categorylayout.html diff --git a/templates/admin/category/categorylayout.html b/templates/admin/category/categorylayout.html new file mode 100644 index 000000000..ca3537020 --- /dev/null +++ b/templates/admin/category/categorylayout.html @@ -0,0 +1,5 @@ +{% extends "./layout.html" %} +{% block title %}New Category{% endblock %} +{% block content %} +{% block categorylayout %}{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/templates/admin/category/index.html b/templates/admin/category/index.html index 29cad0fb8..79ab5c77c 100644 --- a/templates/admin/category/index.html +++ b/templates/admin/category/index.html @@ -1,5 +1,8 @@ {% extends "./layout.html" %} {% block title %}New Category{% endblock %} +{% set toptitle = "Categories" %} +{% set quickbuttons=[{"title":"New","path":"/admin/categories/new","icon":""}] %} + {% block content %}
diff --git a/templates/admin/category/new.html b/templates/admin/category/new.html index 62d0308f5..e6dc2a41f 100644 --- a/templates/admin/category/new.html +++ b/templates/admin/category/new.html @@ -1,5 +1,7 @@ {% extends "./layout.html" %} {% block title %}New Category{% endblock %} +{% set toptitle = "Categories" %} +{% set quickbuttons=[{"title":"Categories","path":"/admin/categories","icon":""}] %} {% block content %}
diff --git a/templates/admin/dashboard.html b/templates/admin/dashboard.html index af23700a0..86a6f255e 100644 --- a/templates/admin/dashboard.html +++ b/templates/admin/dashboard.html @@ -1,5 +1,7 @@ {% extends "./layout.html" %} {% block title %}Dashboard{% endblock %} +{% set toptitle = "Dashboard" %} +{% set quickbuttons=[{"title":"New","path":"/admin/categories","icon":""}] %} {% block content %}
{% if person %} diff --git a/templates/header.html b/templates/header.html index 2d9853613..b91196950 100644 --- a/templates/header.html +++ b/templates/header.html @@ -10,13 +10,6 @@
+ + + + + + + + + + + + {% for item in postlist %} + + + + + + + {% endfor %} + + +
#TitleCategoryDescriptionStatusAction
{{i}}{{item["name"]}} + {{ "Publish" if item["name"]==1 else "Disabled" }} + Edit Delete
+
{% endblock %} \ No newline at end of file diff --git a/templates/admin/blogs/new.html b/templates/admin/blogs/new.html index 1d83af2fd..c1152fc04 100644 --- a/templates/admin/blogs/new.html +++ b/templates/admin/blogs/new.html @@ -1,5 +1,7 @@ {% extends "./layout.html" %} {% block title %}New Blogs{% endblock %} +{% set toptitle = "Blogs" %} +{% set quickbuttons=[{"title":"Blogs","path":"/admin/blogs","icon":""}] %} {% block content %}
@@ -14,7 +16,11 @@

Create New Post

- +
{% for item in category %} - 1 + {{i}} {{item["name"]}} - Otto - @mdo + + {{ "Publish" if item["name"]==1 else "Disabled" }} + + Edit Delete {% endfor %} diff --git a/templates/header.html b/templates/header.html index b91196950..c79b2de7e 100644 --- a/templates/header.html +++ b/templates/header.html @@ -10,29 +10,13 @@