Skip to content

Commit 8e83bdc

Browse files
committed
feat: multi-line video titles
1 parent a023298 commit 8e83bdc

File tree

3 files changed

+101
-41
lines changed

3 files changed

+101
-41
lines changed

templates/video_action.html

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,55 +52,76 @@ <h2 class="text-xl font-bold text-white">Video Details</h2>
5252
Title:</label>
5353
{{ form.title_en(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
5454
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
55-
placeholder="Enter English title") }}
55+
placeholder="Title line 1...") }}
56+
{{ form.title_en_2(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
57+
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
58+
placeholder="Title line 2...") }}
5659
</div>
5760

5861
<div>
5962
<label for="{{ form.title_jpn.id }}"
6063
class="block text-sm font-medium text-gray-300 mb-2">Japanese Title:</label>
6164
{{ form.title_jpn(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
6265
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
63-
placeholder="Enter Japanese title") }}
66+
placeholder="Title line 1...") }}
67+
{{ form.title_jpn_2(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
68+
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
69+
placeholder="Title line 2...") }}
6470
</div>
6571

6672
<div>
6773
<label for="{{ form.title_fr.id }}" class="block text-sm font-medium text-gray-300 mb-2">French
6874
Title:</label>
6975
{{ form.title_fr(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
7076
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
71-
placeholder="Enter French title") }}
77+
placeholder="Title line 1...") }}
78+
{{ form.title_fr_2(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
79+
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
80+
placeholder="Title line 2...") }}
7281
</div>
7382

7483
<div>
7584
<label for="{{ form.title_de.id }}" class="block text-sm font-medium text-gray-300 mb-2">German
7685
Title:</label>
7786
{{ form.title_de(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
7887
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
79-
placeholder="Enter German title") }}
88+
placeholder="Title line 1...") }}
89+
{{ form.title_de_2(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
90+
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
91+
placeholder="Title line 2...") }}
8092
</div>
8193

8294
<div>
8395
<label for="{{ form.title_es.id }}" class="block text-sm font-medium text-gray-300 mb-2">Spanish
8496
Title:</label>
8597
{{ form.title_es(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
8698
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
87-
placeholder="Enter Spanish title") }}
99+
placeholder="Title line 1...") }}
100+
{{ form.title_es_2(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
101+
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
102+
placeholder="Title line 2...") }}
88103
</div>
89104

90105
<div>
91106
<label for="{{ form.title_it.id }}" class="block text-sm font-medium text-gray-300 mb-2">Italian
92107
Title:</label>
93108
{{ form.title_it(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
94109
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
95-
placeholder="Enter Italian title") }}
110+
placeholder="Title line 1...") }}
111+
{{ form.title_it_2(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
112+
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
113+
placeholder="Title line 2...") }}
96114
</div>
97115

98116
<div>
99-
<label for="{{ form.title_dutch.id }}"
117+
<label for="{{ form.title_nl.id }}"
100118
class="block text-sm font-medium text-gray-300 mb-2">Dutch Title:</label>
101-
{{ form.title_dutch(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
119+
{{ form.title_nl(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
120+
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
121+
placeholder="Title line 1...") }}
122+
{{ form.title_nl_2(class_="bg-gray-700 border border-gray-600 text-white w-full px-4 py-2
102123
rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",
103-
placeholder="Enter Dutch title") }}
124+
placeholder="Title line 2...") }}
104125
</div>
105126
</div>
106127

thegateway/form.py

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,46 @@ def choices(cls):
3030
class VideoForm(FlaskForm):
3131
video = FileField("Video")
3232
title_jpn = StringField(
33-
"Title (Japanese)", validators=[DataRequired(), Length(max=102)]
33+
validators=[DataRequired(), Length(max=51)]
34+
)
35+
title_jpn_2 = StringField(
36+
validators=[Length(max=51)]
3437
)
3538
title_en = StringField(
36-
"Title (English)", validators=[DataRequired(), Length(max=102)]
39+
validators=[DataRequired(), Length(max=51)]
40+
)
41+
title_en_2 = StringField(
42+
validators=[Length(max=51)]
3743
)
3844
title_de = StringField(
39-
"Title (German)", validators=[DataRequired(), Length(max=102)]
45+
validators=[DataRequired(), Length(max=51)]
46+
)
47+
title_de_2 = StringField(
48+
validators=[Length(max=51)]
4049
)
4150
title_es = StringField(
42-
"Title (Spanish)", validators=[DataRequired(), Length(max=102)]
51+
validators=[DataRequired(), Length(max=51)]
52+
)
53+
title_es_2 = StringField(
54+
validators=[Length(max=51)]
4355
)
4456
title_fr = StringField(
45-
"Title (French)", validators=[DataRequired(), Length(max=102)]
57+
validators=[DataRequired(), Length(max=51)]
58+
)
59+
title_fr_2 = StringField(
60+
validators=[Length(max=51)]
4661
)
4762
title_it = StringField(
48-
"Title (Italian)", validators=[DataRequired(), Length(max=102)]
63+
validators=[DataRequired(), Length(max=51)]
4964
)
50-
title_dutch = StringField(
51-
"Title (Dutch)", validators=[DataRequired(), Length(max=102)]
65+
title_it_2 = StringField(
66+
validators=[Length(max=51)]
67+
)
68+
title_nl = StringField(
69+
validators=[DataRequired(), Length(max=51)]
70+
)
71+
title_nl_2 = StringField(
72+
validators=[Length(max=51)]
5273
)
5374
video_type = SelectField("Video Type", choices=VideoType.choices())
5475
thumbnail = FileField("Video thumbnail")

thegateway/videos.py

Lines changed: 42 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222
from werkzeug import exceptions
2323
from flask_wtf.file import FileRequired
2424

25-
2625
generate_status = {
2726
"completed": False,
28-
'message': "",
27+
"message": "",
2928
"in_progress": False,
3029
}
3130

@@ -48,7 +47,9 @@ def list_videos():
4847
)
4948

5049

51-
@thegateway_blueprint.route("/thegateway/videos/<movie_id>/edit", methods=["GET", "POST"])
50+
@thegateway_blueprint.route(
51+
"/thegateway/videos/<movie_id>/edit", methods=["GET", "POST"]
52+
)
5253
@oidc.require_login
5354
def edit_video(movie_id):
5455
form = VideoForm()
@@ -75,25 +76,41 @@ def edit_video(movie_id):
7576

7677
save_video_data(movie.id, thumbnail_data, video_data)
7778

78-
movie.name_japanese = form.title_jpn.data
79-
movie.name_english = form.title_en.data
80-
movie.name_german = form.title_de.data
81-
movie.name_french = form.title_fr.data
82-
movie.name_spanish = form.title_es.data
83-
movie.name_italian = form.title_it.data
84-
movie.name_dutch = form.title_dutch.data
79+
movie.name_japanese = form.title_jpn.data + "\n" + form.title_jpn_2.data
80+
movie.name_english = form.title_en.data + "\n" + form.title_en_2.data
81+
movie.name_german = form.title_de.data + "\n" + form.title_de_2.data
82+
movie.name_french = form.title_fr.data + "\n" + form.title_fr_2.data
83+
movie.name_spanish = form.title_es.data + "\n" + form.title_es_2.data
84+
movie.name_italian = form.title_it.data + "\n" + form.title_it_2.data
85+
movie.name_dutch = form.title_nl.data + "\n" + form.title_nl_2.data
8586
movie.video_type = form.video_type.data
8687
db.session.commit()
8788

8889
return redirect(url_for("thegateway.list_videos"))
8990
else:
90-
form.title_jpn.data = movie.name_japanese
91-
form.title_en.data = movie.name_english
92-
form.title_de.data = movie.name_german
93-
form.title_fr.data = movie.name_french
94-
form.title_es.data = movie.name_spanish
95-
form.title_it.data = movie.name_italian
96-
form.title_dutch.data = movie.name_dutch
91+
split_jpn = movie.name_japanese.split("\n")
92+
split_en = movie.name_english.split("\n")
93+
split_de = movie.name_german.split("\n")
94+
split_fr = movie.name_french.split("\n")
95+
split_es = movie.name_spanish.split("\n")
96+
split_it = movie.name_italian.split("\n")
97+
split_nl = movie.name_dutch.split("\n")
98+
99+
form.title_jpn.data = split_jpn[0]
100+
form.title_jpn_2.data = split_jpn[1]
101+
form.title_en.data = split_en[0]
102+
form.title_en_2.data = split_en[1]
103+
form.title_de.data = split_de[0]
104+
form.title_de_2.data = split_de[1]
105+
form.title_fr.data = split_fr[0]
106+
form.title_fr_2.data = split_fr[1]
107+
form.title_es.data = split_es[0]
108+
form.title_es_2.data = split_es[1]
109+
form.title_it.data = split_it[0]
110+
form.title_it_2.data = split_it[1]
111+
form.title_nl.data = split_nl[0]
112+
form.title_nl_2.data = split_nl[1]
113+
97114
form.video_type.data = movie.video_type
98115

99116
return render_template("video_action.html", form=form, action="Edit")
@@ -118,13 +135,13 @@ def add_video():
118135
length = get_mobiclip_length(video_data)
119136

120137
db_video = Videos(
121-
name_japanese=form.title_jpn.data,
122-
name_english=form.title_en.data,
123-
name_german=form.title_de.data,
124-
name_french=form.title_fr.data,
125-
name_spanish=form.title_es.data,
126-
name_italian=form.title_it.data,
127-
name_dutch=form.title_dutch.data,
138+
name_japanese=form.title_jpn.data + "\n" + form.title_jpn_2.data,
139+
name_english=form.title_en.data + "\n" + form.title_en_2.data,
140+
name_german=form.title_de.data + "\n" + form.title_de_2.data,
141+
name_french=form.title_fr.data + "\n" + form.title_fr_2.data,
142+
name_spanish=form.title_es.data + "\n" + form.title_es_2.data,
143+
name_italian=form.title_it.data + "\n" + form.title_it_2.data,
144+
name_dutch=form.title_nl.data + "\n" + form.title_nl_2.data,
128145
length=length,
129146
video_type=form.video_type.data,
130147
)
@@ -142,6 +159,7 @@ def add_video():
142159

143160
return render_template("video_action.html", form=form, action="Add")
144161

162+
145163
@thegateway_blueprint.route(
146164
"/thegateway/videos/<video_id>/remove", methods=["GET", "POST"]
147165
)

0 commit comments

Comments
 (0)