From 3cb63a64801b6cccf8b6903ad69c30840ab15f8b Mon Sep 17 00:00:00 2001 From: "Troll (Hermes Agent)" Date: Sun, 2 Aug 2026 22:24:54 +0000 Subject: [PATCH] ui: convert admin request page to two-column layout --- templates/admin/request.html | 401 +++++++++++++++++------------------ 1 file changed, 196 insertions(+), 205 deletions(-) diff --git a/templates/admin/request.html b/templates/admin/request.html index 26b2aaf..8bb06da 100644 --- a/templates/admin/request.html +++ b/templates/admin/request.html @@ -6,15 +6,11 @@ Request #{{ req.id }} — Admin @@ -131,200 +131,191 @@ {% endfor %} {% endwith %} - -
-

Customer Info

-

Operators can correct the customer's email address here.

-
- - - -
- -
-
+
+ +
+ +
+

Customer Info

+

Operators can correct the customer's email address here.

+
+ + + +
+ +
+
-
-
Request #: {{ req.id }}
-
Status: {{ statuses[req.status] }}
-
-

Hobbies:
{{ req.hobbies or '-' }}

-

Notable facts:
{{ req.notable_facts or '-' }}

-

Style / genre:
{{ req.style_genre or '-' }}

-

Preferred singer voice / gender:
{{ req.vocal_gender or 'No preference' }}

-

Extra requests:
{{ req.extra_requests or '-' }}

+

Request #: {{ req.id }}

+

Status: {{ statuses[req.status] }}

+

Hobbies:
{{ req.hobbies or '-' }}

+

Notable facts:
{{ req.notable_facts or '-' }}

+

Style / genre:
{{ req.style_genre or '-' }}

+

Preferred singer voice / gender:
{{ req.vocal_gender or 'No preference' }}

+

Extra requests:
{{ req.extra_requests or '-' }}

- {% if req.revision_note %} - -
-

📝 Revisions Requested{% if req.revision_count %}Revision #{{ req.revision_count }}{% endif %}

-

{{ req.revision_note }}

-
- {% endif %} -
- - -
-

Operator Notes

-

Internal notes for the booth team. Customers cannot see this.

-
- - - -
- -
-
-
- - -
-

1. Generate & Save Suno Prompt

- - -

Paste Hermes' Title, Style, and Lyrics directly into the fields below, then save.

- -
- - - - - - - - - - - -
- - - - -
-
-
- - -
-

2. Upload Songs

-

- Version A: - {% if req.song_a_path and file_exists(req.song_a_path) %} - ✅ Uploaded {{ basename(req.song_a_path) }} - {% else %} - ❌ Not uploaded - {% endif %} -

-

- Version B: - {% if req.song_b_path and file_exists(req.song_b_path) %} - ✅ Uploaded {{ basename(req.song_b_path) }} - {% else %} - ❌ Not uploaded - {% endif %} -

- -
- - - - - -
- -
-
-
- - -
-

3. Notify Customer

- -

- Preview email: - {% if req.preview_sent_at %} - ✅ Sent {{ req.preview_sent_at }} - {% else %} - ❌ Not sent yet - {% endif %} -

-

Both songs must be uploaded first.

-
- - -
- - {% if req.song_a_path and req.song_b_path %} -

- Operator preview link: - Open customer player in new tab → -

- {% endif %} -
- - -
-

4. Payment & Delivery

-

- Customer approved: - {% if req.customer_approved == 'none' %} - Nothing yet - {% else %} - {{ req.customer_approved.upper() }} - {% endif %} -

-

- Delivery email: - {% if req.delivery_sent_at %} - ✅ Sent {{ req.delivery_sent_at }} - {% else %} - ❌ Not sent yet - {% endif %} -

-
- - -

Select files to deliver:

- - {% set all_files = [] %} - {% if req.song_a_path and file_exists(req.song_a_path) %} - {% set _ = all_files.append(req.song_a_path) %} - {% endif %} - {% if req.song_b_path and file_exists(req.song_b_path) %} - {% set _ = all_files.append(req.song_b_path) %} - {% endif %} - - - {% set files_to_show = all_files + extra_files %} - {% for fpath in files_to_show %} -
- - - {% if not (fpath == req.song_a_path or fpath == req.song_b_path) %} -
archived / revision file
- {% endif %} + {% if req.revision_note %} +
+

📝 Revisions Requested{% if req.revision_count %}Revision #{{ req.revision_count }}{% endif %}

+

{{ req.revision_note }}

- {% else %} -

No files available. Upload songs first.

- {% endfor %} - - - -
- + {% endif %}
- + + +
+

Operator Notes

+

Internal notes for the booth team. Customers cannot see this.

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

1. Generate & Save Suno Prompt

+ +

Paste Hermes' Title, Style, and Lyrics directly into the fields below, then save.

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

2. Upload Songs

+

+ Version A: + {% if req.song_a_path and file_exists(req.song_a_path) %} + ✅ Uploaded {{ basename(req.song_a_path) }} + {% else %} + ❌ Not uploaded + {% endif %} +

+

+ Version B: + {% if req.song_b_path and file_exists(req.song_b_path) %} + ✅ Uploaded {{ basename(req.song_b_path) }} + {% else %} + ❌ Not uploaded + {% endif %} +

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

3. Notify Customer

+

+ Preview email: + {% if req.preview_sent_at %} + ✅ Sent {{ req.preview_sent_at }} + {% else %} + ❌ Not sent yet + {% endif %} +

+

Both songs must be uploaded first.

+
+ + +
+ + {% if req.song_a_path and req.song_b_path %} +

+ Operator preview link: + Open customer player in new tab → +

+ {% endif %} +
+ + +
+

4. Payment & Delivery

+

+ Customer approved: + {% if req.customer_approved == 'none' %} + Nothing yet + {% else %} + {{ req.customer_approved.upper() }} + {% endif %} +

+

+ Delivery email: + {% if req.delivery_sent_at %} + ✅ Sent {{ req.delivery_sent_at }} + {% else %} + ❌ Not sent yet + {% endif %} +

+
+ + +

Select files to deliver:

+ {% set all_files = [] %} + {% if req.song_a_path and file_exists(req.song_a_path) %} + {% set _ = all_files.append(req.song_a_path) %} + {% endif %} + {% if req.song_b_path and file_exists(req.song_b_path) %} + {% set _ = all_files.append(req.song_b_path) %} + {% endif %} + + {% set files_to_show = all_files + extra_files %} + {% for fpath in files_to_show %} +
+ + + {% if not (fpath == req.song_a_path or fpath == req.song_b_path) %} +
archived / revision file
+ {% endif %} +
+ {% else %} +

No files available. Upload songs first.

+ {% endfor %} + + + +
+ +
+
+
+