.
This commit is contained in:
@@ -34,6 +34,18 @@ class SeriesFilter(django_filters.FilterSet):
|
|||||||
model = Series
|
model = Series
|
||||||
fields = ("modality","case", "examination", "author")
|
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):
|
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():
|
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(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)
|
synonym = models.ManyToManyField("self", blank=True)
|
||||||
|
|
||||||
primary = models.BooleanField(default="True")
|
primary = models.BooleanField(default="True"Series)
|
||||||
|
|
||||||
subspecialty = models.ManyToManyField("subspecialty", blank=True)
|
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>""",
|
"""<a href="#" onclick="return window.create_popup_window('/atlas/series/{}', 'Series')" >Popup</a>""",
|
||||||
record.pk,
|
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 %}
|
{% if request.user.is_authenticated %}
|
||||||
<a href="{% url 'atlas:case_view' %}">Cases</a> /
|
<a href="{% url 'atlas:case_view' %}">Cases</a> /
|
||||||
<a href="{% url 'atlas:series_view' %}">Series</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: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>
|
<a href="{% url 'atlas:series_create' %}" title="Create a new image series">Create Series</a>
|
||||||
{% endif %}
|
{% 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/<int:pk>/", views.author_detail, name="author_detail"),
|
||||||
path("author/", views.author_list, name="author_list"),
|
path("author/", views.author_list, name="author_list"),
|
||||||
path("cases/", views.CaseView.as_view(), name="case_view"),
|
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/", views.SeriesView.as_view(), name="series_view"),
|
||||||
path("series/<int:pk>", views.series_detail, name="series_detail"),
|
path("series/<int:pk>", views.series_detail, name="series_detail"),
|
||||||
path("series/<int:pk>/<int:finding_pk>", views.series_detail, name="series_edit_finding"),
|
path("series/<int:pk>/<int:finding_pk>", views.series_detail, name="series_edit_finding"),
|
||||||
|
|||||||
+23
-2
@@ -45,8 +45,8 @@ from .models import (
|
|||||||
SeriesFinding,
|
SeriesFinding,
|
||||||
SeriesImage,
|
SeriesImage,
|
||||||
)
|
)
|
||||||
from .tables import CaseTable, SeriesTable
|
from .tables import CaseTable, CoditionTable, SeriesTable
|
||||||
from .filters import AtlasFilter, SeriesFilter
|
from .filters import AtlasFilter, ConditionFilter, SeriesFilter
|
||||||
|
|
||||||
from django_tables2 import SingleTableView, SingleTableMixin
|
from django_tables2 import SingleTableView, SingleTableMixin
|
||||||
from django_filters.views import FilterView
|
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
|
@login_required
|
||||||
@user_is_author_or_atlas_checker
|
@user_is_author_or_atlas_checker
|
||||||
@@ -490,6 +504,13 @@ class SeriesView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
|||||||
|
|
||||||
filterset_class = SeriesFilter
|
filterset_class = SeriesFilter
|
||||||
|
|
||||||
|
class ConditionView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
||||||
|
model = Series
|
||||||
|
table_class = CoditionTable
|
||||||
|
template_name = "atlas/view.html"
|
||||||
|
|
||||||
|
filterset_class = ConditionFilter
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@user_is_author_or_atlas_series_checker
|
@user_is_author_or_atlas_series_checker
|
||||||
|
|||||||
Reference in New Issue
Block a user