HPNL 10 месяцев назад
Родитель
Сommit
3c775fe8b3
5 измененных файлов с 72 добавлено и 0 удалено
  1. 2 0
      .gitignore
  2. 7 0
      admin.py
  3. 21 0
      migrations/0014_fichier.py
  4. 24 0
      migrations/0015_auto_20240119_1346.py
  5. 18 0
      models.py

+ 2 - 0
.gitignore

@@ -25,3 +25,5 @@ migrations/__pycache__/0011_auto_20240118_2016.cpython-312.pyc
 migrations/__pycache__/0011_alter_page_p_menu_parent.cpython-312.pyc
 migrations/__pycache__/0012_page_p_menu_est_parent.cpython-312.pyc
 migrations/__pycache__/0013_alter_page_p_menu_parent.cpython-312.pyc
+migrations/__pycache__/0014_fichier.cpython-312.pyc
+migrations/__pycache__/0015_auto_20240119_1346.cpython-312.pyc

+ 7 - 0
admin.py

@@ -56,4 +56,11 @@ class Contact_Admin(admin.ModelAdmin):
 
 admin.site.register(Contact, Contact_Admin)
 
+class Fichier_Admin(admin.ModelAdmin):
+	list_display = ('f_nom', 'f_date',)
+	search_fields = ['f_nom',]
+	list_filter = ('f_date',)
+
+admin.site.register(Fichier, Fichier_Admin)
+
 

+ 21 - 0
migrations/0014_fichier.py

@@ -0,0 +1,21 @@
+# Generated by Django 3.2.23 on 2024-01-19 13:40
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0013_alter_page_p_menu_parent'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Fichier',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('f_nom', models.CharField(blank=True, editable=False, max_length=128, verbose_name='Nom du fichier')),
+                ('f_fichier', models.FileField(upload_to='static/uploads/', verbose_name='Fichier')),
+            ],
+        ),
+    ]

+ 24 - 0
migrations/0015_auto_20240119_1346.py

@@ -0,0 +1,24 @@
+# Generated by Django 3.2.23 on 2024-01-19 13:46
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0014_fichier'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='fichier',
+            options={'ordering': ['f_date'], 'verbose_name': 'Stocage de fichiers', 'verbose_name_plural': 'Stocage de fichiers'},
+        ),
+        migrations.AddField(
+            model_name='fichier',
+            name='f_date',
+            field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now, verbose_name='Date'),
+            preserve_default=False,
+        ),
+    ]

+ 18 - 0
models.py

@@ -49,6 +49,24 @@ class Data (models.Model) : #stocage de donnée dynamique
 		return self.d_titre
 	def __str__(self):
 		return '%s' % (self.d_titre)
+	
+class Fichier (models.Model) : # Upload de fichier pour réutilisation dans les pages
+	f_nom = models.CharField("Nom du fichier", max_length = 128, blank = True, editable = False)
+	f_date = models.DateTimeField("Date", auto_now_add=True)
+	f_fichier = models.FileField("Fichier", upload_to='static/uploads/')
+
+	class Meta :
+		verbose_name = 'Stocage de fichiers'
+		verbose_name_plural = 'Stocage de fichiers'
+		ordering = ['f_date']
+
+	def save(self, *args, **kwargs) :
+		self.f_nom = slugify(self.f_fichier.name)
+		super(Fichier, self).save(*args, **kwargs)
+	def __unicode__(self):
+		return self.f_nom
+	def __str__(self):
+		return '%s' % (self.f_nom)
 
 class Page (models.Model) : #Architecture pour les pages static est dynamique
 	p_titre = models.CharField("Titre", max_length = 128, unique = True)