Add an option to edit the author of cases/collections

This commit is contained in:
Ross
2024-02-27 21:57:15 +00:00
parent 444ff0e983
commit 3ab40304a3
6 changed files with 50 additions and 3 deletions
+11
View File
@@ -51,6 +51,8 @@ from autocomplete import widgets as htmx_widgets
import logging
from generic.forms import ExamAuthorFormMixin
class ConditionForm(ModelForm):
class Meta:
model = Condition
@@ -626,3 +628,12 @@ class ConditionAutocompleteForm(Form):
condition = ModelChoiceField(queryset=Condition.objects.all(), widget=htmx_widgets.Autocomplete(
name="conditions", options=dict(model=Condition)
))
class CaseCollectionAuthorForm(ExamAuthorFormMixin):
class Meta(ExamAuthorFormMixin.Meta):
model = CaseCollection
class CaseAuthorForm(ExamAuthorFormMixin):
class Meta(ExamAuthorFormMixin.Meta):
model = Case
+1
View File
@@ -12,6 +12,7 @@
<a href="#"
onclick="return window.create_popup_window('{% url 'feedback_create' question_type='atlas' pk=case.pk %}')"> Add
Note</a>
<a href="{% url 'atlas:case_authors' case.pk %}" title="Edit Authors">Authors</a>
{% if request.user.is_superuser %}
<a href="{% url 'admin:atlas_case_change' case.id %}" title="Edit the Case using the admin interface">Admin Edit</a>
{% endif %}
@@ -4,11 +4,13 @@
<a href="{% url 'atlas:collection_mark_overview' collection.pk %}">Mark</a> /
<a href="{% url 'atlas:collection_scores_cid' collection.pk %}">Scores</a> /
<a href="{% url 'atlas:exam_cids' collection.pk %}">Candidates</a> /
<a href="{% url 'atlas:atlas_create_exam' pk=collection.pk %}">Add New Case</a>
<a href="{% url 'atlas:atlas_create_exam' pk=collection.pk %}">Add New Case</a> /
<a href="{% url 'atlas:collection_authors' collection.pk %}" title="Edit Authors">Authors</a>
<div class="floating-header">
<a href="{% url 'atlas:exam_update' collection.id %}" title="Edit the Collection">Edit</a>
\ <a href="{% url 'atlas:exam_deleted' collection.id %}" title="Delete the Collection">Delete</a>
\ <a href="{% url 'atlas:exam_clone' collection.id %}" title="Clone the Collection">Clone</a>
{% if request.user.is_superuser %}
\ <a href="{% url 'admin:atlas_casecollection_change' collection.id %}" title="Edit the Collection using the admin interface">Admin Edit</a>
{% endif %}
+2
View File
@@ -68,6 +68,7 @@ urlpatterns = [
views.collection_take_start,
name="collection_take_start",
),
path("collection/<int:pk>/authors", views.CaseCollectionAuthorUpdate.as_view(), name="collection_authors"),
path(
"collection/<int:exam_id>/cids",
views.GenericExamViews.exam_cids,
@@ -153,6 +154,7 @@ urlpatterns = [
views.collection_dicom_json,
name="collection_dicom_json",
),
path("case/<int:pk>/authors", views.CaseAuthorUpdate.as_view(), name="case_authors"),
path(
"case/<int:pk>/dicom_json",
views.case_dicom_json,
+14 -2
View File
@@ -34,6 +34,8 @@ from generic.models import CidUser, CidUserExam
from .forms import (
AddCollectionToCaseForm,
CaseAuthorForm,
CaseCollectionAuthorForm,
CaseCollectionCaseFormSet,
CaseCollectionForm,
CaseForm,
@@ -124,7 +126,7 @@ import logging
from copy import deepcopy
from django.forms.models import model_to_dict
from generic.views import ExamCloneMixin, ExamViews, SeriesImagesZipViewBase
from generic.views import AuthorRequiredMixin, ExamCloneMixin, ExamViews, SeriesImagesZipViewBase
from reversion.views import RevisionMixin
import reversion
@@ -2239,4 +2241,14 @@ def combine_series(request):
series.delete()
return HttpResponse(f"Series {series_ids} combines")
#return HttpResponse("Fail")
#return HttpResponse("Fail")
class CaseCollectionAuthorUpdate(RevisionMixin, AuthorRequiredMixin, UpdateView):
model = CaseCollection
form_class = CaseCollectionAuthorForm
template_name = "author_form.html"
class CaseAuthorUpdate(RevisionMixin, AuthorRequiredMixin, UpdateView):
model = Case
form_class = CaseAuthorForm
template_name = "author_form.html"
+19
View File
@@ -0,0 +1,19 @@
{% extends "base.html" %}
{% block js %}
{{ form.media }}
{% endblock %}
{% block content %}
<h2>Edit Authors</h2>
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
<a href="{{ object.get_absolute_url }}" class="btn btn-default">Cancel</a>
</form>
{% endblock %}