Got library sort of working

This commit is contained in:
Tris
2021-09-04 10:29:22 +10:00
parent 7aedc6bd07
commit 598ee5ad7e
37 changed files with 994 additions and 209 deletions
+11 -4
View File
@@ -1,7 +1,7 @@
{% extends "interface/project_base.html" %}
{% block admin %}
<a href="{% url 'item_list_manage' project.pk %}"><i class="fas fa-list"></i><span class="smhide admin">Change items</span></a>
<a href="{% url 'item_list_manage' project.pk %}"><i class="fas fa-list"></i><span class="smhide admin"> Change items</span></a>
{% endblock %}
{% block page %}
@@ -23,15 +23,22 @@
<input id="part-preference" name="part" type="number" value="0" min="0" max="4" onchange="updateParts()" size="1"/><br/><br/>
<button type="submit" style="height: 32px;"><i class="fas fa-copy"></i> Get My Parts!</button>
</div>
<table style="max-width: 600px; margin: 10pt auto;" class="">
<table style="max-width: 600px; margin: 10pt auto;" class="zebra">
<thead>
<tr>
<th/>
<th>Piece</th>
<th>Part</th>
</tr>
</thead>
<tbody>
{% for item in object_list %}
<tr>
<td>{{ forloop.counter }})</td>
<td>{{ forloop.counter }}.</td>
<td>
<a href="{% url 'work_detail' item.work.pk %}">{{ item.work.name }}</a>
</td>
<td class="">
<td class="select-cell">
<input type="hidden" name="works" value="{{ item.work.pk }}"/>
<select name="instruments">
<option value='-'>None</option>
@@ -6,18 +6,19 @@
{% endblock %}
{% block page %}
<table style="max-width: 600px; margin: 10pt auto;" class="item-table">
<table style="max-width: 600px; margin: 10pt auto;" class="zebra">
<thead>
<tr>
<th>Item</th>
<th>Time</th>
<th/>
</tr>
</thead>
<tbody id="work-list">
{% for item in object_list %}
<tr data-pk="{{ item.pk }}" data-order="{{ forloop.counter }}">
<td>{{ item.work.name }}</td>
<td>{% firstof item.work.running_time '?' %}</td>
<td>{{ item.work.duration }}</td>
<td style="text-align: center;">
<i class="fas fa-arrow-up clickable" title="Move up" onclick="moveItem({{ item.pk }}, -1)"></i>
<i class="fas fa-arrow-down clickable" title="Move down" onclick="moveItem({{ item.pk }}, 1)"></i>
+1 -1
View File
@@ -2,5 +2,5 @@
<a href="{% url 'item_list' project=project.pk %}">My Music</a>
{% endif %}
{% if request.is_admin %}
<a href="{% url 'work_list' %}">Works</a>
<a href="{% url 'work_list' %}">Library</a>
{% endif %}
+71 -10
View File
@@ -6,23 +6,84 @@
{% endblock %}
{% block page %}
<h2><a href="{% url 'work_list' %}">Works</a> / {{ work.name }}</h2>
<h2>{{ work.name }} {% if work.running_time %}({{ work.duration }}){% endif %} <small>[{{ work.identifier }}]</small></h2>
<h4>{{ work.composer }}{% if work.version %} - {{ work.version }}{% endif %}</h4>
<p>{{ work.notes }}</p>
<h3>Parts</h3>
<ul>
{% for part in work.parts %}
<li><a href="{% url 'part_download' pk=part.pk filename=part.filename %}" target="part_{{ part.pk }}" rel="">{{ part.instrument }}</a></li>
{% endfor %}
</ul>
<a href="{% url 'work_partset' pk=work.pk %}"><i class="fas fa-print"></i> Print part set</a>
{% if work.collection %}
<p>Location: {{ work.collection }} [{{ work.collection_index }}]</p>
{% endif %}
<h3>Original Documents</h3>
{% if work.parent %}
<p>From <a href="{% url 'work_detail' work.parent.pk %}">{{ work.parent.name }} - {{ work.parent.composer }}</a></p>
{% endif %}
{% if work.related_works.count %}
<h3>Related</h3>
<ul>
{% for related in work.related_works.all %}
<li><a href="{% url 'work_detail' related.pk %}">{{ related.name }} - {{ related.composer }}</a></li>
{% endfor %}
</ul>
{% endif %}
<h4>Loans
{% if request.is_admin %}
<a href="{% url 'work_add_to_project' work.pk %}"><i class="fas fa-plus-circle"></i></a>
{% endif %}
</h4>
<table style="margin: 10px auto">
<thead>
<tr>
<th>Ensemble</th>
<th>Project</th>
<th>Checked Out</th>
<th>Due Back</th>
</tr>
</thead>
<tbody>
{% for item in work.current_loans %}
<tr>
<td><a href="{% url 'ensemble_detail' item.project.ensemble_id %}">{{ item.project.ensemble.name }}</a></td>
<td><a href="{% url 'project_detail' item.project.pk %}">{{ item.project.name }}</a></td>
<td>{{ item.checkout.date|date:"d/m/Y" }}</td>
<td>{{ item.due.date|date:"d/m/Y" }}</td>
</tr>
{% empty %}
<tr><td>No current loans</td></tr>
{% endfor %}
</tbody>
</table>
<h4>Printed Parts</h4>
<p>
{% for inst, c in work.physical_parts %}
<span class="badge">{{ inst }} ({{ c }})</span>
{% empty %}
No physical parts available
{% endfor %}
</p>
<h4>Digital Parts
<a href="{% url 'work_partset' pk=work.pk %}" title="Print part set"><i class="fas fa-print"></i></a>
</h4>
<p>
{% for part in work.digital_parts %}
<a class="badge" href="{% url 'part_download' pk=part.pk filename=part.filename %}"
target="part_{{ part.pk }}" rel="">{{ part.instrument }}</a>
{% empty %}
No digital parts available
{% endfor %}
</p>
<h4>Documents</h4>
<ul>
{% for doc in work.docs.all %}
<li>
<a href="{% url 'document_download' pk=doc.pk %}" target="_blank">{{ doc.upload.name|basename }}</a>
&nbsp;
[{{ doc.parts.count }} parts]
{% with parts=doc.parts.count %}
{% if parts %}[{{ parts }} parts]{% endif %}
{% endwith %}
{% if request.is_admin %}
<a href="{% url 'document_annotate' pk=doc.pk %}"><i class="fas fa-tags"></i></a>
{% endif %}
+43 -7
View File
@@ -1,25 +1,61 @@
{% extends "interface/project_base.html" %}
{% load url_tools %}
{% block admin %}
<a href="{% url 'work_add' %}"><i class="fas fa-plus-circle"></i> Add new</a>
{% endblock %}
{% block page %}
<h2>Works</h2>
<table style="max-width: 800px; margin: 10pt auto;">
<h2>Library for {{ view.ensemble }}</h2>
<div style="margin-bottom: 1em;">
<form method="GET">
<input name="filter" type="text" placeholder="Filter" value="{{ request.GET.filter }}"/>
<a href="?">Clear</a>
</form>
</div>
<table class="zebra wide">
<thead>
<tr>
<th>Work</th>
<th>Composer</th>
<th class="smhide">Edition</th>
<th class="smhide">Orchestration</th>
<th class="smhide">Collection</th>
<th>Copies</th>
</tr>
</thead>
<tbody>
{% for work in object_list %}
{% with work.docs.count as doc_count %}
{% with work.parts.count as part_count %}
<tr>
<td><a href="{% url 'work_detail' pk=work.pk %}">{{ work.name }}</a></td>
<td>{{ doc_count }} file{{ doc_count|pluralize }} with {{ part_count }} part{{ part_count|pluralize }}</td>
<td title="{{ work.composer }}">{{ work.composer|truncatewords:3 }}</td>
<td class="smhide" title="{{ work.edition }}">{{ work.edition|truncatewords:2 }}</td>
<td class="smhid" title="{{ work.orchestration }}">{{ work.orchestration|truncatewords:2}}</td>
<td class="smhide">{{ work.collection.name }}</td>
<td style="color: {{ work.is_available|yesno:'green,red' }};">{{ work.available }}</td>
</tr>
{% endwith %}
{% endwith %}
{% empty %}
<tr><td colspan="4">No works found</td></tr>
{% endfor %}
</tbody>
</table>
<div class="pagination" style="text-align: right;">
<span class="step-links">
{% if page_obj.has_previous %}
<a href="{% url_update page=1 %}" title="First">&laquo;</a>
<a href="{% url_update page=page_obj.previous_page_number %}" title="Previous">&lsaquo;</a>
{% endif %}
<span class="current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="{% url_update page=page_obj.next_page_number %}" title="Next">&rsaquo;</a>
<a href="{% url_update page=page_obj.paginator.num_pages %}" title="Last">&raquo;</a>
{% endif %}
</span>
</div>
{% endblock %}