Merge branch 'korekturovatko'

This commit is contained in:
Jonas Havelka 2025-02-19 17:08:13 +01:00
commit 2c53acc214
4 changed files with 45 additions and 8 deletions

View file

@ -6,4 +6,6 @@ urlpatterns = [
path('<int:pdf_id>/stav', org_required(views.korektury_stav_view), name='korektury_api_pdf_stav'), path('<int:pdf_id>/stav', org_required(views.korektury_stav_view), name='korektury_api_pdf_stav'),
path('oprava/stav', org_required(views.oprava_stav_view), name='korektury_api_oprava_stav'), path('oprava/stav', org_required(views.oprava_stav_view), name='korektury_api_oprava_stav'),
path('<int:pdf_id>/opravy_a_komentare', org_required(views.opravy_a_komentare_view), name='korektury_api_opravy_a_komentare'), path('<int:pdf_id>/opravy_a_komentare', org_required(views.opravy_a_komentare_view), name='korektury_api_opravy_a_komentare'),
path('oprava/smaz', org_required(views.oprava_smaz_view), name='korektury_api_oprava_smaz'),
path('komentar/smaz', org_required(views.komentar_smaz_view), name='korektury_api_komentar_smaz'),
] ]

View file

@ -1,4 +1,6 @@
from django.http import HttpResponseForbidden, JsonResponse from http import HTTPStatus
from django.http import HttpResponseForbidden, JsonResponse, HttpResponse
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.utils.html import linebreaks from django.utils.html import linebreaks
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
@ -34,6 +36,24 @@ def oprava_stav_view(request, **kwargs):
op.save() op.save()
return JsonResponse({'status': op.status}) return JsonResponse({'status': op.status})
def oprava_smaz_view(request, **kwargs):
q = request.POST
op_id_str = q.get('oprava_id')
assert op_id_str is not None
op_id = int(op_id_str)
oprava = get_object_or_404(Oprava, id=op_id)
oprava.delete()
return HttpResponse(status=HTTPStatus.NO_CONTENT)
def komentar_smaz_view(request, **kwargs):
q = request.POST
kom_id_str = q.get('komentar_id')
assert kom_id_str is not None
kom_id = int(kom_id_str)
komentar = get_object_or_404(Komentar, id=kom_id)
komentar.delete()
return HttpResponse(status=HTTPStatus.NO_CONTENT)
class KomentarSerializer(serializers.ModelSerializer): class KomentarSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Komentar model = Komentar

View file

@ -17,6 +17,8 @@
</div> </div>
<div class='komtext'>{# {{k.text|linebreaks}} #}</div> <div class='komtext'>{# {{k.text|linebreaks}} #}</div>
<hr>
</div> </div>
@ -84,7 +86,15 @@
#delete_comment() { #delete_comment() {
if (confirm('Opravdu smazat komentář?')) { if (confirm('Opravdu smazat komentář?')) {
throw {name : 'NotImplementedError', message: '(Webaři jsou) too lazy to implement'}; const data = new FormData(CSRF_FORM);
data.append('komentar_id', this.id);
fetch('{% url "korektury_api_komentar_smaz" %}', {method: 'POST', body: data})
.then(response => {
if (!response.ok) {alert('Něco se nepovedlo:' + response.statusText);}
this.htmlElement.remove();
place_comments();
})
.catch(error => {alert('Něco se nepovedlo:' + error);});
} }
} }
} }

View file

@ -16,7 +16,7 @@
</div> </div>
<div class='corr-body'> <div class='corr-body'>
{# {% for k in o.komentare %} {% include "korektury/korekturovatko/__komentar.html" %} <hr> {% endfor %} #} {# {% for k in o.komentare %} {% include "korektury/korekturovatko/__komentar.html" %} {% endfor %} #}
</div> </div>
<div class='corr-header'> <div class='corr-header'>
@ -125,10 +125,7 @@
this.pointer.dataset.opravastatus=status; this.pointer.dataset.opravastatus=status;
}; };
add_komentar_htmlElement(htmlElement) { add_komentar_htmlElement(htmlElement) { this.#komentare.appendChild(htmlElement); }
this.#komentare.appendChild(htmlElement);
this.#komentare.appendChild(document.createElement('hr'));
}
@ -161,7 +158,15 @@
#delete() { #delete() {
if (confirm('Opravdu smazat korekturu?')) { if (confirm('Opravdu smazat korekturu?')) {
throw {name : 'NotImplementedError', message: '(Webaři jsou) too lazy to implement'}; const data = new FormData(CSRF_FORM);
data.append('oprava_id', this.id);
fetch('{% url "korektury_api_oprava_smaz" %}', {method: 'POST', body: data})
.then(response => {
if (!response.ok) {alert('Něco se nepovedlo:' + response.statusText);}
comments[this.img_id].splice(comments[this.img_id].indexOf(this), 1);
place_comments();
})
.catch(error => {alert('Něco se nepovedlo:' + error);});
} }
} }
} }