[Flask] Aggregate your news and vote for the content you care about.
Second commit.
Changed files
- Pipfile
- Pipfile.lock
- app/forms.py
- app/routes.py
- app/static/styles/default.css
- app/static/styles/home.css
- app/static/styles/no.css
- app/static/styles/yes.css
- app/templates/base.html
- app/templates/home.html
- app/templates/login.html
- app/templates/no.html
- app/templates/register.html
- app/templates/yes.html
- website/Pipfile
- website/Pipfile.lock
- website/app/forms.py
- website/app/routes.py
- website/app/static/styles/default.css
- website/app/static/styles/home.css
- website/app/static/styles/no.css
- website/app/static/styles/yes.css
- website/app/templates/base.html
- website/app/templates/home.html
- website/app/templates/login.html
- website/app/templates/no.html
- website/app/templates/register.html
- website/app/templates/yes.html
Pipfile
@@ -0,0 +1,15 @@
1
Added:
[[source]]
2
Added:
name = "pypi"
3
Added:
url = "https://pypi.org/simple"
4
Added:
verify_ssl = true
5
Added:
6
Added:
[dev-packages]
7
Added:
8
Added:
[packages]
9
Added:
flask = "*"
10
Added:
flask-wtf = "*"
11
Added:
uwsgi = "*"
12
Added:
flask-socketio = "*"
13
Added:
14
Added:
[requires]
15
Added:
python_version = "3.8"
Pipfile.lock
@@ -0,0 +1,141 @@
1
Added:
{
2
Added:
"_meta": {
3
Added:
"hash": {
4
Added:
"sha256": "efc56d845e2a3dfa2fa6132963f17abed9e32f9efdc80d03898efdcd1c3d07a3"
5
Added:
},
6
Added:
"pipfile-spec": 6,
7
Added:
"requires": {
8
Added:
"python_version": "3.8"
9
Added:
},
10
Added:
"sources": [
11
Added:
{
12
Added:
"name": "pypi",
13
Added:
"url": "https://pypi.org/simple",
14
Added:
"verify_ssl": true
15
Added:
}
16
Added:
]
17
Added:
},
18
Added:
"default": {
19
Added:
"click": {
20
Added:
"hashes": [
21
Added:
"sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13",
22
Added:
"sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"
23
Added:
],
24
Added:
"version": "==7.0"
25
Added:
},
26
Added:
"flask": {
27
Added:
"hashes": [
28
Added:
"sha256:13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52",
29
Added:
"sha256:45eb5a6fd193d6cf7e0cf5d8a5b31f83d5faae0293695626f539a823e93b13f6"
30
Added:
],
31
Added:
"index": "pypi",
32
Added:
"version": "==1.1.1"
33
Added:
},
34
Added:
"flask-socketio": {
35
Added:
"hashes": [
36
Added:
"sha256:2172dff1e42415ba480cee02c30c2fc833671ff326f1598ee3d69aa02cf768ec",
37
Added:
"sha256:7ff5b2f5edde23e875a8b0abf868584e5706e11741557449bc5147df2cd78268"
38
Added:
],
39
Added:
"index": "pypi",
40
Added:
"version": "==4.2.1"
41
Added:
},
42
Added:
"flask-wtf": {
43
Added:
"hashes": [
44
Added:
"sha256:5d14d55cfd35f613d99ee7cba0fc3fbbe63ba02f544d349158c14ca15561cc36",
45
Added:
"sha256:d9a9e366b32dcbb98ef17228e76be15702cd2600675668bca23f63a7947fd5ac"
46
Added:
],
47
Added:
"index": "pypi",
48
Added:
"version": "==0.14.2"
49
Added:
},
50
Added:
"itsdangerous": {
51
Added:
"hashes": [
52
Added:
"sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19",
53
Added:
"sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"
54
Added:
],
55
Added:
"version": "==1.1.0"
56
Added:
},
57
Added:
"jinja2": {
58
Added:
"hashes": [
59
Added:
"sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f",
60
Added:
"sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de"
61
Added:
],
62
Added:
"version": "==2.10.3"
63
Added:
},
64
Added:
"markupsafe": {
65
Added:
"hashes": [
66
Added:
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
67
Added:
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
68
Added:
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
69
Added:
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
70
Added:
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
71
Added:
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
72
Added:
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
73
Added:
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
74
Added:
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
75
Added:
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
76
Added:
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
77
Added:
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
78
Added:
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
79
Added:
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
80
Added:
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
81
Added:
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
82
Added:
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
83
Added:
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
84
Added:
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
85
Added:
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
86
Added:
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
87
Added:
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
88
Added:
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
89
Added:
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
90
Added:
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
91
Added:
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
92
Added:
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
93
Added:
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"
94
Added:
],
95
Added:
"version": "==1.1.1"
96
Added:
},
97
Added:
"python-engineio": {
98
Added:
"hashes": [
99
Added:
"sha256:50d108fc7feb7f970e6ebc86733752ebd714545bb5622383e6135bdad45fc9fe",
100
Added:
"sha256:f6bd466dea769bb19c59eaf8e68a296b195b6957650523f13a73d8c0767b7a38"
101
Added:
],
102
Added:
"version": "==3.11.1"
103
Added:
},
104
Added:
"python-socketio": {
105
Added:
"hashes": [
106
Added:
"sha256:48cba5b827ac665dbf923a4f5ec590812aed5299a831fc43576a9af346272534",
107
Added:
"sha256:af6c23c35497960f82106e36688123ecb52ad5a77d0ca27954ff3811c4d9d562"
108
Added:
],
109
Added:
"version": "==4.4.0"
110
Added:
},
111
Added:
"six": {
112
Added:
"hashes": [
113
Added:
"sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd",
114
Added:
"sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66"
115
Added:
],
116
Added:
"version": "==1.13.0"
117
Added:
},
118
Added:
"uwsgi": {
119
Added:
"hashes": [
120
Added:
"sha256:4972ac538800fb2d421027f49b4a1869b66048839507ccf0aa2fda792d99f583"
121
Added:
],
122
Added:
"index": "pypi",
123
Added:
"version": "==2.0.18"
124
Added:
},
125
Added:
"werkzeug": {
126
Added:
"hashes": [
127
Added:
"sha256:7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7",
128
Added:
"sha256:e5f4a1f98b52b18a93da705a7458e55afb26f32bff83ff5d19189f92462d65c4"
129
Added:
],
130
Added:
"version": "==0.16.0"
131
Added:
},
132
Added:
"wtforms": {
133
Added:
"hashes": [
134
Added:
"sha256:0cdbac3e7f6878086c334aa25dc5a33869a3954e9d1e015130d65a69309b3b61",
135
Added:
"sha256:e3ee092c827582c50877cdbd49e9ce6d2c5c1f6561f849b3b068c1b8029626f1"
136
Added:
],
137
Added:
"version": "==2.2.1"
138
Added:
}
139
Added:
},
140
Added:
"develop": {}
141
Added:
}
app/forms.py
@@ -0,0 +1,28 @@
1
Added:
from flask_wtf import FlaskForm
2
Added:
from wtforms import StringField, PasswordField, SubmitField, BooleanField
3
Added:
from wtforms.validators import DataRequired, Length, EqualTo
4
Added:
5
Added:
6
Added:
class RegistrationForm(FlaskForm):
7
Added:
alias = StringField('Alias',
8
Added:
validators=[DataRequired(),
9
Added:
Length(min=2, max=20)])
10
Added:
password = PasswordField('Password', validators=[DataRequired()])
11
Added:
password_confirm = PasswordField(
12
Added:
'Confirm Password', validators=[DataRequired(),
13
Added:
EqualTo('password')])
14
Added:
submit = SubmitField('Create Alias')
15
Added:
16
Added:
17
Added:
class LoginForm(FlaskForm):
18
Added:
alias = StringField('Alias',
19
Added:
validators=[DataRequired(),
20
Added:
Length(min=2, max=20)])
21
Added:
password = PasswordField('Password', validators=[DataRequired()])
22
Added:
remember = BooleanField('Remember Alias')
23
Added:
submit = SubmitField('Login Alias')
24
Added:
25
Added:
26
Added:
class NewMessage(FlaskForm):
27
Added:
recipient = StringField('Recipient', validators=[DataRequired()])
28
Added:
message = StringField('message', validators=[DataRequired()])
app/routes.py
@@ -0,0 +1,54 @@
1
Added:
from flask import Flask, render_template, flash, redirect, url_for
2
Added:
from forms import RegistrationForm, LoginForm
3
Added:
4
Added:
app = Flask(__name__)
5
Added:
app.config['SECRET_KEY'] = 'foobarblendoitfoobar!'
6
Added:
7
Added:
posts = [{
8
Added:
'author':
9
Added:
'Marius',
10
Added:
'date':
11
Added:
'Dec. 26th, 2019',
12
Added:
'content':
13
Added:
"this is a test where I write a message that isn't too short, it isn't too long, it's just the right size."
14
Added:
}, {
15
Added:
'author': 'Achille',
16
Added:
'date': 'Dec. 25th, 2019',
17
Added:
'content': "this is a second test!"
18
Added:
}, {
19
Added:
'author': 'Jeanne',
20
Added:
'date': 'Dec. 24th, 2019',
21
Added:
'content': "this is a third test!"
22
Added:
}]
23
Added:
24
Added:
25
Added:
@app.route("/")
26
Added:
@app.route("/home")
27
Added:
def home():
28
Added:
return render_template('home.html', posts=posts)
29
Added:
30
Added:
@app.route("/yes")
31
Added:
def yes():
32
Added:
return render_template("yes.html")
33
Added:
34
Added:
@app.route("/no")
35
Added:
def no():
36
Added:
return render_template("no.html")
37
Added:
38
Added:
@app.route("/register", methods=['GET', 'POST'])
39
Added:
def register():
40
Added:
form = RegistrationForm()
41
Added:
if form.validate_on_submit():
42
Added:
flash(f"Alias created for {form.alias.data}.", 'success')
43
Added:
return redirect(url_for('home'))
44
Added:
return render_template('register.html', title="Register", form=form)
45
Added:
46
Added:
47
Added:
@app.route("/login")
48
Added:
def login():
49
Added:
form = LoginForm()
50
Added:
return render_template('login.html', title="Login", form=form)
51
Added:
52
Added:
53
Added:
if __name__ == '__main__':
54
Added:
app.run(debug=True)
app/static/styles/default.css
@@ -0,0 +1,25 @@
1
Added:
:root {
2
Added:
--primary-color: #003B5C;
3
Added:
--secondary-color: #C3D7EE;
4
Added:
--home: rgba(200, 200, 200, 0.7);
5
Added:
--yes: rgba(0, 255, 0, 0.7);
6
Added:
--no: rgba(255, 0, 0, 0.7);
7
Added:
}
8
Added:
9
Added:
* {
10
Added:
margin: 0;
11
Added:
padding: 0;
12
Added:
}
13
Added:
14
Added:
body {
15
Added:
font-family: 'Liberation Sans', sans-serif;
16
Added:
line-height: 1.2;
17
Added:
}
18
Added:
19
Added:
h1 {
20
Added:
21
Added:
}
22
Added:
23
Added:
h2 {
24
Added:
25
Added:
}
app/static/styles/home.css
@@ -0,0 +1,50 @@
1
Added:
.main {
2
Added:
height: 100%;
3
Added:
position: absolute;
4
Added:
left: 3%;
5
Added:
right: 3%;
6
Added:
background: linear-gradient(to top, var(--secondary-color), var(--primary-color)) fixed;
7
Added:
}
8
Added:
9
Added:
.tab-yes {
10
Added:
height: 100%;
11
Added:
width: 10%;
12
Added:
float: left;
13
Added:
position: fixed;
14
Added:
z-index: -1;
15
Added:
background: var(--yes);
16
Added:
}
17
Added:
.tab-no {
18
Added:
height: 100%;
19
Added:
width: 10%;
20
Added:
float: right;
21
Added:
position: fixed;
22
Added:
z-index: -1;
23
Added:
right: 0;
24
Added:
background: var(--no);
25
Added:
}
26
Added:
27
Added:
.tab-yes:hover ~ .main {
28
Added:
left: 5%;
29
Added:
transition: 0.2s;
30
Added:
}
31
Added:
32
Added:
.tab-no:hover ~ .main {
33
Added:
right: 5%;
34
Added:
transition: 0.2s;
35
Added:
}
36
Added:
37
Added:
.post {
38
Added:
background: white;
39
Added:
border-radius: 14px;
40
Added:
padding: 1rem;
41
Added:
margin: 1rem;
42
Added:
width: 20%;
43
Added:
}
44
Added:
45
Added:
.post:hover {
46
Added:
background: linear-gradient(to left, var(--no) 50%, var(--yes) 50%);
47
Added:
cursor: pointer;
48
Added:
transition: 0.8s;
49
Added:
color: white;
50
Added:
}
app/static/styles/no.css
@@ -0,0 +1,54 @@
1
Added:
.main {
2
Added:
height: 100%;
3
Added:
right: 0;
4
Added:
left: 6%;
5
Added:
position: absolute;
6
Added:
z-index: 1;
7
Added:
background: linear-gradient(to top, var(--secondary-color), var(--primary-color)) fixed;
8
Added:
}
9
Added:
10
Added:
.tab-home {
11
Added:
height: 100%;
12
Added:
width: 3%;
13
Added:
float: left;
14
Added:
position: relative;
15
Added:
z-index: 0;
16
Added:
background: var(--home);
17
Added:
}
18
Added:
19
Added:
.tab-yes {
20
Added:
height: 100%;
21
Added:
width: 3%;
22
Added:
float: left;
23
Added:
position: relative;
24
Added:
z-index: -1;
25
Added:
background: var(--yes);
26
Added:
}
27
Added:
28
Added:
.tab-home:hover ~ .main {
29
Added:
left: 9%;
30
Added:
transition: 0.2s;
31
Added:
}
32
Added:
33
Added:
.tab-home:hover {
34
Added:
width: 6%;
35
Added:
transition: 0.2s;
36
Added:
}
37
Added:
38
Added:
.tab-yes:hover ~ .main {
39
Added:
left: 9%;
40
Added:
transition: 0.2s;
41
Added:
}
42
Added:
43
Added:
.tab-yes:hover {
44
Added:
width: 6%;
45
Added:
transition: 0.2s;
46
Added:
}
47
Added:
48
Added:
.post {
49
Added:
background: white;
50
Added:
border-radius: 14px;
51
Added:
padding: 1rem;
52
Added:
margin: 1rem;
53
Added:
width: 20%;
54
Added:
}
app/static/styles/yes.css
@@ -0,0 +1,54 @@
1
Added:
.main {
2
Added:
height: 100%;
3
Added:
right: 6%;
4
Added:
left: 0;
5
Added:
position: absolute;
6
Added:
z-index: 1;
7
Added:
background: linear-gradient(to top, var(--secondary-color), var(--primary-color)) fixed;
8
Added:
}
9
Added:
10
Added:
.tab-home {
11
Added:
height: 100%;
12
Added:
width: 3%;
13
Added:
float: right;
14
Added:
position: relative;
15
Added:
z-index: 0;
16
Added:
background: var(--home);
17
Added:
}
18
Added:
19
Added:
.tab-no {
20
Added:
height: 100%;
21
Added:
width: 3%;
22
Added:
float: right;
23
Added:
position: relative;
24
Added:
z-index: -1;
25
Added:
background: var(--no);
26
Added:
}
27
Added:
28
Added:
.tab-home:hover ~ .main {
29
Added:
right: 9%;
30
Added:
transition: 0.2s;
31
Added:
}
32
Added:
33
Added:
.tab-home:hover {
34
Added:
width: 6%;
35
Added:
transition: 0.2s;
36
Added:
}
37
Added:
38
Added:
.tab-no:hover ~ .main {
39
Added:
right: 9%;
40
Added:
transition: 0.2s;
41
Added:
}
42
Added:
43
Added:
.tab-no:hover {
44
Added:
width: 6%;
45
Added:
transition: 0.2s;
46
Added:
}
47
Added:
48
Added:
.post {
49
Added:
background: white;
50
Added:
border-radius: 14px;
51
Added:
padding: 1rem;
52
Added:
margin: 1rem;
53
Added:
width: 20%;
54
Added:
}
app/templates/base.html
@@ -0,0 +1,25 @@
1
Added:
<html>
2
Added:
<head>
3
Added:
<meta charset="utf-8">
4
Added:
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to">
5
Added:
6
Added:
{% if title %}
7
Added:
<title>{{ title }}</title>
8
Added:
{% else %}
9
Added:
<title>Blendoit</title>
10
Added:
{% endif %}
11
Added:
</head>
12
Added:
<body>
13
Added:
{% with messages = get_flashed_messages(with_categories=true) %}
14
Added:
{% if messages %}
15
Added:
{% for message in messages %}
16
Added:
<div class="alert">
17
Added:
{{ message }}
18
Added:
</div>
19
Added:
{% endfor %}
20
Added:
{% endif %}
21
Added:
{% endwith %}
22
Added:
23
Added:
{% block content %}{% endblock %}
24
Added:
</body>
25
Added:
</html>
app/templates/home.html
@@ -0,0 +1,24 @@
1
Added:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/default.css') }}">
2
Added:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/home.css') }}">
3
Added:
4
Added:
{% extends "base.html" %}
5
Added:
6
Added:
{% block content %}
7
Added:
8
Added:
<div>
9
Added:
<a href="{{ url_for('yes') }}" class="tab-yes"></a>
10
Added:
<a href="{{ url_for('no') }}" class="tab-no"></a>
11
Added:
12
Added:
<div class="main">
13
Added:
{% for post in posts %}
14
Added:
<div class="post">
15
Added:
<h1>{{post.author}}</h1>
16
Added:
<h2>{{post.date}}</h2>
17
Added:
<p>{{post.content}}</p>
18
Added:
</div>
19
Added:
{% endfor %}
20
Added:
</div>
21
Added:
</div>
22
Added:
23
Added:
24
Added:
{% endblock content %}
app/templates/login.html
@@ -0,0 +1,34 @@
1
Added:
{% extends "base.html" %}
2
Added:
{% block content %}
3
Added:
4
Added:
<div class="content-section">
5
Added:
<form method="POST" action="">
6
Added:
{{ form.hidden_tag() }}
7
Added:
<fieldset class="form-group">
8
Added:
<legend>Join Today</legend>
9
Added:
<div class="form-group">
10
Added:
{{ form.alias.label }}
11
Added:
{{ form.alias }}
12
Added:
</div>
13
Added:
<div class="form-group">
14
Added:
{{ form.password.label }}
15
Added:
{{ form.password }}
16
Added:
</div>
17
Added:
<div class="form-group">
18
Added:
{{ form.password_confirm.label }}
19
Added:
{{ form.password_confirm }}
20
Added:
</div>
21
Added:
</fieldset>
22
Added:
<div class="form-group">
23
Added:
{{ form.submit(class="btn") }}
24
Added:
</div>
25
Added:
</form>
26
Added:
</div>
27
Added:
28
Added:
<div>
29
Added:
<small>
30
Added:
Already have an account? <a href="{{ url_for('login') }}">Sign In</a>
31
Added:
</small>
32
Added:
</div>
33
Added:
34
Added:
{% endblock content %}
app/templates/no.html
@@ -0,0 +1,23 @@
1
Added:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/default.css') }}">
2
Added:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/no.css') }}">
3
Added:
4
Added:
{% extends "base.html" %}
5
Added:
{% block content %}
6
Added:
7
Added:
<div>
8
Added:
<a href="{{ url_for('yes') }}" class="tab-yes"></a>
9
Added:
<a href="{{ url_for('home') }}" class="tab-home"></a>
10
Added:
11
Added:
<div class="main">
12
Added:
{% for post in posts %}
13
Added:
<div class="post">
14
Added:
<h1>{{post.author}}</h1>
15
Added:
<h2>{{post.date}}</h2>
16
Added:
<p>{{post.content}}</p>
17
Added:
</div>
18
Added:
{% endfor %}
19
Added:
</div>
20
Added:
</div>
21
Added:
22
Added:
23
Added:
{% endblock content %}
app/templates/register.html
@@ -0,0 +1,31 @@
1
Added:
{% extends "base.html" %}
2
Added:
{% block content %}
3
Added:
4
Added:
<div class="content-section">
5
Added:
<form method="POST" action="">
6
Added:
{{ form.hidden_tag() }}
7
Added:
<fieldset class="form-group">
8
Added:
<legend>Create a new alias</legend>
9
Added:
<div class="form-group">
10
Added:
{{ form.alias.label(class="form-control-label") }}
11
Added:
{{ form.alias(class="form-control") }}
12
Added:
</div>
13
Added:
<div class="form-group">
14
Added:
{{ form.password.label(class="form-control-label") }}
15
Added:
{{ form.password(class="form-control") }}
16
Added:
</div>
17
Added:
<div class="form-group">
18
Added:
{{ form.password_confirm.label(class="form-control-label") }}
19
Added:
{{ form.password_confirm(class="form-control") }}
20
Added:
</div>
21
Added:
</fieldset>
22
Added:
<div class="form-group">
23
Added:
{{ form.submit(class="btn") }}
24
Added:
</div>
25
Added:
</form>
26
Added:
</div>
27
Added:
<div>
28
Added:
Sign in with existing alias? <a href="{{ url_for('login') }}">Sign In</a>
29
Added:
</div>
30
Added:
31
Added:
{% endblock content %}
app/templates/yes.html
@@ -0,0 +1,17 @@
1
Added:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/default.css') }}">
2
Added:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/yes.css') }}">
3
Added:
4
Added:
{% extends "base.html" %}
5
Added:
{% block content %}
6
Added:
7
Added:
<div>
8
Added:
<a href="{{ url_for('no') }}" class="tab-no"></a>
9
Added:
<a href="{{ url_for('home') }}" class="tab-home"></a>
10
Added:
11
Added:
<div class="main">
12
Added:
<p> yes, no?</p>
13
Added:
</div>
14
Added:
</div>
15
Added:
16
Added:
17
Added:
{% endblock content %}
website/Pipfile
@@ -1,15 +0,0 @@
1
Removed:
[[source]]
2
Removed:
name = "pypi"
3
Removed:
url = "https://pypi.org/simple"
4
Removed:
verify_ssl = true
5
Removed:
6
Removed:
[dev-packages]
7
Removed:
8
Removed:
[packages]
9
Removed:
flask = "*"
10
Removed:
flask-wtf = "*"
11
Removed:
uwsgi = "*"
12
Removed:
flask-socketio = "*"
13
Removed:
14
Removed:
[requires]
15
Removed:
python_version = "3.8"
website/Pipfile.lock
@@ -1,141 +0,0 @@
1
Removed:
{
2
Removed:
"_meta": {
3
Removed:
"hash": {
4
Removed:
"sha256": "efc56d845e2a3dfa2fa6132963f17abed9e32f9efdc80d03898efdcd1c3d07a3"
5
Removed:
},
6
Removed:
"pipfile-spec": 6,
7
Removed:
"requires": {
8
Removed:
"python_version": "3.8"
9
Removed:
},
10
Removed:
"sources": [
11
Removed:
{
12
Removed:
"name": "pypi",
13
Removed:
"url": "https://pypi.org/simple",
14
Removed:
"verify_ssl": true
15
Removed:
}
16
Removed:
]
17
Removed:
},
18
Removed:
"default": {
19
Removed:
"click": {
20
Removed:
"hashes": [
21
Removed:
"sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13",
22
Removed:
"sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"
23
Removed:
],
24
Removed:
"version": "==7.0"
25
Removed:
},
26
Removed:
"flask": {
27
Removed:
"hashes": [
28
Removed:
"sha256:13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52",
29
Removed:
"sha256:45eb5a6fd193d6cf7e0cf5d8a5b31f83d5faae0293695626f539a823e93b13f6"
30
Removed:
],
31
Removed:
"index": "pypi",
32
Removed:
"version": "==1.1.1"
33
Removed:
},
34
Removed:
"flask-socketio": {
35
Removed:
"hashes": [
36
Removed:
"sha256:2172dff1e42415ba480cee02c30c2fc833671ff326f1598ee3d69aa02cf768ec",
37
Removed:
"sha256:7ff5b2f5edde23e875a8b0abf868584e5706e11741557449bc5147df2cd78268"
38
Removed:
],
39
Removed:
"index": "pypi",
40
Removed:
"version": "==4.2.1"
41
Removed:
},
42
Removed:
"flask-wtf": {
43
Removed:
"hashes": [
44
Removed:
"sha256:5d14d55cfd35f613d99ee7cba0fc3fbbe63ba02f544d349158c14ca15561cc36",
45
Removed:
"sha256:d9a9e366b32dcbb98ef17228e76be15702cd2600675668bca23f63a7947fd5ac"
46
Removed:
],
47
Removed:
"index": "pypi",
48
Removed:
"version": "==0.14.2"
49
Removed:
},
50
Removed:
"itsdangerous": {
51
Removed:
"hashes": [
52
Removed:
"sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19",
53
Removed:
"sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"
54
Removed:
],
55
Removed:
"version": "==1.1.0"
56
Removed:
},
57
Removed:
"jinja2": {
58
Removed:
"hashes": [
59
Removed:
"sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f",
60
Removed:
"sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de"
61
Removed:
],
62
Removed:
"version": "==2.10.3"
63
Removed:
},
64
Removed:
"markupsafe": {
65
Removed:
"hashes": [
66
Removed:
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
67
Removed:
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
68
Removed:
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
69
Removed:
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
70
Removed:
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
71
Removed:
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
72
Removed:
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
73
Removed:
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
74
Removed:
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
75
Removed:
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
76
Removed:
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
77
Removed:
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
78
Removed:
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
79
Removed:
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
80
Removed:
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
81
Removed:
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
82
Removed:
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
83
Removed:
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
84
Removed:
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
85
Removed:
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
86
Removed:
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
87
Removed:
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
88
Removed:
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
89
Removed:
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
90
Removed:
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
91
Removed:
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
92
Removed:
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
93
Removed:
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"
94
Removed:
],
95
Removed:
"version": "==1.1.1"
96
Removed:
},
97
Removed:
"python-engineio": {
98
Removed:
"hashes": [
99
Removed:
"sha256:50d108fc7feb7f970e6ebc86733752ebd714545bb5622383e6135bdad45fc9fe",
100
Removed:
"sha256:f6bd466dea769bb19c59eaf8e68a296b195b6957650523f13a73d8c0767b7a38"
101
Removed:
],
102
Removed:
"version": "==3.11.1"
103
Removed:
},
104
Removed:
"python-socketio": {
105
Removed:
"hashes": [
106
Removed:
"sha256:48cba5b827ac665dbf923a4f5ec590812aed5299a831fc43576a9af346272534",
107
Removed:
"sha256:af6c23c35497960f82106e36688123ecb52ad5a77d0ca27954ff3811c4d9d562"
108
Removed:
],
109
Removed:
"version": "==4.4.0"
110
Removed:
},
111
Removed:
"six": {
112
Removed:
"hashes": [
113
Removed:
"sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd",
114
Removed:
"sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66"
115
Removed:
],
116
Removed:
"version": "==1.13.0"
117
Removed:
},
118
Removed:
"uwsgi": {
119
Removed:
"hashes": [
120
Removed:
"sha256:4972ac538800fb2d421027f49b4a1869b66048839507ccf0aa2fda792d99f583"
121
Removed:
],
122
Removed:
"index": "pypi",
123
Removed:
"version": "==2.0.18"
124
Removed:
},
125
Removed:
"werkzeug": {
126
Removed:
"hashes": [
127
Removed:
"sha256:7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7",
128
Removed:
"sha256:e5f4a1f98b52b18a93da705a7458e55afb26f32bff83ff5d19189f92462d65c4"
129
Removed:
],
130
Removed:
"version": "==0.16.0"
131
Removed:
},
132
Removed:
"wtforms": {
133
Removed:
"hashes": [
134
Removed:
"sha256:0cdbac3e7f6878086c334aa25dc5a33869a3954e9d1e015130d65a69309b3b61",
135
Removed:
"sha256:e3ee092c827582c50877cdbd49e9ce6d2c5c1f6561f849b3b068c1b8029626f1"
136
Removed:
],
137
Removed:
"version": "==2.2.1"
138
Removed:
}
139
Removed:
},
140
Removed:
"develop": {}
141
Removed:
}
website/app/forms.py
@@ -1,28 +0,0 @@
1
Removed:
from flask_wtf import FlaskForm
2
Removed:
from wtforms import StringField, PasswordField, SubmitField, BooleanField
3
Removed:
from wtforms.validators import DataRequired, Length, EqualTo
4
Removed:
5
Removed:
6
Removed:
class RegistrationForm(FlaskForm):
7
Removed:
alias = StringField('Alias',
8
Removed:
validators=[DataRequired(),
9
Removed:
Length(min=2, max=20)])
10
Removed:
password = PasswordField('Password', validators=[DataRequired()])
11
Removed:
password_confirm = PasswordField(
12
Removed:
'Confirm Password', validators=[DataRequired(),
13
Removed:
EqualTo('password')])
14
Removed:
submit = SubmitField('Create Alias')
15
Removed:
16
Removed:
17
Removed:
class LoginForm(FlaskForm):
18
Removed:
alias = StringField('Alias',
19
Removed:
validators=[DataRequired(),
20
Removed:
Length(min=2, max=20)])
21
Removed:
password = PasswordField('Password', validators=[DataRequired()])
22
Removed:
remember = BooleanField('Remember Alias')
23
Removed:
submit = SubmitField('Login Alias')
24
Removed:
25
Removed:
26
Removed:
class NewMessage(FlaskForm):
27
Removed:
recipient = StringField('Recipient', validators=[DataRequired()])
28
Removed:
message = StringField('message', validators=[DataRequired()])
website/app/routes.py
@@ -1,54 +0,0 @@
1
Removed:
from flask import Flask, render_template, flash, redirect, url_for
2
Removed:
from forms import RegistrationForm, LoginForm
3
Removed:
4
Removed:
app = Flask(__name__)
5
Removed:
app.config['SECRET_KEY'] = 'foobarblendoitfoobar!'
6
Removed:
7
Removed:
posts = [{
8
Removed:
'author':
9
Removed:
'Marius',
10
Removed:
'date':
11
Removed:
'Dec. 26th, 2019',
12
Removed:
'content':
13
Removed:
"this is a test where I write a message that isn't too short, it isn't too long, it's just the right size."
14
Removed:
}, {
15
Removed:
'author': 'Achille',
16
Removed:
'date': 'Dec. 25th, 2019',
17
Removed:
'content': "this is a second test!"
18
Removed:
}, {
19
Removed:
'author': 'Jeanne',
20
Removed:
'date': 'Dec. 24th, 2019',
21
Removed:
'content': "this is a third test!"
22
Removed:
}]
23
Removed:
24
Removed:
25
Removed:
@app.route("/")
26
Removed:
@app.route("/home")
27
Removed:
def home():
28
Removed:
return render_template('home.html', posts=posts)
29
Removed:
30
Removed:
@app.route("/yes")
31
Removed:
def yes():
32
Removed:
return render_template("yes.html")
33
Removed:
34
Removed:
@app.route("/no")
35
Removed:
def no():
36
Removed:
return render_template("no.html")
37
Removed:
38
Removed:
@app.route("/register", methods=['GET', 'POST'])
39
Removed:
def register():
40
Removed:
form = RegistrationForm()
41
Removed:
if form.validate_on_submit():
42
Removed:
flash(f"Alias created for {form.alias.data}.", 'success')
43
Removed:
return redirect(url_for('home'))
44
Removed:
return render_template('register.html', title="Register", form=form)
45
Removed:
46
Removed:
47
Removed:
@app.route("/login")
48
Removed:
def login():
49
Removed:
form = LoginForm()
50
Removed:
return render_template('login.html', title="Login", form=form)
51
Removed:
52
Removed:
53
Removed:
if __name__ == '__main__':
54
Removed:
app.run(debug=True)
website/app/static/styles/default.css
@@ -1,25 +0,0 @@
1
Removed:
:root {
2
Removed:
--primary-color: #003B5C;
3
Removed:
--secondary-color: #C3D7EE;
4
Removed:
--home: rgba(200, 200, 200, 0.7);
5
Removed:
--yes: rgba(0, 255, 0, 0.7);
6
Removed:
--no: rgba(255, 0, 0, 0.7);
7
Removed:
}
8
Removed:
9
Removed:
* {
10
Removed:
margin: 0;
11
Removed:
padding: 0;
12
Removed:
}
13
Removed:
14
Removed:
body {
15
Removed:
font-family: 'Liberation Sans', sans-serif;
16
Removed:
line-height: 1.2;
17
Removed:
}
18
Removed:
19
Removed:
h1 {
20
Removed:
21
Removed:
}
22
Removed:
23
Removed:
h2 {
24
Removed:
25
Removed:
}
website/app/static/styles/home.css
@@ -1,50 +0,0 @@
1
Removed:
.main {
2
Removed:
height: 100%;
3
Removed:
position: absolute;
4
Removed:
left: 3%;
5
Removed:
right: 3%;
6
Removed:
background: linear-gradient(to top, var(--secondary-color), var(--primary-color)) fixed;
7
Removed:
}
8
Removed:
9
Removed:
.tab-yes {
10
Removed:
height: 100%;
11
Removed:
width: 10%;
12
Removed:
float: left;
13
Removed:
position: fixed;
14
Removed:
z-index: -1;
15
Removed:
background: var(--yes);
16
Removed:
}
17
Removed:
.tab-no {
18
Removed:
height: 100%;
19
Removed:
width: 10%;
20
Removed:
float: right;
21
Removed:
position: fixed;
22
Removed:
z-index: -1;
23
Removed:
right: 0;
24
Removed:
background: var(--no);
25
Removed:
}
26
Removed:
27
Removed:
.tab-yes:hover ~ .main {
28
Removed:
left: 5%;
29
Removed:
transition: 0.2s;
30
Removed:
}
31
Removed:
32
Removed:
.tab-no:hover ~ .main {
33
Removed:
right: 5%;
34
Removed:
transition: 0.2s;
35
Removed:
}
36
Removed:
37
Removed:
.post {
38
Removed:
background: white;
39
Removed:
border-radius: 14px;
40
Removed:
padding: 1rem;
41
Removed:
margin: 1rem;
42
Removed:
width: 20%;
43
Removed:
}
44
Removed:
45
Removed:
.post:hover {
46
Removed:
background: linear-gradient(to left, var(--no) 50%, var(--yes) 50%);
47
Removed:
cursor: pointer;
48
Removed:
transition: 0.8s;
49
Removed:
color: white;
50
Removed:
}
website/app/static/styles/no.css
@@ -1,54 +0,0 @@
1
Removed:
.main {
2
Removed:
height: 100%;
3
Removed:
right: 0;
4
Removed:
left: 6%;
5
Removed:
position: absolute;
6
Removed:
z-index: 1;
7
Removed:
background: linear-gradient(to top, var(--secondary-color), var(--primary-color)) fixed;
8
Removed:
}
9
Removed:
10
Removed:
.tab-home {
11
Removed:
height: 100%;
12
Removed:
width: 3%;
13
Removed:
float: left;
14
Removed:
position: relative;
15
Removed:
z-index: 0;
16
Removed:
background: var(--home);
17
Removed:
}
18
Removed:
19
Removed:
.tab-yes {
20
Removed:
height: 100%;
21
Removed:
width: 3%;
22
Removed:
float: left;
23
Removed:
position: relative;
24
Removed:
z-index: -1;
25
Removed:
background: var(--yes);
26
Removed:
}
27
Removed:
28
Removed:
.tab-home:hover ~ .main {
29
Removed:
left: 9%;
30
Removed:
transition: 0.2s;
31
Removed:
}
32
Removed:
33
Removed:
.tab-home:hover {
34
Removed:
width: 6%;
35
Removed:
transition: 0.2s;
36
Removed:
}
37
Removed:
38
Removed:
.tab-yes:hover ~ .main {
39
Removed:
left: 9%;
40
Removed:
transition: 0.2s;
41
Removed:
}
42
Removed:
43
Removed:
.tab-yes:hover {
44
Removed:
width: 6%;
45
Removed:
transition: 0.2s;
46
Removed:
}
47
Removed:
48
Removed:
.post {
49
Removed:
background: white;
50
Removed:
border-radius: 14px;
51
Removed:
padding: 1rem;
52
Removed:
margin: 1rem;
53
Removed:
width: 20%;
54
Removed:
}
website/app/static/styles/yes.css
@@ -1,54 +0,0 @@
1
Removed:
.main {
2
Removed:
height: 100%;
3
Removed:
right: 6%;
4
Removed:
left: 0;
5
Removed:
position: absolute;
6
Removed:
z-index: 1;
7
Removed:
background: linear-gradient(to top, var(--secondary-color), var(--primary-color)) fixed;
8
Removed:
}
9
Removed:
10
Removed:
.tab-home {
11
Removed:
height: 100%;
12
Removed:
width: 3%;
13
Removed:
float: right;
14
Removed:
position: relative;
15
Removed:
z-index: 0;
16
Removed:
background: var(--home);
17
Removed:
}
18
Removed:
19
Removed:
.tab-no {
20
Removed:
height: 100%;
21
Removed:
width: 3%;
22
Removed:
float: right;
23
Removed:
position: relative;
24
Removed:
z-index: -1;
25
Removed:
background: var(--no);
26
Removed:
}
27
Removed:
28
Removed:
.tab-home:hover ~ .main {
29
Removed:
right: 9%;
30
Removed:
transition: 0.2s;
31
Removed:
}
32
Removed:
33
Removed:
.tab-home:hover {
34
Removed:
width: 6%;
35
Removed:
transition: 0.2s;
36
Removed:
}
37
Removed:
38
Removed:
.tab-no:hover ~ .main {
39
Removed:
right: 9%;
40
Removed:
transition: 0.2s;
41
Removed:
}
42
Removed:
43
Removed:
.tab-no:hover {
44
Removed:
width: 6%;
45
Removed:
transition: 0.2s;
46
Removed:
}
47
Removed:
48
Removed:
.post {
49
Removed:
background: white;
50
Removed:
border-radius: 14px;
51
Removed:
padding: 1rem;
52
Removed:
margin: 1rem;
53
Removed:
width: 20%;
54
Removed:
}
website/app/templates/base.html
@@ -1,25 +0,0 @@
1
Removed:
<html>
2
Removed:
<head>
3
Removed:
<meta charset="utf-8">
4
Removed:
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to">
5
Removed:
6
Removed:
{% if title %}
7
Removed:
<title>{{ title }}</title>
8
Removed:
{% else %}
9
Removed:
<title>Blendoit</title>
10
Removed:
{% endif %}
11
Removed:
</head>
12
Removed:
<body>
13
Removed:
{% with messages = get_flashed_messages(with_categories=true) %}
14
Removed:
{% if messages %}
15
Removed:
{% for message in messages %}
16
Removed:
<div class="alert">
17
Removed:
{{ message }}
18
Removed:
</div>
19
Removed:
{% endfor %}
20
Removed:
{% endif %}
21
Removed:
{% endwith %}
22
Removed:
23
Removed:
{% block content %}{% endblock %}
24
Removed:
</body>
25
Removed:
</html>
website/app/templates/home.html
@@ -1,24 +0,0 @@
1
Removed:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/default.css') }}">
2
Removed:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/home.css') }}">
3
Removed:
4
Removed:
{% extends "base.html" %}
5
Removed:
6
Removed:
{% block content %}
7
Removed:
8
Removed:
<div>
9
Removed:
<a href="{{ url_for('yes') }}" class="tab-yes"></a>
10
Removed:
<a href="{{ url_for('no') }}" class="tab-no"></a>
11
Removed:
12
Removed:
<div class="main">
13
Removed:
{% for post in posts %}
14
Removed:
<div class="post">
15
Removed:
<h1>{{post.author}}</h1>
16
Removed:
<h2>{{post.date}}</h2>
17
Removed:
<p>{{post.content}}</p>
18
Removed:
</div>
19
Removed:
{% endfor %}
20
Removed:
</div>
21
Removed:
</div>
22
Removed:
23
Removed:
24
Removed:
{% endblock content %}
website/app/templates/login.html
@@ -1,34 +0,0 @@
1
Removed:
{% extends "base.html" %}
2
Removed:
{% block content %}
3
Removed:
4
Removed:
<div class="content-section">
5
Removed:
<form method="POST" action="">
6
Removed:
{{ form.hidden_tag() }}
7
Removed:
<fieldset class="form-group">
8
Removed:
<legend>Join Today</legend>
9
Removed:
<div class="form-group">
10
Removed:
{{ form.alias.label }}
11
Removed:
{{ form.alias }}
12
Removed:
</div>
13
Removed:
<div class="form-group">
14
Removed:
{{ form.password.label }}
15
Removed:
{{ form.password }}
16
Removed:
</div>
17
Removed:
<div class="form-group">
18
Removed:
{{ form.password_confirm.label }}
19
Removed:
{{ form.password_confirm }}
20
Removed:
</div>
21
Removed:
</fieldset>
22
Removed:
<div class="form-group">
23
Removed:
{{ form.submit(class="btn") }}
24
Removed:
</div>
25
Removed:
</form>
26
Removed:
</div>
27
Removed:
28
Removed:
<div>
29
Removed:
<small>
30
Removed:
Already have an account? <a href="{{ url_for('login') }}">Sign In</a>
31
Removed:
</small>
32
Removed:
</div>
33
Removed:
34
Removed:
{% endblock content %}
website/app/templates/no.html
@@ -1,23 +0,0 @@
1
Removed:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/default.css') }}">
2
Removed:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/no.css') }}">
3
Removed:
4
Removed:
{% extends "base.html" %}
5
Removed:
{% block content %}
6
Removed:
7
Removed:
<div>
8
Removed:
<a href="{{ url_for('yes') }}" class="tab-yes"></a>
9
Removed:
<a href="{{ url_for('home') }}" class="tab-home"></a>
10
Removed:
11
Removed:
<div class="main">
12
Removed:
{% for post in posts %}
13
Removed:
<div class="post">
14
Removed:
<h1>{{post.author}}</h1>
15
Removed:
<h2>{{post.date}}</h2>
16
Removed:
<p>{{post.content}}</p>
17
Removed:
</div>
18
Removed:
{% endfor %}
19
Removed:
</div>
20
Removed:
</div>
21
Removed:
22
Removed:
23
Removed:
{% endblock content %}
website/app/templates/register.html
@@ -1,31 +0,0 @@
1
Removed:
{% extends "base.html" %}
2
Removed:
{% block content %}
3
Removed:
4
Removed:
<div class="content-section">
5
Removed:
<form method="POST" action="">
6
Removed:
{{ form.hidden_tag() }}
7
Removed:
<fieldset class="form-group">
8
Removed:
<legend>Create a new alias</legend>
9
Removed:
<div class="form-group">
10
Removed:
{{ form.alias.label(class="form-control-label") }}
11
Removed:
{{ form.alias(class="form-control") }}
12
Removed:
</div>
13
Removed:
<div class="form-group">
14
Removed:
{{ form.password.label(class="form-control-label") }}
15
Removed:
{{ form.password(class="form-control") }}
16
Removed:
</div>
17
Removed:
<div class="form-group">
18
Removed:
{{ form.password_confirm.label(class="form-control-label") }}
19
Removed:
{{ form.password_confirm(class="form-control") }}
20
Removed:
</div>
21
Removed:
</fieldset>
22
Removed:
<div class="form-group">
23
Removed:
{{ form.submit(class="btn") }}
24
Removed:
</div>
25
Removed:
</form>
26
Removed:
</div>
27
Removed:
<div>
28
Removed:
Sign in with existing alias? <a href="{{ url_for('login') }}">Sign In</a>
29
Removed:
</div>
30
Removed:
31
Removed:
{% endblock content %}
website/app/templates/yes.html
@@ -1,17 +0,0 @@
1
Removed:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/default.css') }}">
2
Removed:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/yes.css') }}">
3
Removed:
4
Removed:
{% extends "base.html" %}
5
Removed:
{% block content %}
6
Removed:
7
Removed:
<div>
8
Removed:
<a href="{{ url_for('no') }}" class="tab-no"></a>
9
Removed:
<a href="{{ url_for('home') }}" class="tab-home"></a>
10
Removed:
11
Removed:
<div class="main">
12
Removed:
<p> yes, no?</p>
13
Removed:
</div>
14
Removed:
</div>
15
Removed:
16
Removed:
17
Removed:
{% endblock content %}