This commit is contained in:
Ross
2021-02-17 21:49:25 +00:00
parent d521cee235
commit 326c155c24
17 changed files with 68 additions and 4 deletions
+7
View File
@@ -57,6 +57,9 @@ class LongTable(tables.Table):
clone = tables.LinkColumn(
"longs:long_clone", text="Clone", args=[A("pk")], orderable=False
)
delete = tables.LinkColumn(
"longs:long_delete", text="Delete", args=[A("pk")], orderable=False
)
series = LongImageColumn("Images", orderable=False)
#series = tables.ManyToManyColumn(verbose_name="Exams")
@@ -93,6 +96,10 @@ class LongSeriesTable(tables.Table):
images = LongSeriesImageColumn("Images", orderable=False)
delete = tables.LinkColumn(
"longs:long_series_delete", text="Delete", args=[A("pk")], orderable=False
)
class Meta:
model = LongSeries
template_name = "django_tables2/bootstrap4.html"
@@ -0,0 +1 @@
{% include 'confirm_delete.html' %}
@@ -0,0 +1 @@
{% include 'confirm_delete.html' %}
@@ -18,6 +18,7 @@
<a href="{% url 'longs:long_update' pk=question.pk %}" title="Edit the Long">Edit</a>
<a href="{% url 'longs:long_clone' pk=question.pk %}" title="Clone the Long (duplicate everything but the images)">Clone</a>
<a href="{% url 'longs:long_delete' pk=question.pk %}" title="Delete the Rapid">Delete</a>
<a href="{% url 'longs:long_add_note' pk=question.pk %}"> Add Note</a>
{% if request.user.is_superuser %}
<a href="{% url 'admin:longs_long_change' question.id %}" title="Edit the Long using the admin interface">Admin Edit</a>
+2
View File
@@ -11,6 +11,7 @@ urlpatterns = [
path("question/", views.LongView.as_view(), name="long_view"),
path("series/", views.LongSeriesView.as_view(), name="long_series_view"),
path("series/<int:pk>", views.long_series_detail, name="long_series_detail"),
path("series/<int:pk>/delete", views.LongSeriesDelete.as_view(), name="long_series_delete"),
# path("unchecked/", views.unchecked_list, name="unchecked_list"),
# path("verified/<int:pk>/", views.verified_detail, name="verified_detail"),
path("question/<int:pk>/", views.long_detail, name="long_detail"),
@@ -19,6 +20,7 @@ urlpatterns = [
# path("verified/", views.verified, name="verified"),
# path("all_questions/", views.all_questions, name="all_questions"),
path("question/<int:pk>/scrap", views.long_scrap, name="long_scrap"),
path("question/<int:pk>/delete", views.LongDelete.as_view(), name="long_delete"),
path("exam/<int:pk>/<int:sk>/<int:tk>/mark", views.mark_answer, name="mark_answer"),
path("exam/<int:pk>/<int:sk>/mark", views.mark, name="mark"),
path("exam/<int:pk>/mark", views.LongExamViews.mark_overview, name="mark_overview"),
+13 -2
View File
@@ -63,7 +63,7 @@ logger = logging.getLogger(__name__)
class AuthorOrCheckerRequiredMixin(object):
def get_object(self, *args, **kwargs):
obj = super(UpdateView, self).get_object(*args, **kwargs)
obj = super().get_object(*args, **kwargs)
if self.request.user.groups.filter(name="long_checker").exists() or self.request.user.is_superuser:
return obj
if self.request.user not in obj.get_author_objects():
@@ -71,7 +71,6 @@ class AuthorOrCheckerRequiredMixin(object):
return obj
# def index(request):
# other_longs = Long.objects.exclude(author=request.user.pk)
# user_longs = Long.objects.filter(author=request.user.pk)
@@ -228,6 +227,18 @@ class AddNote(LoginRequiredMixin, CreateView):
# form.instance.author.add(self.request.user.id)
#@login_required
#@user_is_author_or_long_checker
#def long_delete(request, pk):
#q = get_object_or_404(Long, pk=pk)
#q.delete()
class LongDelete(AuthorOrCheckerRequiredMixin, DeleteView):
model = Long
success_url = reverse_lazy("longs:long_view")
class LongSeriesDelete(AuthorOrCheckerRequiredMixin, DeleteView):
model = LongSeries
success_url = reverse_lazy("longs:long_series_view")
@login_required
def long_clone(request, pk):