.
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
{% extends 'oef/base.html' %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h2>Formats</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
{% for dupe in dupes %}
|
||||||
|
{{dupe}}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
|
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<h2>Formats</h2>
|
<h2>Formats</h2>
|
||||||
<a href="{% url 'oef:format_create' %}">Create a new format</a>
|
<a href="{% url 'oef:format_create' %}">Create a new format</a>
|
||||||
|
<a href="{% url 'oef:formats_dupe_view' %}">View dupes</a>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
{% for format in formats %}
|
{% for format in formats %}
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ urlpatterns = [
|
|||||||
path(
|
path(
|
||||||
"formats", views.formats_view, name="formats_view"
|
"formats", views.formats_view, name="formats_view"
|
||||||
),
|
),
|
||||||
|
path(
|
||||||
|
"formats/dupes", views.formats_dupe_view, name="formats_dupe_view"
|
||||||
|
),
|
||||||
path(
|
path(
|
||||||
"formats/create", views.FormatsCreateView.as_view(), name="format_create"
|
"formats/create", views.FormatsCreateView.as_view(), name="format_create"
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from collections import defaultdict
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from difflib import HtmlDiff, SequenceMatcher
|
from difflib import HtmlDiff, SequenceMatcher
|
||||||
from django import forms
|
from django import forms
|
||||||
@@ -141,6 +142,23 @@ def formats_view(request):
|
|||||||
formats = Formats.objects.all()
|
formats = Formats.objects.all()
|
||||||
return render(request, "oef/formats_view.html", {"formats": formats})
|
return render(request, "oef/formats_view.html", {"formats": formats})
|
||||||
|
|
||||||
|
def formats_dupe_view(request):
|
||||||
|
formats = Formats.objects.all()
|
||||||
|
|
||||||
|
format_dict = defaultdict(list)
|
||||||
|
|
||||||
|
dupes = []
|
||||||
|
|
||||||
|
for format in formats:
|
||||||
|
if format.format in format_dict:
|
||||||
|
dupes.append(format)
|
||||||
|
format_dict[format.format].append(format)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return render(request, "oef/formats_dupe_view.html", {"dupes": dupes, "format_dict": format_dict})
|
||||||
|
|
||||||
|
|
||||||
@user_passes_test(lambda u: u.is_superuser)
|
@user_passes_test(lambda u: u.is_superuser)
|
||||||
def formats_delete(request, pk):
|
def formats_delete(request, pk):
|
||||||
|
|||||||
Reference in New Issue
Block a user