Revive this concept for 2023

(cherry picked from commit b3939d8426)

# Conflicts:
#	pipeline/source_assets/scss/dark_screen.scss
This commit is contained in:
2023-10-22 20:07:14 +01:00
parent 68d3605230
commit 20fefaac36
5 changed files with 176 additions and 116 deletions

View File

@@ -1,4 +1,4 @@
<div> <div id="event_status">
<span class="badge badge-{% if event.confirmed %}success{% elif event.cancelled %}dark{% else %}warning{% endif %}">Status: {{ event.get_status_display }}</span> <span class="badge badge-{% if event.confirmed %}success{% elif event.cancelled %}dark{% else %}warning{% endif %}">Status: {{ event.get_status_display }}</span>
{% if event.is_rig %} {% if event.is_rig %}
{% if event.sum_total > 0 %} {% if event.sum_total > 0 %}

View File

@@ -1,105 +1,166 @@
{% load namewithnotes from filters %} {% load namewithnotes from filters %}
{% load markdown_tags %} {% load markdown_tags %}
<div class="table-responsive"> <style>
<table class="table mb-0" id="event_table"> #event_table {
<thead> display: grid;
<tr> grid-template-columns: 0.5fr 1fr 4fr 1fr;
<th scope="col">#</th> column-gap: 1em;
<th scope="col">Dates & Times</th> }
<th scope="col">Event Details</th> .eventgrid {
<th scope="col">MIC</th> display: inherit;
</tr> grid-column: 1/5;
</thead> grid-template-columns: subgrid;
<tbody> padding: 1em;
{% for event in events %} }
<tr class="{% if event.cancelled %} .grid-header {
table-secondary border-bottom: 1px solid grey;
{% elif not event.is_rig %} border-top: 1px solid grey;
table-info }
{% elif not event.mic %} #event_status {
table-danger grid-column-start: 3;
{% elif event.confirmed and event.authorised %} }
{% if event.dry_hire or event.riskassessment %} #event_mic {
table-success grid-row-start: 1;
{% else %} grid-column-start: 4;
table-warning }
{% endif %} @media (max-width: 600px) {
{% else %} #event_table {
table-warning grid-template-columns: 1fr !important;
{% endif %}" {% if event.cancelled %}style="opacity: 50% !important;"{% endif %} id="event_row"> }
<!---Number--> .eventgrid {
<th scope="row" id="event_number">{{ event.display_id }}</th> grid-column: 1/1 !important;
<!--Dates & Times--> padding: 0.5em;
<td id="event_dates" style="text-align: justify;"> }
{% if not event.cancelled %} .grid-header {
{% if event.meet_at %} display: none;
<span class="text-nowrap">Meet: <strong>{{ event.meet_at|date:"D d/m/Y H:i" }}</strong></span> }
{% endif %} #event_dates {
{% if event.access_at %} order: 2;
<br><span class="text-nowrap">Access: <strong>{{ event.access_at|date:"D d/m/Y H:i" }}</strong></span> }
{% endif %} #event_status {
{% endif %} order: 3;
<span class="text-nowrap">Start: <strong>{{ event.start_date|date:"D d/m/Y" }} }
{% if event.has_start_time %} #event_mic {
{{ event.start_time|date:"H:i" }} grid-row-start: auto;
{% endif %}</strong> grid-column-start: 4;
</span> }
{% if event.end_date %} }
<br> @media (max-width: 900px) {
<span class="text-nowrap">End: {% if event.end_date != event.start_date %}<strong>{{ event.end_date|date:"D d/m/Y" }}{% endif %} #event_table {
{% if event.has_end_time %} grid-template-columns: 0.5fr 1fr;
{{ event.end_time|date:"H:i" }} column-gap: 0.5em;
{% endif %}</strong> }
</span> .eventgrid {
{% endif %} grid-column: 1/3;
</td> border: 1px solid grey;
<!---Details--> }
<td id="event_details" class="w-100"> #event_dates {
<h4> grid-row: 2;
<a href="{% url 'event_detail' event.pk %}"> grid-column: 1;
{{ event.name }} }
</a> #event_number {
{% if event.venue %} grid-row: 1;
<small>at {{ event.venue|namewithnotes:'venue_detail' }}</small> grid-column: 1;
{% endif %} }
{% if event.dry_hire %} #event_mic {
<span class="badge badge-secondary">Dry Hire</span> grid-column: 2;
{% endif %} }
</h4> }
{% if event.is_rig and not event.cancelled %} </style>
<h5> <div id="event_table">
<a href="{{ event.person.get_absolute_url }}">{{ event.person.name }}</a> <div class="eventgrid grid-header font-weight-bold">
{% if event.organisation %} <div id="event_number">#</div>
for <a href="{{ event.organisation.get_absolute_url }}">{{ event.organisation.name }}</a> <div id="event_dates">Dates & Times</div>
{% endif %} <div>Event Details</div>
</h5> <div id="event_mic">MIC</div>
{% endif %} </div>
{% if not event.cancelled and event.description %} {% for event in events %}
<p>{{ event.description|markdown }}</p> <div class="eventgrid {% if event.cancelled %}
{% endif %} table-secondary
{% include 'partials/event_status.html' %} {% elif not event.is_rig %}
</td> bg-info
<!---MIC--> {% elif not event.mic %}
<td id="event_mic" class="text-nowrap"> table-danger
{% if event.mic %} {% elif event.confirmed and event.authorised %}
{% if perms.RIGS.view_profile %} {% if event.dry_hire or event.riskassessment %}
<a href="{% url 'profile_detail' event.mic.pk %}" class="modal-href"> table-success
{% endif %} {% else %}
<img src="{{ event.mic.profile_picture }}" class="event-mic-photo"/> table-warning
{{ event.mic }} {% endif %}
{% if perms.RIGS.view_profile %} {% else %}
</a> table-warning
{% endif %} {% endif %}" {% if event.cancelled %}style="opacity: 50% !important;"{% endif %} id="event_row">
{% elif event.is_rig %} <!---Number-->
<span class="fas fa-user-slash"></span> <div class="font-weight-bold d-none d-sm-block" id="event_number">{{ event.display_id }}</div>
{% endif %} <!--Dates & Times-->
</td> <div id="event_dates" style="text-align: justify;">
</tr> {% if not event.cancelled %}
{% empty %} {% if event.meet_at %}
<tr class="bg-warning"> <span class="text-nowrap">Meet: <strong>{{ event.meet_at|date:"D d/m/Y H:i" }}</strong></span>
<td colspan="4">No events found</td> {% endif %}
</tr> {% if event.access_at %}
{% endfor %} <br><span class="text-nowrap">Access: <strong>{{ event.access_at|date:"D d/m/Y H:i" }}</strong></span>
</tbody> {% endif %}
</table> {% endif %}
<span class="text-nowrap">
Start: <strong>{{ event.start_date|date:"D d/m/Y" }}
{% if event.has_start_time %}
{{ event.start_time|date:"H:i" }}
{% endif %}</strong>
</span>
{% if event.end_date %}
<br>
<span class="text-nowrap">
End: {% if event.end_date != event.start_date %}<strong>{{ event.end_date|date:"D d/m/Y" }}{% endif %}
{% if event.has_end_time %}
{{ event.end_time|date:"H:i" }}
{% endif %}</strong>
</span>
{% endif %}
</div>
<!---Details-->
<div id="event_details" class="w-100">
<h4>
<a href="{% url 'event_detail' event.pk %}">
<span class="d-inline d-sm-none">{{ event }}</span><span class="d-none d-sm-inline">{{ event.name }}</span>
</a>
{% if event.dry_hire %}
<span class="badge badge-secondary">Dry Hire</span>
{% endif %}
<br>
{% if event.venue %}
<small>at {{ event.venue|namewithnotes:'venue_detail' }}</small>
{% endif %}
</h4>
{% if event.is_rig and not event.cancelled %}
<h5>
<a href="{{ event.person.get_absolute_url }}">{{ event.person.name }}</a>
{% if event.organisation %}
for <a href="{{ event.organisation.get_absolute_url }}">{{ event.organisation.name }}</a>
{% endif %}
</h5>
{% endif %}
{% if not event.cancelled and event.description %}
<p>{{ event.description|markdown }}</p>
{% endif %}
</div>
{% include 'partials/event_status.html' %}
<!---MIC-->
<div id="event_mic" class="text-nowrap">
<span class="d-md-none align-middle">MIC:</span>
{% if event.mic %}
{% if perms.RIGS.view_profile %}
<a href="{% url 'profile_detail' event.mic.pk %}" class="modal-href">
{% endif %}
<img src="{{ event.mic.profile_picture }}" class="event-mic-photo"/>
{{ event.mic }}
{% if perms.RIGS.view_profile %}
</a>
{% endif %}
{% elif event.is_rig %}
<span class="fas fa-exclamation"></span>
{% endif %}
</div>
</div>
{% endfor %}
</div> </div>

View File

@@ -3,8 +3,8 @@
{% block content %} {% block content %}
<div class="row align-items-center justify-content-between py-2 align-middle"> <div class="row align-items-center justify-content-between py-2 align-middle">
<div class="col-sm-12 col-md align-middle"> <div class="col-sm-12 col-md align-middle d-flex flex-wrap">
Key: <span class="table-success mr-1 px-2 rounded">Ready</span><span class="table-warning mr-1 px-2 rounded">Action Required</span><span class="table-danger mr-1 px-2 rounded">Needs MIC</span><span class="table-secondary mr-1 px-2 rounded">Cancelled</span><span class="table-info px-2 rounded">Non-Rig</span> Key: <span class="table-success mr-1 px-2 rounded">Ready</span><span class="table-warning mr-1 px-2 rounded text-nowrap">Action Required</span><span class="table-danger mr-1 px-2 rounded text-nowrap">Needs MIC</span><span class="table-secondary mr-1 px-2 rounded">Cancelled</span><span class="table-info px-2 rounded text-nowrap">Non-Rig</span>
</div> </div>
{% if perms.RIGS.add_event %} {% if perms.RIGS.add_event %}
<div class="col text-right"> <div class="col text-right">

View File

@@ -79,7 +79,7 @@ function browserSync(done) {
spawn('python', ['manage.py', 'runserver'], {stdio: 'inherit'}); spawn('python', ['manage.py', 'runserver'], {stdio: 'inherit'});
// TODO Wait for Django server to come up before browsersync, it seems inconsistent // TODO Wait for Django server to come up before browsersync, it seems inconsistent
browsersync.init({ browsersync.init({
notify: false, notify: true,
open: false, open: false,
port: 8001, port: 8001,
proxy: '127.0.0.1:8000' proxy: '127.0.0.1:8000'

View File

@@ -77,17 +77,8 @@
border-collapse: separate !important; border-collapse: separate !important;
border-spacing: 0; border-spacing: 0;
} }
#event_table tr th {
border-right: 0 !important;
}
#event_table tr td {
border-left: 0 !important;
}
#event_table tr td:not(:last-child) {
border-right: 0 !important;
}
@each $color, $value in $theme-colors { @each $color, $value in $theme-colors {
.table-#{$color} { table.table-#{$color} {
> td,th { > td,th {
border: 0.3em solid theme-color-level($color, -6) !important; border: 0.3em solid theme-color-level($color, -6) !important;
} }
@@ -96,6 +87,11 @@
background-color: #222 !important; background-color: #222 !important;
} }
} }
#event_row.table-#{$color} {
border: 0.3em solid theme-color-level($color, -6) !important;
background-color: #222 !important;
color: white !important;
}
} }
del { del {
color: black; color: black;
@@ -156,4 +152,7 @@
.modal { .modal {
overflow-y: auto !important; //Bootstrap Dark Theme overrides this to none for some insane reason so we need to change it back overflow-y: auto !important; //Bootstrap Dark Theme overrides this to none for some insane reason so we need to change it back
} }
.text-muted {
color: #c9c9c9 !important;
}
} }