.
This commit is contained in:
@@ -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
@@ -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)
|
||||
|
||||
|
||||
@@ -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 = ()
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
Executable
+24
@@ -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 %}
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user