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