This commit is contained in:
Ross
2021-12-05 15:13:13 +00:00
parent cba0e75b8b
commit b4860c8ae1
7 changed files with 84 additions and 3 deletions
+12
View File
@@ -34,6 +34,18 @@ class SeriesFilter(django_filters.FilterSet):
model = Series
fields = ("modality","case", "examination", "author")
def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None):
if not request.user.groups.filter(name="atlas_checker").exists():
#queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id)
queryset = queryset.filter(author__id=request.user.id)
super(SeriesFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, request=request)
pass
class ConditionFilter(django_filters.FilterSet):
class Meta:
model = Series
fields = ("name", "primary", "synonym")
def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None, request=None):
if not request.user.groups.filter(name="atlas_checker").exists():
#queryset = queryset.filter(open_access=True) | queryset.filter(author__id=request.user.id)
+1 -1
View File
@@ -101,7 +101,7 @@ class Condition(SynMixin, models.Model):
synonym = models.ManyToManyField("self", blank=True)
primary = models.BooleanField(default="True")
primary = models.BooleanField(default="True"Series)
subspecialty = models.ManyToManyField("subspecialty", blank=True)
+20
View File
@@ -131,3 +131,23 @@ class SeriesTable(tables.Table):
"""<a href="#" onclick="return window.create_popup_window('/atlas/series/{}', 'Series')" >Popup</a>""",
record.pk,
)
class CoditionTable(tables.Table):
edit = tables.LinkColumn(
"atlas:series_update", text="Edit", args=[A("pk")], orderable=False
)
view = tables.LinkColumn(
"atlas:series_detail", text="View", args=[A("pk")], orderable=False
)
delete = tables.LinkColumn(
"atlas:series_delete", text="Delete", args=[A("pk")], orderable=False
)
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
synonym = tables.ManyToManyColumn(verbose_name="Synonyms")
class Meta:
model = Series
template_name = "django_tables2/bootstrap4.html"
fields = ("name", "primary", "subspecialty")
sequence = ()
+1
View File
@@ -19,6 +19,7 @@ Atlas:
{% if request.user.is_authenticated %}
<a href="{% url 'atlas:case_view' %}">Cases</a> /
<a href="{% url 'atlas:series_view' %}">Series</a> /
<a href="{% url 'atlas:condition_view' %}">Conditions</a> /
<a href="{% url 'atlas:create' %}" title="Create a new atlas case">Create Case</a> /
<a href="{% url 'atlas:series_create' %}" title="Create a new image series">Create Series</a>
{% endif %}
+24
View File
@@ -0,0 +1,24 @@
{% extends 'atlas/base.html' %}
{% block content %}
<div class="floating-header">
{% comment %} <a href="{% url 'atlas:case_update' pk=case.pk %}" title="Edit the Condition">Edit</a>
<a href="{% url 'atlas:case_delete' pk=case.pk %}" title="Delete the Case">Delete</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 %} {% endcomment %}
</div>
<div>
{{condition.name}}<br/>
{{condition.primary}}<br/>
{{condition.synonym}}<br/>
</div>
{% endblock %}
{% block js %}
{% endblock %}
+3
View File
@@ -10,6 +10,9 @@ urlpatterns = [
path("author/<int:pk>/", views.author_detail, name="author_detail"),
path("author/", views.author_list, name="author_list"),
path("cases/", views.CaseView.as_view(), name="case_view"),
path("condition/", views.ConditionView.as_view(), name="condition_view"),
path("condition/", views.condition_detail, name="condition_detail"),
path("series/<int:pk>", views.series_detail, name="series_detail"),
path("series/", views.SeriesView.as_view(), name="series_view"),
path("series/<int:pk>", views.series_detail, name="series_detail"),
path("series/<int:pk>/<int:finding_pk>", views.series_detail, name="series_edit_finding"),
+23 -2
View File
@@ -45,8 +45,8 @@ from .models import (
SeriesFinding,
SeriesImage,
)
from .tables import CaseTable, SeriesTable
from .filters import AtlasFilter, SeriesFilter
from .tables import CaseTable, CoditionTable, SeriesTable
from .filters import AtlasFilter, ConditionFilter, SeriesFilter
from django_tables2 import SingleTableView, SingleTableMixin
from django_filters.views import FilterView
@@ -138,6 +138,20 @@ def series_detail(request, pk, finding_pk=None):
},
)
@login_required
@user_is_author_or_atlas_series_checker_or_atlas_marker
def condition_detail(request, pk, finding_pk=None):
condition = get_object_or_404(Series, pk=pk)
# logging.debug(atlas.subspecialty.first().name.all())
return render(
request,
"atlas/condition_detail.html",
{
"condition": condition,
},
)
@login_required
@user_is_author_or_atlas_checker
@@ -490,6 +504,13 @@ class SeriesView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = SeriesFilter
class ConditionView(LoginRequiredMixin, SingleTableMixin, FilterView):
model = Series
table_class = CoditionTable
template_name = "atlas/view.html"
filterset_class = ConditionFilter
@login_required
@user_is_author_or_atlas_series_checker