+++ /dev/null
-{
- "shoot": {
- "date": "10th April 2025",
- "location": "MediaCity UoS, Room 3.08"
- },
- "crew":[
- {
- "name": "William Greenwood (T)",
- "role": "Producer",
- "phone": "075 9476 8180",
- "email": "W.Greenwood@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Finn Downton (T)",
- "role": "Narrative enginneer",
- "phone": "079 1003 1116",
- "email": "E.Downton@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Jack Christian-Sims (T)",
- "role": "Director",
- "phone": "075 4297 4087",
- "email": "J.Christian-Sims@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Eleanor Haughton",
- "role": "Vision Mixer",
- "phone": "074 9127 2723",
- "email": "E.V.Haughton@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Heather Digwood (T)",
- "role": "Floor manager",
- "phone": "077 8817 3853",
- "email": "H.Digwood@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Olivia Gillett (T)",
- "role": "Floor manager",
- "phone": "073 6852 4302",
- "email": "O.Gillett@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Leo Garside-Holdich",
- "role": "Camera opperator",
- "phone": "078 7474 0891",
- "email": "L.N.Garside-Holdich@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Rebecca Dixon",
- "role": "Sound opperator",
- "phone": "074 3400 7701",
- "email": "R.Dixon2@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Alex Roberts",
- "role": "Lighting opperator",
- "phone": "074 9660 1832",
- "email": "A.Roberts17@edu.salford.ac.uk",
- "absent": true
- },
- {
- "name": "Tegan Blake-Barnard (T)",
- "role": "Set-design lead",
- "phone": "075 4893 0872",
- "email": "T.blake-barnard@edu.Salford.ac.uk",
- "absent": false
- },
- {
- "name": "Lydia Wilkinson",
- "role": "Set-design / GFX opperator",
- "phone": "078 0269 0037",
- "email": "L.wilkinson14@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Leigha Blanchard",
- "role": "Set-design / GFX opperator",
- "phone": "074 7700 0501",
- "email": "L.blanchard@salford.ac.uk",
- "absent": false
- },
- {
- "name": "Daisy Devoe",
- "role": "Set-design / GFX opperator",
- "phone": "079 7056 4500",
- "email": "D.Devoe@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Brynn Yates",
- "role": "GFX opperator",
- "phone": "073 7766 9812",
- "email": "M.Yates5@edu.salford.ac.uk",
- "absent": false
- },
- {
- "name": "Shan Hackwood",
- "role": "Engineer",
- "phone": "075 3068 9322",
- "email": "S.Hackwood@edu.salford.ac.uk",
- "absent": false
- }
- ],
- "cast":[
- {
- "name": "David Smith",
- "role": "Anchor",
- "phone": "078 8839 8003",
- "email": "D.Smith51@edu.salford.ac.uk",
- "absent": false
- }
- ],
- "schedule":[
- {
- "time": "1045",
- "title": "Kit is picked up by producer and directors arrive for briefing",
- "extra": ["Meet at kit store (1st floor)"]
- },
- {
- "time": "1115",
- "title": "Crew call time",
- "extra": [
- "Meet in room 3.08 MediacityUK campus",
- "Setup to be completed for 1200",
- "Set-design team to prepare stand-in products"
- ]
- },
- {
- "time": "1200",
- "title": "Break until 1215",
- "extra": ["Crew call time (Room 3.08) for meeting with directors"]
- },
- {
- "time": "1215",
- "title": "Crew arrives back to studio",
- "extra": [
- "Final full overview of responsibilities",
- "Moving onto smaller run-throughs and trying new techniques"
- ]
- },
- {
- "time": "1315",
- "title": "All-hands break till 1330",
- "extra": []
- },
- {
- "time": "1330",
- "title": "Prep for, and record, 25 minute continuous run",
- "extra": ["30 minutes contingency"]
- },
- {
- "time": "1430",
- "title": "De-brief and pass on notes to producer",
- "extra": []
- },
- {
- "time": "1500",
- "title": "De-rig",
- "extra": ["All crew (other than directors and Anchor) dismissed as soon as finished."]
- },
- {
- "time": "1530",
- "title": "Kit returned to store",
- "extra": [
- "Anchor dismissed.",
- "Producer and Directors meeting till dismissed"
- ]
- }
- ],
- "notes": [
- "Note that this is a practice session, nothing forbidden is practiced or revealed.",
- "Small test runs of small GFX features (e.g. Multiple simultaneous timers)",
- "Run through at least 25 minutes of continuous teleshopping (Recorded).",
- "Particularly looking for feedback on: new sound system, new feature text, new sigil visuals, new GFX control layout",
- "Additional notes on further features ahead of the next practice session."
- ]
-}
{
"name": "Finn Downton (T)",
"role": "Narrative enginneer",
- "phone": "079 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "079 1003 1116",
+ "email": "E.Downton@edu.salford.ac.uk",
"absent": false
},
{
"name": "Jack Christian-Sims (T)",
"role": "Director",
- "phone": "075 **** ****",
- "email": "*****@edu.salford.ac.uk",
- "absent": false
+ "phone": "075 4297 4087",
+ "email": "J.Christian-Sims@edu.salford.ac.uk",
+ "absent": true
},
{
"name": "Eleanor Haughton",
"role": "Vision Mixer",
- "phone": "074 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "074 9127 2723",
+ "email": "E.V.Haughton@edu.salford.ac.uk",
"absent": false
},
{
"name": "Heather Digwood (T)",
"role": "Floor manager",
- "phone": "077 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "077 8817 3853",
+ "email": "H.Digwood@edu.salford.ac.uk",
"absent": false
},
{
"name": "Olivia Gillett (T)",
"role": "Floor manager",
- "phone": "073 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "073 6852 4302",
+ "email": "O.Gillett@edu.salford.ac.uk",
"absent": false
},
{
"name": "Leo Garside-Holdich",
"role": "Camera opperator",
- "phone": "078 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "078 7474 0891",
+ "email": "L.N.Garside-Holdich@edu.salford.ac.uk",
"absent": false
},
{
"name": "Rebecca Dixon",
"role": "Sound opperator",
- "phone": "074 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "074 3400 7701",
+ "email": "R.Dixon2@edu.salford.ac.uk",
"absent": false
},
{
"name": "Alex Roberts",
"role": "Lighting opperator",
- "phone": "074 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "074 9660 1832",
+ "email": "A.Roberts17@edu.salford.ac.uk",
"absent": true
},
{
"name": "Tegan Blake-Barnard (T)",
"role": "Set-design lead",
- "phone": "075 **** ****",
- "email": "*****@edu.Salford.ac.uk",
+ "phone": "075 4893 0872",
+ "email": "T.blake-barnard@edu.Salford.ac.uk",
"absent": false
},
{
"name": "Lydia Wilkinson",
"role": "Set-design / GFX opperator",
- "phone": "078 **** ****",
- "email": "*****@edu.salford.ac.uk",
- "absent": false
+ "phone": "078 0269 0037",
+ "email": "L.wilkinson14@edu.salford.ac.uk",
+ "absent": true
},
{
"name": "Leigha Blanchard",
"role": "Set-design / GFX opperator",
- "phone": "074 **** ****",
- "email": "*****@salford.ac.uk",
- "absent": false
+ "phone": "074 7700 0501",
+ "email": "L.blanchard@salford.ac.uk",
+ "absent": true
},
{
"name": "Daisy Devoe",
"role": "Set-design / GFX opperator",
- "phone": "079 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "079 7056 4500",
+ "email": "D.Devoe@edu.salford.ac.uk",
"absent": false
},
{
"name": "Brynn Yates",
"role": "GFX opperator",
- "phone": "073 **** ****",
- "email": "*****@edu.salford.ac.uk",
- "absent": false
+ "phone": "073 7766 9812",
+ "email": "M.Yates5@edu.salford.ac.uk",
+ "absent": true
},
{
"name": "Shan Hackwood",
"role": "Engineer",
- "phone": "075 **** ****",
- "email": "*****@edu.salford.ac.uk",
- "absent": false
+ "phone": "075 3068 9322",
+ "email": "S.Hackwood@edu.salford.ac.uk",
+ "absent": true
}
],
"cast":[
{
"name": "David Smith",
"role": "Anchor",
- "phone": "078 **** ****",
- "email": "*****@edu.salford.ac.uk",
+ "phone": "078 8839 8003",
+ "email": "D.Smith51@edu.salford.ac.uk",
"absent": false
}
],
"schedule":[
{
"time": "1045",
- "title": "Kit is picked up by producer and directors arrive for briefing",
- "extra": ["Meet at kit store (1st floor)"]
+ "title": "Kit is picked up by producer",
+ "extra": ["Kit store (1st floor)"]
},
{
- "time": "1115",
- "title": "Crew call time",
+ "time": "1130",
+ "title": "Set-design call time",
"extra": [
"Meet in room 3.08 MediacityUK campus",
"Setup to be completed for 1200",
},
{
"time": "1200",
- "title": "Break until 1215",
- "extra": ["Crew call time (Room 3.08) for meeting with directors"]
+ "title": "Crew call time (Room 3.08) for meeting with producer",
+ "extra": []
},
{
- "time": "1215",
- "title": "Crew arrives back to studio",
- "extra": [
- "Final full overview of responsibilities",
- "Moving onto smaller run-throughs and trying new techniques"
- ]
+ "time": "1245",
+ "title": "Crew break until 1315",
+ "extra": []
},
{
- "time": "1315",
- "title": "All-hands break till 1330",
+ "time": "1300",
+ "title": "Cast call time to room 3.08 for briefing.",
"extra": []
},
{
- "time": "1330",
- "title": "Prep for, and record, 25 minute continuous run",
- "extra": ["30 minutes contingency"]
+ "time": "1315",
+ "title": "Practice begins",
+ "extra": [
+ "Final full overview of responsibilities",
+ "Moving onto smaller run-throughs and trying new techniques"
+ ]
},
{
- "time": "1430",
- "title": "De-brief and pass on notes to producer",
- "extra": []
+ "time": "1400",
+ "title": "Cast 15 minute break",
+ "extra": [
+ "Some crew may also be dissmissed for a break",
+ "Producer chat before run-through"
+ ]
},
{
- "time": "1500",
- "title": "De-rig",
+ "time": "1430",
+ "title": "Begin run-through",
"extra": ["All crew (other than directors and Anchor) dismissed as soon as finished."]
},
{
@app.route("/autocue")
def gfx_page():
- return Response(render_template("autocue.html"), mimetype="text/html")
+ request.method = "internal"
+ data = api()
+ return Response(render_template("autocue.html", data=data, item=static_data["items"][data["item_id"]]), mimetype="text/html")
+
+@app.route("/display")
+def display_page():
+ return Response(render_template("display.html"), mimetype="text/html")
@app.route("/sounds")
def sounds_page():
bottom: 0;
left: 0;
margin: 20px;
-}
-#clock {
- position: absolute;
- bottom: 0;
- right: 0;
- width: 250px;
- height: 250px;
- margin: 10px;
-}
-#arrow {
- transition: transform 1.5s;
}
</style>
<script>
// dynamically resize the UI
function resize() {
var slider = document.getElementById("slider");
- for (let id of ["note", "producer", "timer"]) {
+ for (let id of ["note", "producer"]) {
document.getElementById(id).style.fontSize = `${slider.value}px`;
}
}
// update the item information
const note = document.getElementById("note");
note.innerHTML = items[id].notes;
-
- // update the clock
- document.getElementById("arrow").style.transform = `rotate(${data.current_position}deg)`;
-
- // update the total items and the items sold already
- document.getElementById("left").innerHTML = Math.round(
- items[id].stock_count * (data.percent_remaining / 100)
- );
- document.getElementById("stock").innerHTML = items[id].stock_count;
-
- // update the timers
- for (let t = 1; t <= 6; t++) {
- document.getElementById(`timer_${t}`).innerHTML = makeTime(
- data[`end_timer_${t}`],
- data['timer_offset'],
- data[`bool_timer_${t}`]
- )
- }
})
});
}
</head>
<body onload="resize(); update();">
<input type="range" min="30" max="100" value="45" id="slider">
- <div style="font-size: 50px;" id="note">some test text!</div>
- <div style="font-size: 50px; color: yellow;" id="producer">Producer Notes!</div>
- <div id="timer">
- T1: <span style="background-color: red;" id="timer_1"></span> -
- T2: <span style="background-color: green;" id="timer_2"></span> -
- T3: <span style="background-color: blue;" id="timer_3"></span><br>
- T4: <span style="background-color: yellow;" id="timer_4"></span> -
- T5: <span style="background-color: magenta;" id="timer_5"></span> -
- T6: <span style="background-color: orange; margin-right: 40px;" id="timer_6"></span>
- Left: <span id="left"></span>/<span id="stock"></span>
- </div>
- <div id="clock">
- <img style="width: 100%; margin-right: -100%;" src="./static/assets/clock.svg"><img id="arrow" style="width: 100%;" src="./static/assets/arrow.svg">
- </div>
+ <div style="font-size: 50px;" id="note">{{item.notes|safe}}</div>
+ <div style="font-size: 50px; color: yellow;" id="producer">{{data.note}}</div>
</body>
</html>
\hline
\textbf{Crew} &&&\\
|% for person in info.crew %|
- \hline
- |~ person.name ~| & |~ person.role ~| & |~ person.phone ~| & |~ person.email ~| \\
+ |% if not person.absent %|
+ \hline
+ |~ person.name ~| & |~ person.role ~| & |~ person.phone ~| & |~ person.email ~| \\
+ |% endif %|
|% endfor %|
\hline
\hline
else {all.classList.remove("show");}
// set all timers to correct time and show/focus
- for (let t = 1; t <= 6; t++) {
+ for (let t = 1; t <= 3; t++) {
const timer = timers[t-1];
if (timer != null) {
<fieldset>
<legend>Timers</legend>
<p style='color: red;'>Note: time is approximate and may not be accurate to the GFX display.</p>
- {% for t in (1,2,3,4,5,6) %}
+ {% for t in (1,2,3) %}
<label>Timer {{t}}</label> <label style='color: blue;' id='{{t}}'>00:00</label>
<input type='radio' value='0' name='end_timer_{{t}}'><label>Reset</label>
<input type='radio' value='30' name='end_timer_{{t}}'><label>+00:30</label>