Aktualizace všech komentářů jako funkce (a aktualizace, ne vytvoření)
This commit is contained in:
parent
f369110cd3
commit
0af99d4f3e
2 changed files with 25 additions and 15 deletions
|
@ -58,8 +58,8 @@
|
||||||
class Oprava {
|
class Oprava {
|
||||||
static update_or_create(oprava_data) {
|
static update_or_create(oprava_data) {
|
||||||
const id = oprava_data['id'];
|
const id = oprava_data['id'];
|
||||||
if (id in opravy) opravy[id].update(oprava_data);
|
if (id in opravy) return opravy[id].update(oprava_data);
|
||||||
else new Oprava(oprava_data);
|
else return new Oprava(oprava_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#komentare;
|
#komentare;
|
||||||
|
@ -97,6 +97,7 @@
|
||||||
update(oprava_data) {
|
update(oprava_data) {
|
||||||
{# this.oprava_data = oprava_data; #}
|
{# this.oprava_data = oprava_data; #}
|
||||||
this.set_status(oprava_data['status']);
|
this.set_status(oprava_data['status']);
|
||||||
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
set_status(status) {
|
set_status(status) {
|
||||||
|
|
|
@ -7,21 +7,30 @@
|
||||||
{% include "korektury/korekturovatko/__komentar.html" %}
|
{% include "korektury/korekturovatko/__komentar.html" %}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
fetch('{% url "korektury_api_opravy_a_komentare" pdf.id %}')
|
/**
|
||||||
|
*
|
||||||
|
* @param {RequestInit} data
|
||||||
|
* @param {Boolean} catchError
|
||||||
|
*/
|
||||||
|
function update_all(data={}, catchError=true) { // FIXME není mi jasné, zda v {} nemá být `cache: "no-store"`, aby prohlížeč necachoval GET.
|
||||||
|
fetch('{% url "korektury_api_opravy_a_komentare" pdf.id %}', data)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if (!response.ok) {alert('Něco se nepovedlo:' + response.statusText);}
|
if (!response.ok && catchError) {alert('Něco se nepovedlo:' + response.statusText);}
|
||||||
else response.json().then(data => {
|
else response.json().then(data => {
|
||||||
for (const oprava_data of data["context"]) {
|
for (const oprava_data of data["context"]) {
|
||||||
const oprava = new Oprava(oprava_data);
|
const oprava = Oprava.update_or_create(oprava_data);
|
||||||
for (const komentar_data of oprava_data["komentare"]) {
|
for (const komentar_data of oprava_data["komentare"]) {
|
||||||
new Komentar(komentar_data, oprava);
|
Komentar.update_or_create(komentar_data, oprava);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
place_comments();
|
place_comments();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(error => {alert('Něco se nepovedlo:' + error);});
|
.catch(error => {if (catchError) alert('Něco se nepovedlo:' + error);});
|
||||||
|
}
|
||||||
|
|
||||||
|
update_all();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<form id='CSRF_form' style='display: none'>{% csrf_token %}</form>
|
<form id='CSRF_form' style='display: none'>{% csrf_token %}</form>
|
||||||
|
|
Loading…
Reference in a new issue