Merge pull request 'Oddělení soustředění do vlastní aplikace' (!47) from split-soustredeni into master
Reviewed-on: #47
This commit is contained in:
		
						commit
						64465a0471
					
				
					 22 changed files with 441 additions and 26 deletions
				
			
		|  | @ -271,42 +271,42 @@ | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "add_konfera", | 		"codename": "add_konfera", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfera" | 		"ct_model": "konfera" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "change_konfera", | 		"codename": "change_konfera", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfera" | 		"ct_model": "konfera" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "delete_konfera", | 		"codename": "delete_konfera", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfera" | 		"ct_model": "konfera" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "view_konfera", | 		"codename": "view_konfera", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfera" | 		"ct_model": "konfera" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "add_konfery_ucastnici", | 		"codename": "add_konfery_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfery_ucastnici" | 		"ct_model": "konfery_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "change_konfery_ucastnici", | 		"codename": "change_konfery_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfery_ucastnici" | 		"ct_model": "konfery_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "delete_konfery_ucastnici", | 		"codename": "delete_konfery_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfery_ucastnici" | 		"ct_model": "konfery_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "view_konfery_ucastnici", | 		"codename": "view_konfery_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "konfery_ucastnici" | 		"ct_model": "konfery_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
|  | @ -481,62 +481,62 @@ | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "add_soustredeni", | 		"codename": "add_soustredeni", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni" | 		"ct_model": "soustredeni" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "change_soustredeni", | 		"codename": "change_soustredeni", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni" | 		"ct_model": "soustredeni" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "delete_soustredeni", | 		"codename": "delete_soustredeni", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni" | 		"ct_model": "soustredeni" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "view_soustredeni", | 		"codename": "view_soustredeni", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni" | 		"ct_model": "soustredeni" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "add_soustredeni_organizatori", | 		"codename": "add_soustredeni_organizatori", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_organizatori" | 		"ct_model": "soustredeni_organizatori" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "change_soustredeni_organizatori", | 		"codename": "change_soustredeni_organizatori", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_organizatori" | 		"ct_model": "soustredeni_organizatori" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "delete_soustredeni_organizatori", | 		"codename": "delete_soustredeni_organizatori", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_organizatori" | 		"ct_model": "soustredeni_organizatori" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "view_soustredeni_organizatori", | 		"codename": "view_soustredeni_organizatori", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_organizatori" | 		"ct_model": "soustredeni_organizatori" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "add_soustredeni_ucastnici", | 		"codename": "add_soustredeni_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_ucastnici" | 		"ct_model": "soustredeni_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "change_soustredeni_ucastnici", | 		"codename": "change_soustredeni_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_ucastnici" | 		"ct_model": "soustredeni_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "delete_soustredeni_ucastnici", | 		"codename": "delete_soustredeni_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_ucastnici" | 		"ct_model": "soustredeni_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		"codename": "view_soustredeni_ucastnici", | 		"codename": "view_soustredeni_ucastnici", | ||||||
| 		"ct_app_label": "seminar", | 		"ct_app_label": "soustredeni", | ||||||
| 		"ct_model": "soustredeni_ucastnici" | 		"ct_model": "soustredeni_ucastnici" | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								galerie/migrations/0011_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								galerie/migrations/0011_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-04-30 21:53 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('galerie', '0010_auto_20200819_0947'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
							
								
								
									
										20
									
								
								galerie/migrations/0012_soustredeni_relink.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								galerie/migrations/0012_soustredeni_relink.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:07 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('soustredeni', '0001_split_from_seminar'), | ||||||
|  |         ('galerie', '0011_pre_split_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name='galerie', | ||||||
|  |             name='soustredeni', | ||||||
|  |             field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni'), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										14
									
								
								galerie/migrations/0013_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								galerie/migrations/0013_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:35 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('galerie', '0012_soustredeni_relink'), | ||||||
|  |         ('soustredeni', '0003_post_split_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
|  | @ -7,7 +7,7 @@ from imagekit.processors import ResizeToFit, Transpose | ||||||
| 
 | 
 | ||||||
| import os | import os | ||||||
| 
 | 
 | ||||||
| from seminar.models import Soustredeni | from soustredeni.models import Soustredeni | ||||||
| 
 | 
 | ||||||
| VZDY=0 | VZDY=0 | ||||||
| ORG=1 | ORG=1 | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								personalni/migrations/0006_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								personalni/migrations/0006_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-04-30 21:53 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('personalni', '0005_personalni_post_migrate'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
							
								
								
									
										13
									
								
								prednasky/migrations/0016_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								prednasky/migrations/0016_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-04-30 21:53 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('prednasky', '0015_personalni_post_migrate'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
							
								
								
									
										20
									
								
								prednasky/migrations/0017_soustredeni_relink.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								prednasky/migrations/0017_soustredeni_relink.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:07 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('soustredeni', '0001_split_from_seminar'), | ||||||
|  |         ('prednasky', '0016_pre_split_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name='seznam', | ||||||
|  |             name='soustredeni', | ||||||
|  |             field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni'), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										14
									
								
								prednasky/migrations/0018_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								prednasky/migrations/0018_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:35 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('prednasky', '0017_soustredeni_relink'), | ||||||
|  |         ('soustredeni', '0003_post_split_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| 
 | 
 | ||||||
| from django.db import models | from django.db import models | ||||||
| 
 | 
 | ||||||
| from seminar.models import Soustredeni | from soustredeni.models import Soustredeni | ||||||
| from personalni.models import Organizator | from personalni.models import Organizator | ||||||
| 
 | 
 | ||||||
| STAV_NAVRH = 1 | STAV_NAVRH = 1 | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								seminar/migrations/0122_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								seminar/migrations/0122_pre_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-04-30 21:54 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('seminar', '0121_personalni_post_migrate'), | ||||||
|  |         ('personalni', '0006_pre_split_soustredeni'), | ||||||
|  |         ('galerie', '0011_pre_split_soustredeni'), | ||||||
|  |         ('prednasky', '0016_pre_split_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
							
								
								
									
										33
									
								
								seminar/migrations/0123_soustredeni_unmanage.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								seminar/migrations/0123_soustredeni_unmanage.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-04-30 22:17 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('seminar', '0122_pre_split_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='konfera', | ||||||
|  |             options={'managed': False, 'verbose_name': 'Konfera', 'verbose_name_plural': 'Konfery'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='konfery_ucastnici', | ||||||
|  |             options={'managed': False, 'ordering': ['konfera', 'resitel'], 'verbose_name': 'Účast na konfeře', 'verbose_name_plural': 'Účasti na konfeře'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='soustredeni', | ||||||
|  |             options={'managed': False, 'ordering': ['-rocnik__rocnik', '-datum_zacatku'], 'verbose_name': 'Soustředění', 'verbose_name_plural': 'Soustředění'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='soustredeni_organizatori', | ||||||
|  |             options={'managed': False, 'ordering': ['soustredeni', 'organizator'], 'verbose_name': 'Účast organizátorů na soustředění', 'verbose_name_plural': 'Účasti organizátorů na soustředění'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='soustredeni_ucastnici', | ||||||
|  |             options={'managed': False, 'ordering': ['soustredeni', 'resitel'], 'verbose_name': 'Účast na soustředění', 'verbose_name_plural': 'Účasti na soustředění'}, | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										67
									
								
								seminar/migrations/0124_remove_sous_from_seminar.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								seminar/migrations/0124_remove_sous_from_seminar.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,67 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:13 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('seminar', '0123_soustredeni_unmanage'), | ||||||
|  |         ('soustredeni', '0001_split_from_seminar'), | ||||||
|  |         ('galerie', '0012_soustredeni_relink'), | ||||||
|  |         ('prednasky', '0017_soustredeni_relink'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='konfery_ucastnici', | ||||||
|  |             name='konfera', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='konfery_ucastnici', | ||||||
|  |             name='resitel', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='soustredeni', | ||||||
|  |             name='organizatori', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='soustredeni', | ||||||
|  |             name='rocnik', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='soustredeni', | ||||||
|  |             name='ucastnici', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='soustredeni_organizatori', | ||||||
|  |             name='organizator', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='soustredeni_organizatori', | ||||||
|  |             name='soustredeni', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='soustredeni_ucastnici', | ||||||
|  |             name='resitel', | ||||||
|  |         ), | ||||||
|  |         migrations.RemoveField( | ||||||
|  |             model_name='soustredeni_ucastnici', | ||||||
|  |             name='soustredeni', | ||||||
|  |         ), | ||||||
|  |         migrations.DeleteModel( | ||||||
|  |             name='Konfera', | ||||||
|  |         ), | ||||||
|  |         migrations.DeleteModel( | ||||||
|  |             name='Konfery_Ucastnici', | ||||||
|  |         ), | ||||||
|  |         migrations.DeleteModel( | ||||||
|  |             name='Soustredeni', | ||||||
|  |         ), | ||||||
|  |         migrations.DeleteModel( | ||||||
|  |             name='Soustredeni_Organizatori', | ||||||
|  |         ), | ||||||
|  |         migrations.DeleteModel( | ||||||
|  |             name='Soustredeni_Ucastnici', | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										14
									
								
								seminar/migrations/0125_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								seminar/migrations/0125_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:35 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('seminar', '0124_remove_sous_from_seminar'), | ||||||
|  |         ('soustredeni', '0003_post_split_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
|  | @ -1,10 +1,13 @@ | ||||||
| from .tvorba import * | from .tvorba import * | ||||||
| from .odevzdavatko import * | from .odevzdavatko import * | ||||||
| from .base import * | from .base import * | ||||||
| from .soustredeni import * |  | ||||||
| from .pomocne import * | from .pomocne import * | ||||||
| from .treenode import * | from .treenode import * | ||||||
| from .novinky import * | from .novinky import * | ||||||
| 
 | 
 | ||||||
| from various.models import Nastaveni | from various.models import Nastaveni | ||||||
| from personalni.models import Organizator, Resitel, Skola, Prijemce, Osoba | from personalni.models import Organizator, Resitel, Skola, Prijemce, Osoba | ||||||
|  | from soustredeni.models import Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Konfera, Konfery_Ucastnici | ||||||
|  | 
 | ||||||
|  | # Kvůli migr. 0041 | ||||||
|  | from soustredeni.models import generate_filename_konfera | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ from django.contrib import admin | ||||||
| from django.forms import widgets | from django.forms import widgets | ||||||
| from django.db import models | from django.db import models | ||||||
| 
 | 
 | ||||||
| from seminar.models import soustredeni as m | import soustredeni.models as m | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class SoustredeniUcastniciInline(admin.TabularInline): | class SoustredeniUcastniciInline(admin.TabularInline): | ||||||
|  |  | ||||||
							
								
								
									
										122
									
								
								soustredeni/migrations/0001_split_from_seminar.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								soustredeni/migrations/0001_split_from_seminar.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,122 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-04-30 22:53 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import soustredeni.models | ||||||
|  | 
 | ||||||
|  | def nastav_nove_contenttypes(apps, schema_editor): | ||||||
|  |     ContentType = apps.get_model('contenttypes', 'ContentType') | ||||||
|  |     for m in ('konfera', 'soustredeni', 'soustredeni_ucastnici', 'soustredeni_organizatori', 'konfery_ucastnici'): | ||||||
|  |         oct = ContentType.objects.filter(app_label='seminar', model=m) | ||||||
|  |         oct.update(app_label='soustredeni') | ||||||
|  | 
 | ||||||
|  | def nastav_stare_contenttypes(apps, schema_editor): | ||||||
|  |     ContentType = apps.get_model('contenttypes', 'ContentType') | ||||||
|  |     for m in ('konfera', 'soustredeni', 'soustredeni_ucastnici', 'soustredeni_organizatori', 'konfery_ucastnici'): | ||||||
|  |         nct = ContentType.objects.filter(app_label='soustredeni', model=m) | ||||||
|  |         nct.update(app_label='seminar') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     initial = True | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('seminar', '0123_soustredeni_unmanage'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), | ||||||
|  | 
 | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='Konfera', | ||||||
|  |             fields=[ | ||||||
|  |                 ('problem_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='seminar.problem')), | ||||||
|  |                 ('anotace', models.TextField(blank=True, help_text='Popis, o čem bude konfera.', verbose_name='anotace')), | ||||||
|  |                 ('abstrakt', models.TextField(blank=True, help_text='Abstrakt konfery tak, jak byl uveden ve sborníku', verbose_name='abstrakt')), | ||||||
|  |                 ('typ_prezentace', models.CharField(choices=[('veletrh', 'Veletrh (postery)'), ('prezentace', 'Prezentace (přednáška)')], default='veletrh', max_length=16, verbose_name='typ prezentace')), | ||||||
|  |                 ('prezentace', models.FileField(blank=True, help_text='Prezentace nebo fotka posteru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='prezentace')), | ||||||
|  |                 ('materialy', models.FileField(blank=True, help_text='Další materiály ke konfeře zabalené do jednoho souboru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='materialy')), | ||||||
|  |                 ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.SET_NULL, null=True, related_name='konfery')), | ||||||
|  |                 ('ucastnici', models.ManyToManyField(help_text='Seznam účastníků konfery', through='soustredeni.Konfery_Ucastnici', to='personalni.resitel', verbose_name='účastníci konfery')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'verbose_name': 'Konfera', | ||||||
|  |                 'verbose_name_plural': 'Konfery', | ||||||
|  |                 'db_table': 'seminar_konfera', | ||||||
|  |                 'managed': False, | ||||||
|  |             }, | ||||||
|  |             bases=('seminar.problem',), | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='Konfery_Ucastnici', | ||||||
|  |             fields=[ | ||||||
|  |                 ('id', models.AutoField(primary_key=True, serialize=False)), | ||||||
|  |                 ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti (plain text)', verbose_name='neveřejná poznámka')), | ||||||
|  |                 ('resitel', models.ForeignKey(to='personalni.resitel', verbose_name='řešitel', on_delete=models.PROTECT)), | ||||||
|  |                 ('konfera', models.ForeignKey(to='soustredeni.konfera', verbose_name='konfera', on_delete=models.CASCADE)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'verbose_name': 'Účast na konfeře', | ||||||
|  |                 'verbose_name_plural': 'Účasti na konfeře', | ||||||
|  |                 'db_table': 'seminar_konfery_ucastnici', | ||||||
|  |                 'ordering': ['konfera', 'resitel'], | ||||||
|  |                 'managed': False, | ||||||
|  |             }, | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='Soustredeni', | ||||||
|  |             fields=[ | ||||||
|  |                 ('id', models.AutoField(primary_key=True, serialize=False)), | ||||||
|  |                 ('datum_zacatku', models.DateField(blank=True, help_text='První den soustředění', null=True, verbose_name='datum začátku')), | ||||||
|  |                 ('datum_konce', models.DateField(blank=True, help_text='Poslední den soustředění', null=True, verbose_name='datum konce')), | ||||||
|  |                 ('verejne_db', models.BooleanField(db_column='verejne', default=False, verbose_name='soustředění zveřejněno')), | ||||||
|  |                 ('misto', models.CharField(blank=True, default='', help_text='Místo (název obce, volitelně též objektu', max_length=256, verbose_name='místo soustředění')), | ||||||
|  |                 ('text', models.TextField(blank=True, default='', verbose_name='text k soustředění (HTML)')), | ||||||
|  |                 ('typ', models.CharField(choices=[('jarni', 'Jarní soustředění'), ('podzimni', 'Podzimní soustředění'), ('vikend', 'Víkendový sraz'), ('vylet', 'Výlet')], default='podzimni', max_length=16, verbose_name='typ akce')), | ||||||
|  |                 ('exportovat', models.BooleanField(db_column='exportovat', default=False, help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)', verbose_name='export do AESOPa')), | ||||||
|  |                 ('rocnik', models.ForeignKey(to='seminar.rocnik', verbose_name='ročník', related_name='soustredeni', on_delete=models.PROTECT)), | ||||||
|  |                 ('organizatori', models.ManyToManyField(help_text='Seznam organizátorů soustředění', through='soustredeni.Soustredeni_Organizatori', to='personalni.organizator', verbose_name='Organizátoři soustředění')), | ||||||
|  |                 ('ucastnici', models.ManyToManyField(help_text='Seznam účastníků soustředění', through='soustredeni.Soustredeni_Ucastnici', to='personalni.resitel', verbose_name='účastníci soustředění')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'verbose_name': 'Soustředění', | ||||||
|  |                 'verbose_name_plural': 'Soustředění', | ||||||
|  |                 'db_table': 'seminar_soustredeni', | ||||||
|  |                 'ordering': ['-rocnik__rocnik', '-datum_zacatku'], | ||||||
|  |                 'managed': False, | ||||||
|  |             }, | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='Soustredeni_Organizatori', | ||||||
|  |             fields=[ | ||||||
|  |                 ('id', models.AutoField(primary_key=True, serialize=False)), | ||||||
|  |                 ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti organizátora (plain text)', verbose_name='neveřejná poznámka')), | ||||||
|  |                 ('organizator', models.ForeignKey(to='personalni.organizator', verbose_name='organizátor', on_delete=models.PROTECT)), | ||||||
|  |                 ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'verbose_name': 'Účast organizátorů na soustředění', | ||||||
|  |                 'verbose_name_plural': 'Účasti organizátorů na soustředění', | ||||||
|  |                 'db_table': 'seminar_soustredeni_organizatori', | ||||||
|  |                 'ordering': ['soustredeni', 'organizator'], | ||||||
|  |                 'managed': False, | ||||||
|  |             }, | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='Soustredeni_Ucastnici', | ||||||
|  |             fields=[ | ||||||
|  |                 ('id', models.AutoField(primary_key=True, serialize=False)), | ||||||
|  |                 ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti (plain text)', verbose_name='neveřejná poznámka')), | ||||||
|  |                 ('resitel', models.ForeignKey(to='personalni.resitel', verbose_name='řešitel', on_delete=models.PROTECT)), | ||||||
|  |                 ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'verbose_name': 'Účast na soustředění', | ||||||
|  |                 'verbose_name_plural': 'Účasti na soustředění', | ||||||
|  |                 'db_table': 'seminar_soustredeni_ucastnici', | ||||||
|  |                 'ordering': ['soustredeni', 'resitel'], | ||||||
|  |                 'managed': False, | ||||||
|  |             }, | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										34
									
								
								soustredeni/migrations/0002_manage_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								soustredeni/migrations/0002_manage_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:18 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('soustredeni', '0001_split_from_seminar'), | ||||||
|  |         ('seminar', '0124_remove_sous_from_seminar'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='konfera', | ||||||
|  |             options={'verbose_name': 'Konfera', 'verbose_name_plural': 'Konfery'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='konfery_ucastnici', | ||||||
|  |             options={'ordering': ['konfera', 'resitel'], 'verbose_name': 'Účast na konfeře', 'verbose_name_plural': 'Účasti na konfeře'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='soustredeni', | ||||||
|  |             options={'ordering': ['-rocnik__rocnik', '-datum_zacatku'], 'verbose_name': 'Soustředění', 'verbose_name_plural': 'Soustředění'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='soustredeni_organizatori', | ||||||
|  |             options={'ordering': ['soustredeni', 'organizator'], 'verbose_name': 'Účast organizátorů na soustředění', 'verbose_name_plural': 'Účasti organizátorů na soustředění'}, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterModelOptions( | ||||||
|  |             name='soustredeni_ucastnici', | ||||||
|  |             options={'ordering': ['soustredeni', 'resitel'], 'verbose_name': 'Účast na soustředění', 'verbose_name_plural': 'Účasti na soustředění'}, | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										13
									
								
								soustredeni/migrations/0003_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								soustredeni/migrations/0003_post_split_soustredeni.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | # Generated by Django 4.2.11 on 2024-05-01 13:35 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('soustredeni', '0002_manage_soustredeni'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |     ] | ||||||
|  | @ -10,7 +10,7 @@ from django.conf import settings | ||||||
| 
 | 
 | ||||||
| from personalni.models import Resitel, Organizator | from personalni.models import Resitel, Organizator | ||||||
| 
 | 
 | ||||||
| from .base import SeminarModelBase | from seminar.models.base import SeminarModelBase | ||||||
| from seminar.models import tvorba as am | from seminar.models import tvorba as am | ||||||
| 
 | 
 | ||||||
| logger = logging.getLogger(__name__) | logger = logging.getLogger(__name__) | ||||||
|  | @ -1,6 +1,9 @@ | ||||||
| Prostě zkopírovat vedle, s původními (=správnými) related names. | Prostě zkopírovat vedle, s původními (=správnými) related names. | ||||||
|  | 	(Případně opravit *všechny* relativní importy) | ||||||
| makemigrations | makemigrations | ||||||
| ! Doplnit hack kolem content-types (jako první operace při migraci) | ! Doplnit hack kolem content-types (jako první operace při migraci) | ||||||
| ! Doplnit ForeignKeys (TODO: jak? Já jsem je ukradl až zpětně…) | ! Doplnit ForeignKeys (Vypadá to, že se dá vesměs zkopírovat předpis z models.py, jen místo prvního fieldu dát `to='app.model'. Dokonce asi funguje použít už novou aplikaci pro vazby v rámci aplikace.) | ||||||
|  | 	To samé s ManyToManyFieldy (through= musí taky být 'app.model') | ||||||
|  | (Zdá se, že jde dobastlit tuhle migraci polozpětně – doplnit co chybělo až podle toho, co vygeneruje migrace po zamanagování nového modelu.) | ||||||
| doplnit závislost na unmanage | doplnit závislost na unmanage | ||||||
| migrate | migrate | ||||||
|  |  | ||||||
|  | @ -16,6 +16,9 @@ vim seminar/models/whatever | ||||||
| 			HINT: Add or change a related_name argument to the definition for 'seminar.Resitel.osoba' or 'seminar.Prijemce.osoba'. | 			HINT: Add or change a related_name argument to the definition for 'seminar.Resitel.osoba' or 'seminar.Prijemce.osoba'. | ||||||
| 	Snadné řešení: dočasné related names mít unikátní. Stejně to nikoho nezajímá. | 	Snadné řešení: dočasné related names mít unikátní. Stejně to nikoho nezajímá. | ||||||
| 	!! Zkontrolovat, že všechno má nastavenou db_table (jinak se to potom pokusí vybastlit jméno tabulky podle aplikace…) | 	!! Zkontrolovat, že všechno má nastavenou db_table (jinak se to potom pokusí vybastlit jméno tabulky podle aplikace…) | ||||||
|  | 	Pro tip: related names nejsou součástí DB schématu, takže když se tohle opraví později (typicky při create spadne makemigrations), nevadí to a nemělo by být potřeba měnit migrace). | ||||||
|  | 	Pro multi-table inheritance je potřeba explicitně přidat 1to1Field s parent_link=True (<https://docs.djangoproject.com/en/5.0/topics/db/models/#specifying-the-parent-link-field>) | ||||||
|  | 		Je potřeba to udělat správně (třeba nemít FK), migrace potřeba není, protože je to stejně unmanaged… | ||||||
| 
 | 
 | ||||||
| makemigrations, bez úprav | makemigrations, bez úprav | ||||||
| migrate? | migrate? | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue