From 72f28d185c5e69e1509cf0addbd5a4afe4c00014 Mon Sep 17 00:00:00 2001 From: Evarin Date: Sun, 17 Jan 2021 12:14:11 +0100 Subject: [PATCH] Upgrade django2.2 --- .../migrations/0003_auto_20210117_1208.py | 45 +++++++++++++++++++ avisstage/models.py | 15 ++++--- avisstage/urls.py | 37 +++++++-------- experiENS/settings_base.py | 6 +-- experiENS/settings_dev.py | 4 +- experiENS/urls.py | 14 +++--- requirements.txt | 2 +- 7 files changed, 86 insertions(+), 37 deletions(-) create mode 100644 avisstage/migrations/0003_auto_20210117_1208.py diff --git a/avisstage/migrations/0003_auto_20210117_1208.py b/avisstage/migrations/0003_auto_20210117_1208.py new file mode 100644 index 0000000..307760c --- /dev/null +++ b/avisstage/migrations/0003_auto_20210117_1208.py @@ -0,0 +1,45 @@ +# Generated by Django 2.2.17 on 2021-01-17 11:08 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('avisstage', '0002_auto_20171002_2243'), + ] + + operations = [ + migrations.AlterField( + model_name='lieu', + name='pays', + field=models.CharField(choices=[('AF', 'Afghanistan'), ('AL', 'Albanie'), ('AQ', 'Antarctique'), ('DZ', 'Algérie'), ('AS', 'Samoa Américaines'), ('AD', 'Andorre'), ('AO', 'Angola'), ('AG', 'Antigua-et-Barbuda'), ('AZ', 'Azerbaïdjan'), ('AR', 'Argentine'), ('AU', 'Australie'), ('AT', 'Autriche'), ('BS', 'Bahamas'), ('BH', 'Bahreïn'), ('BD', 'Bangladesh'), ('AM', 'Arménie'), ('BB', 'Barbade'), ('BE', 'Belgique'), ('BM', 'Bermudes'), ('BT', 'Bhoutan'), ('BO', 'Bolivie'), ('BA', 'Bosnie-Herzégovine'), ('BW', 'Botswana'), ('BV', 'Île Bouvet'), ('BR', 'Brésil'), ('BZ', 'Belize'), ('IO', "Territoire Britannique de l'Océan Indien"), ('SB', 'Îles Salomon'), ('VG', 'Îles Vierges Britanniques'), ('BN', 'Brunéi Darussalam'), ('BG', 'Bulgarie'), ('MM', 'Myanmar'), ('BI', 'Burundi'), ('BY', 'Bélarus'), ('KH', 'Cambodge'), ('CM', 'Cameroun'), ('CA', 'Canada'), ('CV', 'Cap-vert'), ('KY', 'Îles Caïmanes'), ('CF', 'République Centrafricaine'), ('LK', 'Sri Lanka'), ('TD', 'Tchad'), ('CL', 'Chili'), ('CN', 'Chine'), ('TW', 'Taïwan'), ('CX', 'Île Christmas'), ('CC', 'Îles Cocos (Keeling)'), ('CO', 'Colombie'), ('KM', 'Comores'), ('YT', 'Mayotte'), ('CG', 'République du Congo'), ('CD', 'République Démocratique du Congo'), ('CK', 'Îles Cook'), ('CR', 'Costa Rica'), ('HR', 'Croatie'), ('CU', 'Cuba'), ('CY', 'Chypre'), ('CZ', 'République Tchèque'), ('BJ', 'Bénin'), ('DK', 'Danemark'), ('DM', 'Dominique'), ('DO', 'République Dominicaine'), ('EC', 'Équateur'), ('SV', 'El Salvador'), ('GQ', 'Guinée Équatoriale'), ('ET', 'Éthiopie'), ('ER', 'Érythrée'), ('EE', 'Estonie'), ('FO', 'Îles Féroé'), ('FK', 'Îles (malvinas) Falkland'), ('GS', 'Géorgie du Sud et les Îles Sandwich du Sud'), ('FJ', 'Fidji'), ('FI', 'Finlande'), ('AX', 'Îles Åland'), ('FR', 'France'), ('GF', 'Guyane Française'), ('PF', 'Polynésie Française'), ('TF', 'Terres Australes Françaises'), ('DJ', 'Djibouti'), ('GA', 'Gabon'), ('GE', 'Géorgie'), ('GM', 'Gambie'), ('PS', 'Territoire Palestinien Occupé'), ('DE', 'Allemagne'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('KI', 'Kiribati'), ('GR', 'Grèce'), ('GL', 'Groenland'), ('GD', 'Grenade'), ('GP', 'Guadeloupe'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('GN', 'Guinée'), ('GY', 'Guyana'), ('HT', 'Haïti'), ('HM', 'Îles Heard et Mcdonald'), ('VA', 'Saint-Siège (état de la Cité du Vatican)'), ('HN', 'Honduras'), ('HK', 'Hong-Kong'), ('HU', 'Hongrie'), ('IS', 'Islande'), ('IN', 'Inde'), ('ID', 'Indonésie'), ('IR', "République Islamique d'Iran"), ('IQ', 'Iraq'), ('IE', 'Irlande'), ('IL', 'Israël'), ('IT', 'Italie'), ('CI', "Côte d'Ivoire"), ('JM', 'Jamaïque'), ('JP', 'Japon'), ('KZ', 'Kazakhstan'), ('JO', 'Jordanie'), ('KE', 'Kenya'), ('KP', 'République Populaire Démocratique de Corée'), ('KR', 'République de Corée'), ('KW', 'Koweït'), ('KG', 'Kirghizistan'), ('LA', 'République Démocratique Populaire Lao'), ('LB', 'Liban'), ('LS', 'Lesotho'), ('LV', 'Lettonie'), ('LR', 'Libéria'), ('LY', 'Jamahiriya Arabe Libyenne'), ('LI', 'Liechtenstein'), ('LT', 'Lituanie'), ('LU', 'Luxembourg'), ('MO', 'Macao'), ('MG', 'Madagascar'), ('MW', 'Malawi'), ('MY', 'Malaisie'), ('MV', 'Maldives'), ('ML', 'Mali'), ('MT', 'Malte'), ('MQ', 'Martinique'), ('MR', 'Mauritanie'), ('MU', 'Maurice'), ('MX', 'Mexique'), ('MC', 'Monaco'), ('MN', 'Mongolie'), ('MD', 'République de Moldova'), ('MS', 'Montserrat'), ('MA', 'Maroc'), ('MZ', 'Mozambique'), ('OM', 'Oman'), ('NA', 'Namibie'), ('NR', 'Nauru'), ('NP', 'Népal'), ('NL', 'Pays-Bas'), ('AN', 'Antilles Néerlandaises'), ('AW', 'Aruba'), ('NC', 'Nouvelle-Calédonie'), ('VU', 'Vanuatu'), ('NZ', 'Nouvelle-Zélande'), ('NI', 'Nicaragua'), ('NE', 'Niger'), ('NG', 'Nigéria'), ('NU', 'Niué'), ('NF', 'Île Norfolk'), ('NO', 'Norvège'), ('MP', 'Îles Mariannes du Nord'), ('UM', 'Îles Mineures Éloignées des États-Unis'), ('FM', 'États Fédérés de Micronésie'), ('MH', 'Îles Marshall'), ('PW', 'Palaos'), ('PK', 'Pakistan'), ('PA', 'Panama'), ('PG', 'Papouasie-Nouvelle-Guinée'), ('PY', 'Paraguay'), ('PE', 'Pérou'), ('PH', 'Philippines'), ('PN', 'Pitcairn'), ('PL', 'Pologne'), ('PT', 'Portugal'), ('GW', 'Guinée-Bissau'), ('TL', 'Timor-Leste'), ('PR', 'Porto Rico'), ('QA', 'Qatar'), ('RE', 'Réunion'), ('RO', 'Roumanie'), ('RU', 'Fédération de Russie'), ('RW', 'Rwanda'), ('SH', 'Sainte-Hélène'), ('KN', 'Saint-Kitts-et-Nevis'), ('AI', 'Anguilla'), ('LC', 'Sainte-Lucie'), ('PM', 'Saint-Pierre-et-Miquelon'), ('VC', 'Saint-Vincent-et-les Grenadines'), ('SM', 'Saint-Marin'), ('ST', 'Sao Tomé-et-Principe'), ('SA', 'Arabie Saoudite'), ('SN', 'Sénégal'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('SG', 'Singapour'), ('SK', 'Slovaquie'), ('VN', 'Viet Nam'), ('SI', 'Slovénie'), ('SO', 'Somalie'), ('ZA', 'Afrique du Sud'), ('ZW', 'Zimbabwe'), ('ES', 'Espagne'), ('EH', 'Sahara Occidental'), ('SD', 'Soudan'), ('SR', 'Suriname'), ('SJ', 'Svalbard etÎle Jan Mayen'), ('SZ', 'Swaziland'), ('SE', 'Suède'), ('CH', 'Suisse'), ('SY', 'République Arabe Syrienne'), ('TJ', 'Tadjikistan'), ('TH', 'Thaïlande'), ('TG', 'Togo'), ('TK', 'Tokelau'), ('TO', 'Tonga'), ('TT', 'Trinité-et-Tobago'), ('AE', 'Émirats Arabes Unis'), ('TN', 'Tunisie'), ('TR', 'Turquie'), ('TM', 'Turkménistan'), ('TC', 'Îles Turks et Caïques'), ('TV', 'Tuvalu'), ('UG', 'Ouganda'), ('UA', 'Ukraine'), ('MK', "L'ex-République Yougoslave de Macédoine"), ('EG', 'Égypte'), ('GB', 'Royaume-Uni'), ('IM', 'Île de Man'), ('TZ', 'République-Unie de Tanzanie'), ('US', 'États-Unis'), ('VI', 'Îles Vierges des États-Unis'), ('BF', 'Burkina Faso'), ('UY', 'Uruguay'), ('UZ', 'Ouzbékistan'), ('VE', 'Venezuela'), ('WF', 'Wallis et Futuna'), ('WS', 'Samoa'), ('YE', 'Yémen'), ('CS', 'Serbie-et-Monténégro'), ('ZM', 'Zambie')], max_length=2, verbose_name='Pays'), + ), + migrations.AlterField( + model_name='lieu', + name='type_lieu', + field=models.CharField(choices=[('universite', 'Université'), ('entreprise', 'Entreprise'), ('centrerecherche', 'Centre de recherche'), ('administration', 'Administration'), ('autre', 'Autre')], default='universite', max_length=15, verbose_name="Type de structure d'accueil"), + ), + migrations.AlterField( + model_name='normalien', + name='user', + field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='profil', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='stage', + name='auteur', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stages', to='avisstage.Normalien'), + ), + migrations.AlterField( + model_name='stage', + name='niveau_scol', + field=models.CharField(blank=True, choices=[('L3', 'Licence 3'), ('M1', 'Master 1'), ('M2', 'Master 2'), ('DOC', 'Pré-doctorat'), ('CST', 'Césure'), ('BLA', 'Année blanche'), ('VAC', 'Vacances scolaires'), ('MIT', 'Mi-temps en parallèle des études'), ('', 'Autre')], default='', max_length=3, verbose_name='Année de scolarité'), + ), + migrations.AlterField( + model_name='stage', + name='type_stage', + field=models.CharField(choices=[('Recherche :', (('recherche', 'Stage académique'), ('recherche_autre', 'Stage non-académique'), ('sejour_dri', 'Séjour de recherche DRI'))), ('Stage sans visée de recherche :', (('pro', 'Stage en entreprise'), ('admin', 'Stage en admin./ONG/orga. internationale'))), ('Enseignement :', (('lectorat', 'Lectorat DRI'), ('autre_teach', "Autre expérience d'enseignement"))), ('autre', 'Autre')], default='stage', max_length=31, verbose_name='Type'), + ), + ] diff --git a/avisstage/models.py b/avisstage/models.py index 4cbf780..595cbf4 100644 --- a/avisstage/models.py +++ b/avisstage/models.py @@ -30,7 +30,8 @@ import ldap # class Normalien(models.Model): - user = models.OneToOneField(User, related_name="profil") + user = models.OneToOneField(User, related_name="profil", + on_delete=models.SET_NULL, null=True) # Infos spécifiques nom = models.CharField(u"Nom complet", max_length=255, blank=True) @@ -121,7 +122,7 @@ class Lieu(models.Model): max_length=choices_length(PAYS_OPTIONS)) # Coordonnées - objects = geomodels.GeoManager() # Requis par GeoDjango + #objects = geomodels.GeoManager() # Requis par GeoDjango coord = geomodels.PointField(u"Coordonnées", geography=True, srid = 4326) @@ -163,7 +164,8 @@ class StageMatiere(models.Model): class Stage(models.Model): # Misc - auteur = models.ForeignKey(Normalien, related_name="stages") + auteur = models.ForeignKey(Normalien, related_name="stages", + on_delete=models.SET_NULL, null=True) public = models.BooleanField(u"Visible publiquement", default=False) date_creation = models.DateTimeField(u"Créé le", default=timezone.now) date_maj = models.DateTimeField(u"Mis à jour le", default=timezone.now) @@ -260,7 +262,8 @@ class Stage(models.Model): # class AvisStage(models.Model): - stage = models.OneToOneField(Stage, related_name="avis_stage") + stage = models.OneToOneField(Stage, related_name="avis_stage", + on_delete=models.CASCADE) chapo = models.TextField(u"En quelques mots", blank=True) avis_ambiance = RichTextField(u"L'ambiance de travail", blank=True) @@ -283,8 +286,8 @@ class AvisStage(models.Model): class AvisLieu(models.Model): - stage = models.ForeignKey(Stage) - lieu = models.ForeignKey(Lieu) + stage = models.ForeignKey(Stage, on_delete=models.CASCADE) + lieu = models.ForeignKey(Lieu, on_delete=models.CASCADE) order = models.IntegerField("Ordre", default=0) chapo = models.TextField(u"En quelques mots", blank=True) diff --git a/avisstage/urls.py b/avisstage/urls.py index 3c39700..94bab54 100644 --- a/avisstage/urls.py +++ b/avisstage/urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import include, url +from django.urls import include, path from . import views, api from tastypie.api import Api @@ -7,27 +7,28 @@ v1_api.register(api.LieuResource()) v1_api.register(api.StageResource()) v1_api.register(api.AuteurResource()) +app_name = "avisstage" urlpatterns = [ - url(r'^$', views.index, name='index'), - url(r'^perso/$', views.perso, name='perso'), - url(r'^faq/$', views.faq, name='faq'), - url(r'^stage/nouveau/$', views.manage_stage, name='stage_ajout'), - url(r'^stage/(?P\w+)/$', views.StageView.as_view(), name='stage'), - url(r'^stage/(?P\w+)/edit/$', views.manage_stage, name='stage_edit'), - url(r'^stage/(?P\w+)/publication/$', views.publier_stage, + path('', views.index, name='index'), + path('perso/', views.perso, name='perso'), + path('faq/', views.faq, name='faq'), + path('stage/nouveau/', views.manage_stage, name='stage_ajout'), + path('stage//', views.StageView.as_view(), name='stage'), + path('stage//edit/', views.manage_stage, name='stage_edit'), + path('stage//publication/', views.publier_stage, name='stage_publication'), - url(r'^403/archicubes/$', views.archicubes_interdits, + path('403/archicubes/', views.archicubes_interdits, name='403-archicubes'), - url(r'^lieu/save/$', views.save_lieu, name='lieu_ajout'), - url(r'^profil/show/(?P[\w@]+)/$', views.ProfilView.as_view(), + path('lieu/save/', views.save_lieu, name='lieu_ajout'), + path('profil/show//', views.ProfilView.as_view(), name='profil'), - url(r'^profil/edit/$', views.ProfilEdit.as_view(), name='profil_edit'), - url(r'^recherche/$', views.recherche, name='recherche'), - url(r'^recherche/resultats/$', views.recherche_resultats, + path('profil/edit/', views.ProfilEdit.as_view(), name='profil_edit'), + path('recherche/', views.recherche, name='recherche'), + path('recherche/resultats/', views.recherche_resultats, name='recherche_resultats'), - url(r'^recherche/items/$', views.stage_items, name='stage_items'), - url(r'^feedback/$', views.feedback, name='feedback'), - url(r'^moderation/$', views.statistiques, name='moderation'), - url(r'^api/', include(v1_api.urls)), + path('recherche/items/', views.stage_items, name='stage_items'), + path('feedback/', views.feedback, name='feedback'), + path('moderation/', views.statistiques, name='moderation'), + path('api/', include(v1_api.urls)), ] diff --git a/experiENS/settings_base.py b/experiENS/settings_base.py index 8e7f517..f1729cf 100644 --- a/experiENS/settings_base.py +++ b/experiENS/settings_base.py @@ -10,7 +10,7 @@ https://docs.djangoproject.com/en/1.7/ref/settings/ # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os -from django.core.urlresolvers import reverse_lazy +from django.urls import reverse_lazy from .secrets import SECRET_KEY, GOOGLE_API_KEY, MAPBOX_API_KEY @@ -53,12 +53,12 @@ INSTALLED_APPS = [ 'avisstage' ] -MIDDLEWARE_CLASSES = ( +MIDDLEWARE = ( + 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) diff --git a/experiENS/settings_dev.py b/experiENS/settings_dev.py index 295def3..e7fbc37 100644 --- a/experiENS/settings_dev.py +++ b/experiENS/settings_dev.py @@ -9,7 +9,7 @@ DATABASES = { } } -USE_DEBUG_TOOLBAR = True +USE_DEBUG_TOOLBAR = False if USE_DEBUG_TOOLBAR: INSTALLED_APPS += [ @@ -22,7 +22,7 @@ if USE_DEBUG_TOOLBAR: INTERNAL_IPS = ['127.0.0.1'] -SPATIALITE_LIBRARY_PATH = 'mod_spatialite' +SPATIALITE_LIBRARY_PATH = 'mod_spatialite.so' STATIC_ROOT = "/home/evarin/Bureau/experiENS/static/" diff --git a/experiENS/urls.py b/experiENS/urls.py index 91c6191..5fd072d 100644 --- a/experiENS/urls.py +++ b/experiENS/urls.py @@ -1,19 +1,19 @@ from django.conf import settings -from django.conf.urls import include, url +from django.urls import include, path from django.contrib import admin urlpatterns = [ - url(r'^', include('avisstage.urls', namespace='avisstage')), + path('', include('avisstage.urls')), - url(r'^account/', include('allauth_ens.urls')), + path('account/', include('allauth_ens.urls')), - url(r'^tinymce/', include('tinymce.urls')), - url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')), - url(r'^admin/', include(admin.site.urls)), + path('tinymce/', include('tinymce.urls')), + path('taggit_autosuggest/', include('taggit_autosuggest.urls')), + path('admin/', admin.site.urls), ] if settings.DEBUG: import debug_toolbar urlpatterns = [ - url(r'^__debug__/', include(debug_toolbar.urls)), + path('__debug__/', include(debug_toolbar.urls)), ] + urlpatterns diff --git a/requirements.txt b/requirements.txt index 08eceff..e6ee626 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -django==1.11.* +django==2.2.* django-cas-ng==3.5.* django-taggit==0.22.* python-ldap==3.0.*