odevzdavatko: odesílání emailu řešiteli při změně zpětné vazby #83
							
								
								
									
										645
									
								
								data/groups.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,645 @@ | |||
| [ | ||||
| 	{ | ||||
| 		"fields": { | ||||
| 			"name": "org", | ||||
| 			"permissions": [ | ||||
| 				[ | ||||
| 					"org", | ||||
| 					"auth", | ||||
| 					"user" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_flatpage", | ||||
| 					"flatpages", | ||||
| 					"flatpage" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_flatpage", | ||||
| 					"flatpages", | ||||
| 					"flatpage" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_flatpage", | ||||
| 					"flatpages", | ||||
| 					"flatpage" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_flatpage", | ||||
| 					"flatpages", | ||||
| 					"flatpage" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_galerie", | ||||
| 					"galerie", | ||||
| 					"galerie" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_galerie", | ||||
| 					"galerie", | ||||
| 					"galerie" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_galerie", | ||||
| 					"galerie", | ||||
| 					"galerie" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_galerie", | ||||
| 					"galerie", | ||||
| 					"galerie" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_obrazek", | ||||
| 					"galerie", | ||||
| 					"obrazek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_obrazek", | ||||
| 					"galerie", | ||||
| 					"obrazek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_obrazek", | ||||
| 					"galerie", | ||||
| 					"obrazek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_obrazek", | ||||
| 					"galerie", | ||||
| 					"obrazek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_fotkaheader", | ||||
| 					"header_fotky", | ||||
| 					"fotkaheader" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_fotkaheader", | ||||
| 					"header_fotky", | ||||
| 					"fotkaheader" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_fotkaheader", | ||||
| 					"header_fotky", | ||||
| 					"fotkaheader" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_fotkaurlvazba", | ||||
| 					"header_fotky", | ||||
| 					"fotkaurlvazba" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_fotkaurlvazba", | ||||
| 					"header_fotky", | ||||
| 					"fotkaurlvazba" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_fotkaurlvazba", | ||||
| 					"header_fotky", | ||||
| 					"fotkaurlvazba" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_komentar", | ||||
| 					"korektury", | ||||
| 					"komentar" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_komentar", | ||||
| 					"korektury", | ||||
| 					"komentar" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_komentar", | ||||
| 					"korektury", | ||||
| 					"komentar" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_komentar", | ||||
| 					"korektury", | ||||
| 					"komentar" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_korekturovanepdf", | ||||
| 					"korektury", | ||||
| 					"korekturovanepdf" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_korekturovanepdf", | ||||
| 					"korektury", | ||||
| 					"korekturovanepdf" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_korekturovanepdf", | ||||
| 					"korektury", | ||||
| 					"korekturovanepdf" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_korekturovanepdf", | ||||
| 					"korektury", | ||||
| 					"korekturovanepdf" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_oprava", | ||||
| 					"korektury", | ||||
| 					"oprava" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_oprava", | ||||
| 					"korektury", | ||||
| 					"oprava" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_oprava", | ||||
| 					"korektury", | ||||
| 					"oprava" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_oprava", | ||||
| 					"korektury", | ||||
| 					"oprava" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_novinky", | ||||
| 					"novinky", | ||||
| 					"novinky" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_novinky", | ||||
| 					"novinky", | ||||
| 					"novinky" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_novinky", | ||||
| 					"novinky", | ||||
| 					"novinky" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_novinky", | ||||
| 					"novinky", | ||||
| 					"novinky" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_organizator", | ||||
| 					"personalni", | ||||
| 					"organizator" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_organizator", | ||||
| 					"personalni", | ||||
| 					"organizator" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_osoba", | ||||
| 					"personalni", | ||||
| 					"osoba" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_osoba", | ||||
| 					"personalni", | ||||
| 					"osoba" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_prijemce", | ||||
| 					"personalni", | ||||
| 					"prijemce" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_prijemce", | ||||
| 					"personalni", | ||||
| 					"prijemce" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_prijemce", | ||||
| 					"personalni", | ||||
| 					"prijemce" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_prijemce", | ||||
| 					"personalni", | ||||
| 					"prijemce" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_resitel", | ||||
| 					"personalni", | ||||
| 					"resitel" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_resitel", | ||||
| 					"personalni", | ||||
| 					"resitel" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_skola", | ||||
| 					"personalni", | ||||
| 					"skola" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_skola", | ||||
| 					"personalni", | ||||
| 					"skola" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_skola", | ||||
| 					"personalni", | ||||
| 					"skola" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_skola", | ||||
| 					"personalni", | ||||
| 					"skola" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_hlasovani", | ||||
| 					"prednasky", | ||||
| 					"hlasovani" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_hlasovani", | ||||
| 					"prednasky", | ||||
| 					"hlasovani" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_hlasovani", | ||||
| 					"prednasky", | ||||
| 					"hlasovani" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_hlasovani", | ||||
| 					"prednasky", | ||||
| 					"hlasovani" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_prednaska", | ||||
| 					"prednasky", | ||||
| 					"prednaska" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_prednaska", | ||||
| 					"prednasky", | ||||
| 					"prednaska" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_prednaska", | ||||
| 					"prednasky", | ||||
| 					"prednaska" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_prednaska", | ||||
| 					"prednasky", | ||||
| 					"prednaska" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_seznam", | ||||
| 					"prednasky", | ||||
| 					"seznam" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_seznam", | ||||
| 					"prednasky", | ||||
| 					"seznam" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_seznam", | ||||
| 					"prednasky", | ||||
| 					"seznam" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_seznam", | ||||
| 					"prednasky", | ||||
| 					"seznam" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_konfera", | ||||
| 					"soustredeni", | ||||
| 					"konfera" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_konfera", | ||||
| 					"soustredeni", | ||||
| 					"konfera" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_konfera", | ||||
| 					"soustredeni", | ||||
| 					"konfera" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_konfera", | ||||
| 					"soustredeni", | ||||
| 					"konfera" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_konfery_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"konfery_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_konfery_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"konfery_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_konfery_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"konfery_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_konfery_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"konfery_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_soustredeni", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_soustredeni", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_soustredeni", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_soustredeni", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_soustredeni_organizatori", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_organizatori" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_soustredeni_organizatori", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_organizatori" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_soustredeni_organizatori", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_organizatori" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_soustredeni_organizatori", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_organizatori" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_soustredeni_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_soustredeni_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_soustredeni_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_soustredeni_ucastnici", | ||||
| 					"soustredeni", | ||||
| 					"soustredeni_ucastnici" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_tag", | ||||
| 					"taggit", | ||||
| 					"tag" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_tag", | ||||
| 					"taggit", | ||||
| 					"tag" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_tag", | ||||
| 					"taggit", | ||||
| 					"tag" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_tag", | ||||
| 					"taggit", | ||||
| 					"tag" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_taggeditem", | ||||
| 					"taggit", | ||||
| 					"taggeditem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_taggeditem", | ||||
| 					"taggit", | ||||
| 					"taggeditem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_taggeditem", | ||||
| 					"taggit", | ||||
| 					"taggeditem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_taggeditem", | ||||
| 					"taggit", | ||||
| 					"taggeditem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_cislo", | ||||
| 					"tvorba", | ||||
| 					"cislo" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_cislo", | ||||
| 					"tvorba", | ||||
| 					"cislo" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_cislo", | ||||
| 					"tvorba", | ||||
| 					"cislo" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_cislo", | ||||
| 					"tvorba", | ||||
| 					"cislo" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_clanek", | ||||
| 					"tvorba", | ||||
| 					"clanek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_clanek", | ||||
| 					"tvorba", | ||||
| 					"clanek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_clanek", | ||||
| 					"tvorba", | ||||
| 					"clanek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_clanek", | ||||
| 					"tvorba", | ||||
| 					"clanek" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_deadline", | ||||
| 					"tvorba", | ||||
| 					"deadline" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_deadline", | ||||
| 					"tvorba", | ||||
| 					"deadline" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_deadline", | ||||
| 					"tvorba", | ||||
| 					"deadline" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_pohadka", | ||||
| 					"tvorba", | ||||
| 					"pohadka" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_pohadka", | ||||
| 					"tvorba", | ||||
| 					"pohadka" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_pohadka", | ||||
| 					"tvorba", | ||||
| 					"pohadka" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_pohadka", | ||||
| 					"tvorba", | ||||
| 					"pohadka" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_problem", | ||||
| 					"tvorba", | ||||
| 					"problem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_problem", | ||||
| 					"tvorba", | ||||
| 					"problem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_problem", | ||||
| 					"tvorba", | ||||
| 					"problem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_problem", | ||||
| 					"tvorba", | ||||
| 					"problem" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_rocnik", | ||||
| 					"tvorba", | ||||
| 					"rocnik" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_rocnik", | ||||
| 					"tvorba", | ||||
| 					"rocnik" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_rocnik", | ||||
| 					"tvorba", | ||||
| 					"rocnik" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_rocnik", | ||||
| 					"tvorba", | ||||
| 					"rocnik" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_tema", | ||||
| 					"tvorba", | ||||
| 					"tema" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_tema", | ||||
| 					"tvorba", | ||||
| 					"tema" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_tema", | ||||
| 					"tvorba", | ||||
| 					"tema" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_tema", | ||||
| 					"tvorba", | ||||
| 					"tema" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_uloha", | ||||
| 					"tvorba", | ||||
| 					"uloha" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_uloha", | ||||
| 					"tvorba", | ||||
| 					"uloha" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_uloha", | ||||
| 					"tvorba", | ||||
| 					"uloha" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_uloha", | ||||
| 					"tvorba", | ||||
| 					"uloha" | ||||
| 				], | ||||
| 				[ | ||||
| 					"add_nastaveni", | ||||
| 					"various", | ||||
| 					"nastaveni" | ||||
| 				], | ||||
| 				[ | ||||
| 					"delete_nastaveni", | ||||
| 					"various", | ||||
| 					"nastaveni" | ||||
| 				], | ||||
| 				[ | ||||
| 					"change_nastaveni", | ||||
| 					"various", | ||||
| 					"nastaveni" | ||||
| 				], | ||||
| 				[ | ||||
| 					"view_nastaveni", | ||||
| 					"various", | ||||
| 					"nastaveni" | ||||
| 				] | ||||
| 			] | ||||
| 		}, | ||||
| 		"model": "auth.group", | ||||
| 		"pk": 1 | ||||
| 	}, | ||||
| 	{ | ||||
| 		"fields": { | ||||
| 			"name": "resitel", | ||||
| 			"permissions": [ | ||||
| 				[ | ||||
| 					"resitel", | ||||
| 					"auth", | ||||
| 					"user" | ||||
| 				] | ||||
| 			] | ||||
| 		}, | ||||
| 		"model": "auth.group", | ||||
| 		"pk": 2 | ||||
| 	} | ||||
| ] | ||||
|  | @ -1,622 +0,0 @@ | |||
| [ | ||||
| 	{ | ||||
| 		"codename": "org", | ||||
| 		"ct_app_label": "auth", | ||||
| 		"ct_model": "user" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_flatpage", | ||||
| 		"ct_app_label": "flatpages", | ||||
| 		"ct_model": "flatpage" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_flatpage", | ||||
| 		"ct_app_label": "flatpages", | ||||
| 		"ct_model": "flatpage" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_flatpage", | ||||
| 		"ct_app_label": "flatpages", | ||||
| 		"ct_model": "flatpage" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_flatpage", | ||||
| 		"ct_app_label": "flatpages", | ||||
| 		"ct_model": "flatpage" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_galerie", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "galerie" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_galerie", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "galerie" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_galerie", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "galerie" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_galerie", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "galerie" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_obrazek", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "obrazek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_obrazek", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "obrazek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_obrazek", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "obrazek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_obrazek", | ||||
| 		"ct_app_label": "galerie", | ||||
| 		"ct_model": "obrazek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_fotkaheader", | ||||
| 		"ct_app_label": "header_fotky", | ||||
| 		"ct_model": "fotkaheader" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_fotkaheader", | ||||
| 		"ct_app_label": "header_fotky", | ||||
| 		"ct_model": "fotkaheader" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_fotkaheader", | ||||
| 		"ct_app_label": "header_fotky", | ||||
| 		"ct_model": "fotkaheader" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_fotkaurlvazba", | ||||
| 		"ct_app_label": "header_fotky", | ||||
| 		"ct_model": "fotkaurlvazba" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_fotkaurlvazba", | ||||
| 		"ct_app_label": "header_fotky", | ||||
| 		"ct_model": "fotkaurlvazba" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_fotkaurlvazba", | ||||
| 		"ct_app_label": "header_fotky", | ||||
| 		"ct_model": "fotkaurlvazba" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_komentar", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "komentar" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_komentar", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "komentar" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_komentar", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "komentar" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_komentar", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "komentar" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_korekturovanepdf", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "korekturovanepdf" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_korekturovanepdf", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "korekturovanepdf" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_korekturovanepdf", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "korekturovanepdf" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_korekturovanepdf", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "korekturovanepdf" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_oprava", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "oprava" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_oprava", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "oprava" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_oprava", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "oprava" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_oprava", | ||||
| 		"ct_app_label": "korektury", | ||||
| 		"ct_model": "oprava" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_hlasovani", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "hlasovani" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_hlasovani", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "hlasovani" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_hlasovani", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "hlasovani" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_hlasovani", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "hlasovani" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_prednaska", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "prednaska" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_prednaska", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "prednaska" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_prednaska", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "prednaska" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_prednaska", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "prednaska" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_seznam", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "seznam" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_seznam", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "seznam" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_seznam", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "seznam" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_seznam", | ||||
| 		"ct_app_label": "prednasky", | ||||
| 		"ct_model": "seznam" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_cislo", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "cislo" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_cislo", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "cislo" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_cislo", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "cislo" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_cislo", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "cislo" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_clanek", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "clanek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_clanek", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "clanek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_clanek", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "clanek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_clanek", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "clanek" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_deadline", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "deadline" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_deadline", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "deadline" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_deadline", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "deadline" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_konfera", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfera" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_konfera", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfera" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_konfera", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfera" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_konfera", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfera" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_konfery_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfery_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_konfery_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfery_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_konfery_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfery_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_konfery_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "konfery_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_nastaveni", | ||||
| 		"ct_app_label": "various", | ||||
| 		"ct_model": "nastaveni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_nastaveni", | ||||
| 		"ct_app_label": "various", | ||||
| 		"ct_model": "nastaveni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_nastaveni", | ||||
| 		"ct_app_label": "various", | ||||
| 		"ct_model": "nastaveni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_nastaveni", | ||||
| 		"ct_app_label": "various", | ||||
| 		"ct_model": "nastaveni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_novinky", | ||||
| 		"ct_app_label": "novinky", | ||||
| 		"ct_model": "novinky" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_novinky", | ||||
| 		"ct_app_label": "novinky", | ||||
| 		"ct_model": "novinky" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_novinky", | ||||
| 		"ct_app_label": "novinky", | ||||
| 		"ct_model": "novinky" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_novinky", | ||||
| 		"ct_app_label": "novinky", | ||||
| 		"ct_model": "novinky" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_organizator", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "organizator" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_organizator", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "organizator" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_osoba", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "osoba" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_osoba", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "osoba" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_pohadka", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "pohadka" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_pohadka", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "pohadka" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_pohadka", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "pohadka" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_pohadka", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "pohadka" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_prijemce", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "prijemce" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_prijemce", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "prijemce" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_prijemce", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "prijemce" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_prijemce", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "prijemce" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_problem", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "problem" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_problem", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "problem" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_problem", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "problem" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_problem", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "problem" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_resitel", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "resitel" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_resitel", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "resitel" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_rocnik", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "rocnik" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_rocnik", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "rocnik" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_rocnik", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "rocnik" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_rocnik", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "rocnik" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_skola", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "skola" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_skola", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "skola" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_skola", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "skola" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_skola", | ||||
| 		"ct_app_label": "personalni", | ||||
| 		"ct_model": "skola" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_soustredeni", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_soustredeni", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_soustredeni", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_soustredeni", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_soustredeni_organizatori", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_organizatori" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_soustredeni_organizatori", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_organizatori" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_soustredeni_organizatori", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_organizatori" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_soustredeni_organizatori", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_organizatori" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_soustredeni_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_soustredeni_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_soustredeni_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_soustredeni_ucastnici", | ||||
| 		"ct_app_label": "soustredeni", | ||||
| 		"ct_model": "soustredeni_ucastnici" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_tema", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "tema" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_tema", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "tema" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_tema", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "tema" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_tema", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "tema" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_uloha", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "uloha" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_uloha", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "uloha" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_uloha", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "uloha" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_uloha", | ||||
| 		"ct_app_label": "tvorba", | ||||
| 		"ct_model": "uloha" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_tag", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "tag" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_tag", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "tag" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_tag", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "tag" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_tag", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "tag" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "add_taggeditem", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "taggeditem" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "change_taggeditem", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "taggeditem" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "delete_taggeditem", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "taggeditem" | ||||
| 	}, | ||||
| 	{ | ||||
| 		"codename": "view_taggeditem", | ||||
| 		"ct_app_label": "taggit", | ||||
| 		"ct_model": "taggeditem" | ||||
| 	} | ||||
| ] | ||||
|  | @ -13,7 +13,6 @@ make install_venv | |||
| make install | ||||
| deploy_v2/pre_migration.py | ||||
| make deploy_test | ||||
| ./manage.py load_org_permissions admin_org_prava.json | ||||
| ./manage.py loaddata data/* | ||||
| systemctl --user start mamweb-test.service | ||||
| ./manage.py generate_thumbnails | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ Dokumentace (jak v ``docs/``, tak přímo v kódu) je psaná ve | |||
|    zavislosti | ||||
|    sphinx | ||||
|    skripty | ||||
|    zkratky | ||||
|    modules/modules | ||||
|    dalsi_soubory | ||||
|    zapisy/zapisy | ||||
|  |  | |||
|  | @ -1,13 +1,15 @@ | |||
| Sphinx na našem webu | ||||
| ==================== | ||||
| 
 | ||||
| Dokumentace se zkompiluje příkazem ``make html`` ve složce ``doc``. | ||||
| Dokumentace se zkompiluje příkazem ``make html`` ve složce ``docs``. (Musíte mít zapnutý virtualenv) | ||||
| 
 | ||||
| Složka ``modules`` je automaticiky generována a přegenerovávána. (**Nic v ní neupravovat!**) | ||||
| Jinak všechny rst, co jsou ve složce ``doc`` a jejích podsložkách nezačínajících podtržítkem, budou v dokumentaci a to je přesně to, co editovat pro změnu dokumentace (kromě dokumentace přímo v Pythonu). | ||||
| Jinak všechny rst, co jsou ve složce ``docs`` a jejích podsložkách nezačínajících podtržítkem, budou v dokumentaci a to je přesně to, co editovat pro změnu dokumentace (kromě dokumentace přímo v Pythonu). | ||||
| 
 | ||||
| Sphinx se píše v rst: `Návod na syntaxi rst`_ `Cheat sheet`_ | ||||
| 
 | ||||
| Pokud něco chcete protlačit do bočního meníčka, je potřeba to připsat do souboru ``docs/index.rst`` (Zatím není úplně konsensus nad tím, co tam má a nemá být, takže pokud si nejste jistí, cpěte tam *všechno* ☺) | ||||
| 
 | ||||
| To je snad vše, co je potřeba vědět k dokumentaci mamwebu. Následující sekce jsou o tom, co jsem provedl Sphinxu, aby to fungovalo: | ||||
| 
 | ||||
| .. _Návod na syntaxi rst: https://sphinx-tutorial.readthedocs.io/step-1/#sections | ||||
|  |  | |||
							
								
								
									
										86
									
								
								docs/zkratky.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,86 @@ | |||
| Zkratky aplikací ve zdrojácích | ||||
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | ||||
| 
 | ||||
| Ve zdrojácích (zejména různé ``models.py``, ``views.py`` ap.) používáme spoustu | ||||
| modelů. Někdy je praktičtější / někdo preferuje importovat celou aplikaci jako | ||||
| jedno jméno a používat modely bez explicitních importů, tj:: | ||||
| 
 | ||||
|     # „hromadné“ importy: | ||||
|     import personalni.models as p | ||||
|     ... | ||||
|     p.Organizator.objects.all() | ||||
| 
 | ||||
|     # „explicitní“ importy: | ||||
|     from personalni.models import Organizator | ||||
|     ... | ||||
|     Organizator.objects.all() | ||||
| 
 | ||||
| Na webschůzce 2024-11-05 jsme na toto téma otevřeli diskusi, tady je její závěr. | ||||
| 
 | ||||
| .. admonition:: Historické okénko | ||||
|    :class: note | ||||
| 
 | ||||
|    Kdysi jsme měli (prakticky) všechny modely v jedné aplikaci, ``seminar``. Na | ||||
|    různých místech se pak ``seminar.models`` importovalo typicky jako ``s`` | ||||
|    nebo jako ``m``. | ||||
| 
 | ||||
|    Přirozeně, toto už nejde tak snadno, protože už neexistuje jedno místo, ze | ||||
|    kterého chceme tahat modely v kódu. | ||||
| 
 | ||||
| Konvence | ||||
| ======== | ||||
| 
 | ||||
| Shodli jsme se, že nám rozhodně nevadí explicitní importy a z pohledu | ||||
| čitelnosti je preferujeme. Nicméně při psaní kódu to některým webařům přijde | ||||
| nepohodlné, takže očekáváme, že bude existovat spousta kódu, která bude chtít | ||||
| importovat hromadně. Usnesli jsme se proto na následujících kanonických | ||||
| zkratkách, aby se aplikace alespoň zkracovaly konzistentně. | ||||
| 
 | ||||
| V závorkách je uvedené případné jméno, ale nepředpokládáme, že někdo bude danou | ||||
| aplikaci chtít importovat hromadně. Některé aplikace zkratku nemají, ty se | ||||
| importují vždy pod plným jménem nebo explicitně. | ||||
| 
 | ||||
| .. list-table:: | ||||
|    :header-rows: 1 | ||||
| 
 | ||||
|    * - Model | ||||
|      - Zkratka | ||||
|    * - ``aesop`` | ||||
|      - --- | ||||
|    * - ``api`` | ||||
|      - --- (``api``) | ||||
|    * - ``galerie`` | ||||
|      - ``g`` | ||||
|    * - ``header_fotky`` | ||||
|      - --- (``hdr``) | ||||
|    * - ``korektury`` | ||||
|      - ``kor`` | ||||
|    * - ``novinky`` | ||||
|      - ``nov`` | ||||
|    * - ``odevzdavatko`` | ||||
|      - ``odev`` | ||||
|    * - ``personální`` | ||||
|      - ``pers``/``p`` | ||||
|    * - ``sifrovacka`` | ||||
|      - (``sifr``) | ||||
|    * - ``soustredeni`` | ||||
|      - ``sou`` | ||||
|    * - ``treenode`` | ||||
|      - ``tn`` | ||||
|    * - ``tvorba`` | ||||
|      - ``tv`` | ||||
|    * - ``various`` | ||||
|      - ``v``/``var`` | ||||
|    * - ``vyroci`` | ||||
|      - --- | ||||
|    * - ``vysledkovky`` | ||||
|      - ``vysl`` | ||||
| 
 | ||||
| 
 | ||||
| .. admonition:: O všech modelech pod jedním jménem | ||||
|    :class: warning | ||||
| 
 | ||||
|    Historické okénko výš zatajuje jeden detail: Při práci v shellu se hodí mít | ||||
|    modely k dispozici a nemuset přemýšlet nad dělením do aplikací, takže ve | ||||
|    skutečnosti existuje ``mamweb.vsechno``, jenž všechny modely obsahuje. | ||||
|    Z čitelnostních důvodů je ale *zakázáno* tento modul používat v kódu. | ||||
| Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB | 
|  | @ -8,4 +8,3 @@ ensure_venv | |||
| ./manage.py testdata | ||||
| ./manage.py loaddata data/* | ||||
| #make/sync_prod_flatpages | ||||
| ./manage.py load_org_permissions deploy_v2/admin_org_prava.json | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import locale | |||
| from django.contrib import admin | ||||
| from django.contrib.admin import AdminSite | ||||
| from django.contrib.flatpages.models import FlatPage | ||||
| import logging | ||||
|   | ||||
| # Note: we are renaming the original Admin and Form as we import them! | ||||
| from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld | ||||
|  | @ -56,8 +57,13 @@ def get_app_list(self, request, app_label=None): | |||
| 
 | ||||
| 
 | ||||
| 	# Sort the models alphabetically within each app. | ||||
| 	try: # na macu nefunguje locale.strxfrm :-/ proto je tu try except block | ||||
| 		for app in app_list: | ||||
| 			app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower())) | ||||
| 	except OSError as e: | ||||
| 		# locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení | ||||
| 		logger = logging.getLogger(__name__) | ||||
| 		logger.error(e) | ||||
| 
 | ||||
| 	return app_list | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,6 +10,8 @@ | |||
| 
 | ||||
| 	--orgovska-fialova: #6a0043; | ||||
| 	--orgovska-svetla-fialova: #eee4ec; | ||||
| 	--resitelska-fialova: #f296b3; | ||||
| 	--resitelska-svetla-fialova: #f2E5EF; | ||||
| 
 | ||||
| 	--barva-pozadi: #fffbf6; | ||||
| } | ||||
|  |  | |||
|  | @ -17,7 +17,27 @@ | |||
| 	border: var(--orgovska-fialova) 2px dashed; | ||||
| 
 | ||||
| 	& .mam-org-only { | ||||
| 		border: 0; | ||||
| 		/* Vnitřní rámečky mají být taky vidět */ | ||||
| 		border-width: 1px; | ||||
| 		background-color: rgba(0, 0, 0, 0.06); | ||||
| 	} | ||||
| 
 | ||||
| 	& li { | ||||
| 		padding: 3px 0; | ||||
| 		margin: -2px 0; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .mam-resitel-only { | ||||
| 	background: var(--resitelska-svetla-fialova); | ||||
| 	padding: 10px; | ||||
| 	margin: 10px -10px; | ||||
| 	border: var(--resitelska-fialova) 2px dashed; | ||||
| 
 | ||||
| 	& .mam-resitel-only { | ||||
| 		/* Vnitřní rámečky mají být taky vidět */ | ||||
| 		border-width: 1px; | ||||
| 		background-color: rgba(0, 0, 0, 0.06); | ||||
| 	} | ||||
| 
 | ||||
| 	& li { | ||||
|  |  | |||
|  | @ -67,7 +67,7 @@ class SeznamListView(generic.ListView): | |||
| 	def get_queryset(self): | ||||
| 		self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"]) | ||||
| 		prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by( | ||||
| 			'org__user__first_name', 'org__user__last_name' | ||||
| 			'org__osoba__user__first_name', 'org__osoba__user__last_name' | ||||
| 		) | ||||
| 		return prednasky | ||||
| 
 | ||||
|  |  | |||
|  | @ -36,12 +36,16 @@ | |||
|           {% endfor %} | ||||
|         {% endif %} | ||||
| 
 | ||||
|         {% if soustredeni.kontaktnicek_pdf or soustredeni.kontaktnicek_vcf %} | ||||
|             {% for i in soustredeni.ucastnici.all %} | ||||
|               {% if i.osoba.user == user %} | ||||
|                 <div class="mam-resitel-only"> | ||||
|                 {% if soustredeni.kontaktnicek_pdf %} <li><a href="../{{soustredeni.pk}}/kontaktnicek_pdf">kontaktnicek pdf</a></li>{% endif %} | ||||
|                 {% if soustredeni.kontaktnicek_vcf %} <li><a href="../{{soustredeni.pk}}/kontaktnicek_vcf">kontaktnicek vcf</a></li>{% endif %} | ||||
|                 </div> | ||||
|               {% endif %} | ||||
|             {% endfor %} | ||||
|         {% endif %} | ||||
| 
 | ||||
|       </ul> | ||||
|       {% if user.je_org %} | ||||
|  |  | |||
|  | @ -1,5 +1,17 @@ | |||
| \ifnum\mmrocnik=0{{vysledkovka.cislo.rocnik.rocnik}} \else\TODO[Ročník výsledkovky se neshoduje s ročníkem čísla! Pokud je to tak správně, smaž tento řádek.]\par\fi | ||||
| \ifnum\mmcislo=0{{vysledkovka.cislo.poradi|add:1}} \else\TODO[Číslo výsledkovky se neshoduje s pořadovým číslem čísla! Nestáhnul jsi špatnou výsledkovku? Pokud je to tak správně, smaž tento řádek.]\par\fi | ||||
| {% if rocnik %}\ifmmposledni\else\TODO[Importoval jsi výsledkovku posledního čísla do čísla, které není poslední (v headru nebylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek.]\par\fi{% endif %} | ||||
| % | ||||
| \VysledkyCisla{Výsledky {% if vysledkovka.od_deadlinu %}2.~deadlinu {{vysledkovka.od_deadlinu.cislo.poradi}}.~čísla a~{% endif %}{% if rocnik %}celého{% else %}1.~deadlinu{% endif %} {{vysledkovka.cislo.poradi}}.~čísla} | ||||
| \vspace{-1em}\nobreak | ||||
| \begin{center} | ||||
| % | ||||
| \setlength{\tabcolsep}{3pt} | ||||
| \renewcommand{\arraystretch}{1.2} | ||||
| \noindent\small | ||||
| % | ||||
| {% if vysledkovka.je_nejake_ostatni %}\global\vysledkovkaostatnitrue{% else %}\global\vysledkovkaostatnifalse{% endif %} | ||||
| {% if vysledkovka.od_deadlinu %}\global\VysledkovkaJedenDeadlinefalse{% else %}\global\VysledkovkaJedenDeadlinetrue{% endif %} | ||||
| \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline | ||||
| & & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline | ||||
| \endhead | ||||
|  | @ -8,3 +20,4 @@ | |||
| {% for rv in vysledkovka.radky_vysledkovky %}{{rv.poradi}}&{% if rv.titul %}\titul{ {{ rv.titul}}}{% endif %}{{rv.resitel.osoba.jmeno|slice:":1"}}. {{rv.resitel.osoba.prijmeni}}&{{rv.rocnik_resitele|default:""}}&{{rv.body_celkem_odjakziva}}&{% for b in rv.body_za_temata_seznam %}{{b}}&{% endfor %}{{rv.body_cislo}}&{{rv.body_rocnik|default:0}}\\ | ||||
| {% endfor %} | ||||
| \end{longtable} | ||||
| \end{center} | ||||
|  |  | |||
|  | @ -1,14 +1,27 @@ | |||
| {% with lb="{" %} | ||||
| {% with rb="}" %} | ||||
| {% with vysledkovka=vysledkovka_neverejna %} | ||||
| % | ||||
| \ifnum\mmrocnik=0{{rocnik.rocnik}} \else\TODO[Ročník výsledkovky se neshoduje s ročníkem čísla! Pokud je to tak správně, smaž tento řádek.]\par\fi | ||||
| \ifmmposledni\else\TODO[Importoval jsi výsledkovku ročníku do čísla, které není poslední (v headru nebylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek.]\par\fi | ||||
| % | ||||
| \VysledkyRocniku{Výsledková listina {{rocnik.rocnik}}.~ročníku} | ||||
| \vspace{-1em}\nobreak | ||||
| \begin{center} | ||||
| % | ||||
| \setlength{\tabcolsep}{3pt} | ||||
| \renewcommand{\arraystretch}{1.2} | ||||
| \noindent | ||||
| % | ||||
| \begin{longtable}{|r|l|c|r|{% for cislo in vysledkovka.cisla_rocniku %}c{% if not forloop.last %}@{\hskip.5em}{% endif %}{% endfor %}|r|}\hline | ||||
| & & & & \multicolumn{{ lb }}{{ vysledkovka.cisla_rocniku|length }}}{c|}{\textbf{Číslo}} & \\\textbf{Poř.} & \textbf{Jméno} & \textbf{R.} & \raisebox{0.7mm}{$\sum_{-1}$} & {% for cislo in vysledkovka.cisla_rocniku %}\textbf{{ lb }}{{ cislo.poradi }}{{ rb }} & {% endfor %}\raisebox{0.7mm}{$\sum_1$} \\\hline | ||||
| \endhead | ||||
| \hline | ||||
| \endfoot | ||||
| {% for rv in vysledkovka.radky_vysledkovky %}{{ rv.poradi }} & {% if rv.titul %}\titul{{ lb }}{{ rv.titul }}}~{% endif %}{{ rv.resitel.osoba.jmeno|slice:":1" }}.~{{ rv.resitel.osoba.prijmeni }} & {% if rv.rocnik_resitele %}{{ rv.rocnik_resitele }}{% endif %} & {{ rv.body_celkem_odjakziva }} {% for b in rv.body_cisla_seznam %} & {{ b }}{% endfor %} & {{ rv.body_rocnik }} \\ | ||||
| {% endfor %}\end{longtable} | ||||
| {% endfor %} | ||||
| \end{longtable} | ||||
| \end{center} | ||||
| {% endwith %} | ||||
| {% endwith %} | ||||
| {% endwith %} | ||||
|  |  | |||
|  | @ -1,3 +1,10 @@ | |||
| {% if cislo is None %} | ||||
| \ifmmposledni\else\AtBeginDocument{\TODO[Importoval jsi tituly posledního čísla do čísla, které není poslední (v headru nebylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek v \texttt{tituly.tex}.]\par}\fi | ||||
| {% else %} | ||||
| \ifmmposledni\AtBeginDocument{\TODO[Importoval jsi průběžné tituly do posledního čísla (v headru bylo \texttt{documentclass[\ldots,posledni]\{mam\}})! Pokud je to tak správně, smaž tento řádek v \texttt{tituly.tex}.]\par}\fi | ||||
| \ifnum\mmcislo=0{{cislo|add:1}} \else\AtBeginDocument{\TODO[Číslo titulů se neshoduje s pořadovým číslem čísla! Nestáhnul jsi špatné tituly? Pokud je to tak správně, smaž tento řádek v \texttt{tituly.tex}.]\par}\fi | ||||
| {% endif %} | ||||
| 
 | ||||
| {% if broken %} | ||||
| POZOR! Kolize jmen! Dva řešitelé mají stejné makro! | ||||
| {% endif %} | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
| 	Termíny pro odeslání řešení {{ac.poradi}}. série:<br> | ||||
| 
 | ||||
|     {% for deadline in ac.deadline_v_cisle.all %} | ||||
|         {% if deadline.typ == deadline.TYP_SOUS or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} | ||||
|         {% if deadline.typ == deadline.TYP_SOUS or deadline.typ == deadline.TYP_PRVNI_A_SOUS or deadline.typ == deadline.TYP_CISLA_A_SOUS %} | ||||
|                 <span class="AKTUALNI_ZADANI_datum">{{deadline.deadline.date}}</span> pro účast na soustředění<br> | ||||
|         {% endif %} | ||||
| 
 | ||||
|  | @ -26,7 +26,7 @@ | |||
|                 <span class="AKTUALNI_ZADANI_datum">{{deadline.deadline.date}}</span> pro otištění v dalším čísle<br> | ||||
|         {% endif %} | ||||
| 
 | ||||
|         {% if deadline.typ == deadline.TYP_CISLA %} | ||||
|         {% if deadline.typ == deadline.TYP_CISLA or deadline.typ == deadline.TYP_CISLA_A_SOUS %} | ||||
|                 <span class="AKTUALNI_ZADANI_datum">{{deadline.deadline.date}}</span> definitivní deadline<br> | ||||
|         {% endif %} | ||||
|     {% endfor %} | ||||
|  |  | |||
|  | @ -523,7 +523,7 @@ def TitulyView(request, rocnik, cislo): | |||
| 			jmenovci = True | ||||
| 
 | ||||
| 	return render(request, 'tvorba/archiv/tituly.tex', | ||||
| 				  {'resitele': resitele,'jmenovci':jmenovci},content_type="text/plain") | ||||
| 				  {'resitele': resitele,'jmenovci':jmenovci,'cislo':cislo},content_type="text/plain") | ||||
| 
 | ||||
| 
 | ||||
| ### Články | ||||
|  |  | |||
|  | @ -1,30 +0,0 @@ | |||
| from django.core.management.base import BaseCommand | ||||
| from django.contrib.sessions.models import Session | ||||
| from django.contrib.auth.models import Group, Permission | ||||
| from django.contrib.contenttypes.models import ContentType | ||||
| from django.core.exceptions import ObjectDoesNotExist | ||||
| import json | ||||
| import argparse | ||||
| 
 | ||||
| class Command(BaseCommand): | ||||
| 	""" | ||||
| 
 | ||||
| 	""" | ||||
| 	def add_arguments(self, parser): | ||||
| 		parser.add_argument('file', nargs=1, type=argparse.FileType('r', encoding='utf8')) | ||||
| 
 | ||||
| 
 | ||||
| 	def handle(self, *args, **options): | ||||
| 		try: | ||||
| 			orgroup = Group.objects.get(name='org') | ||||
| 		except ObjectDoesNotExist: | ||||
| 			orgroup = Group(name='org') | ||||
| 			orgroup.save() | ||||
| 		permissions = json.load(options['file'][0]) | ||||
| 		orgroup.permissions.clear() | ||||
| 		for jp in permissions: | ||||
| 			ct = ContentType.objects.get(app_label = jp['ct_app_label'], model = jp['ct_model']) | ||||
| 			perm = Permission.objects.get(content_type = ct, codename = jp['codename']) | ||||
| 			orgroup.permissions.add(perm) | ||||
| 		orgroup.save() | ||||
| 		 | ||||
|  | @ -1,20 +0,0 @@ | |||
| from django.core.management.base import BaseCommand | ||||
| from django.contrib.sessions.models import Session | ||||
| from django.contrib.auth.models import Group, Permission | ||||
| import json | ||||
| 
 | ||||
| class Command(BaseCommand): | ||||
| 	""" | ||||
| 	Dump permissions for group 'org' such that them can be used on an other machine. | ||||
| 
 | ||||
| 	""" | ||||
| 	def handle(self, *args, **options): | ||||
| 		orgroup = Group.objects.get(name='org') | ||||
| 		permissions = [] | ||||
| 		for p in orgroup.permissions.all(): | ||||
| 			permissions.append({ | ||||
| 				'codename': p.codename, | ||||
| 				'ct_app_label': p.content_type.app_label, | ||||
| 				'ct_model': p.content_type.model}) | ||||
| 		print(json.dumps(permissions)) | ||||
| 		 | ||||