Add created_date and modified_date fields to Resource model; update resource detail and list templates for improved display
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
# Generated by Django 5.2.7 on 2025-11-14 21:02
|
||||||
|
|
||||||
|
import django.utils.timezone
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('atlas', '0082_resource_sites_resource_subspecialty'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='resource',
|
||||||
|
name='created_date',
|
||||||
|
field=models.DateTimeField(default=django.utils.timezone.now),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='resource',
|
||||||
|
name='modified_date',
|
||||||
|
field=models.DateTimeField(auto_now=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -5,32 +5,100 @@
|
|||||||
{% include "atlas/resource_link_header.html" %}
|
{% include "atlas/resource_link_header.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{resource}}
|
<div class="container mt-3">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<h5 class="mb-0">{{ resource.name }}</h5>
|
||||||
|
<small class="text-muted">by {{ resource.get_authors|default:"Unknown" }}</small>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{% if resource.description %}
|
||||||
|
<p class="card-text">{{ resource.description|linebreaksbr }}</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
Name: {{resource.name}}<br>
|
<dl class="row">
|
||||||
Description: {{resource.description}}<br>
|
{% if resource.url %}
|
||||||
URL: {{resource.url}}<br>
|
<dt class="col-sm-3">URL</dt>
|
||||||
file: {{resource.file}}<br>
|
<dd class="col-sm-9"><a href="{{ resource.url }}" target="_blank" rel="noopener">{{ resource.url }}</a></dd>
|
||||||
author: {{resource.get_authors}}<br>
|
{% endif %}
|
||||||
|
|
||||||
{{resource.case}}
|
{% if resource.file %}
|
||||||
|
<dt class="col-sm-3">File</dt>
|
||||||
|
<dd class="col-sm-9">
|
||||||
|
<a href="{{ resource.file.url }}" target="_blank" rel="noopener">Download</a>
|
||||||
|
{% if resource.file.name %}
|
||||||
|
<small class="text-muted ms-2">({{ resource.file.name|truncatechars:40 }})</small>
|
||||||
|
{% endif %}
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div>
|
<dt class="col-sm-3">Source</dt>
|
||||||
<a href="{% url 'atlas:resource_view' resource.pk %}" target="_blank">View Resource</a>
|
<dd class="col-sm-9">{{ resource.get_display }}</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<div class="mt-3">
|
||||||
|
<a class="btn btn-sm btn-outline-primary" href="{% url 'atlas:resource_view' resource.pk %}" target="_blank">Open resource page</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h6 class="mb-0">Used in cases</h6>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{% if resource.case_set.all %}
|
||||||
|
<ul class="list-unstyled mb-0">
|
||||||
|
{% for case in resource.case_set.all %}
|
||||||
|
<li><a href="{% url 'atlas:case_detail' case.id %}">{{ case.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
<p class="mb-0 text-muted">This resource is not used in any cases.</p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<aside class="card mb-3">
|
||||||
|
<div class="card-body">
|
||||||
|
<h6 class="card-title">Details</h6>
|
||||||
|
<ul class="list-unstyled small mb-0">
|
||||||
|
<li><strong>Author:</strong> {{ resource.get_authors|default:"-" }}</li>
|
||||||
|
<li><strong>Sites:</strong>
|
||||||
|
{% if resource.sites.all %}
|
||||||
|
{% for s in resource.sites.all %}
|
||||||
|
<div><a href="{% url 'generic:site_detail' s.pk %}">{{ s.name }}</a></div>
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
-
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
<li class="mt-2"><strong>Subspecialty:</strong>
|
||||||
|
{% if resource.subspecialty.all %}
|
||||||
|
{% for sp in resource.subspecialty.all %}
|
||||||
|
<div>{{ sp.name }}</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
-
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
<li class="mt-2"><strong>Created:</strong> {{ resource.created_date|date:"Y-m-d H:i" }}</li>
|
||||||
|
<li><strong>Updated:</strong> {{ resource.modified_date|date:"Y-m-d H:i" }}</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
<div class="d-grid gap-2">
|
||||||
|
<a class="btn btn-primary" href="{% url 'atlas:resource_update' resource.pk %}">Edit</a>
|
||||||
|
<a class="btn btn-outline-danger" href="{% url 'atlas:resource_delete' resource.pk %}">Delete</a>
|
||||||
|
<a class="btn btn-outline-secondary" href="{% url 'atlas:resource_view' %}">Back to resources</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if resource.case_set.all %}
|
|
||||||
<h3>Cases</h3>
|
|
||||||
This resource is used in the following cases:
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
{% for case in resource.case_set.all %}
|
|
||||||
<li><a href="{% url 'atlas:case_detail' case.id %}">{{case.title}}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% else %}
|
|
||||||
<p>This resource is not used in any cases.</p>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{% extends 'atlas/base.html' %}
|
{% extends 'atlas/base.html' %}
|
||||||
{% load render_table from django_tables2 %}
|
{% load render_table from django_tables2 %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<a href="{% url 'atlas:resource_create' %}">Create a new resource</a>
|
|
||||||
|
|
||||||
<h2>Resources</h2>
|
<h2>Resources</h2>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user