débug op view
This commit is contained in:
@@ -1,8 +1,6 @@
|
|||||||
# Generated by Django 4.0 on 2022-03-06 19:55
|
# Generated by Django 4.0 on 2022-01-31 15:05
|
||||||
|
|
||||||
import django.core.validators
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
@@ -10,7 +8,6 @@ class Migration(migrations.Migration):
|
|||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('auth', '0012_alter_user_first_name_max_length'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
@@ -18,21 +15,14 @@ class Migration(migrations.Migration):
|
|||||||
name='Collabs_hour',
|
name='Collabs_hour',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('userName', models.CharField(max_length=100, verbose_name='Auteur')),
|
('userName', models.CharField(max_length=100, verbose_name="Nom d'utilisateur")),
|
||||||
('nHour', models.PositiveIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(23)], verbose_name='Heures')),
|
('collab', models.CharField(max_length=10, verbose_name='Collaborateur')),
|
||||||
('nMinutes', models.PositiveIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(60)], verbose_name='Minutes')),
|
('nHour', models.IntegerField(default=0, verbose_name='Heure')),
|
||||||
('sRemarques', models.TextField(blank=True, verbose_name='Remarques')),
|
('nMinutes', models.IntegerField(default=0, verbose_name='Minutes')),
|
||||||
('bNoticed', models.BooleanField(blank=True, default=False, verbose_name='Vérifiée')),
|
('sRemarques', models.TextField(verbose_name='Remarques')),
|
||||||
('dtDate', models.DateField(verbose_name='Date')),
|
('bNoticed', models.BooleanField(default=0, verbose_name='Pris en compte')),
|
||||||
('sBases', models.CharField(choices=[('1', 'Monthey'), ('2', 'Uvrier')], default=1, max_length=1, verbose_name='Employé de la base de')),
|
|
||||||
('dtUpdate', models.DateTimeField(auto_now=True, verbose_name='Date de modification')),
|
('dtUpdate', models.DateTimeField(auto_now=True, verbose_name='Date de modification')),
|
||||||
('dtCreated', models.DateTimeField(auto_now_add=True, verbose_name='Date de création')),
|
('dtCreated', models.DateTimeField(auto_now_add=True)),
|
||||||
('user', models.ForeignKey(default=0, on_delete=django.db.models.deletion.DO_NOTHING, to='auth.user', verbose_name='Collaborateur')),
|
|
||||||
],
|
],
|
||||||
options={
|
|
||||||
'verbose_name': 'heure suplémentaire',
|
|
||||||
'verbose_name_plural': 'heures suplémentaires',
|
|
||||||
'permissions': (('can_notice', 'Peut noter comme traitée'),),
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
@@ -1,28 +0,0 @@
|
|||||||
# Generated by Django 4.0 on 2022-01-31 15:05
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
initial = True
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Collabs_hour',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('userName', models.CharField(max_length=100, verbose_name="Nom d'utilisateur")),
|
|
||||||
('collab', models.CharField(max_length=10, verbose_name='Collaborateur')),
|
|
||||||
('nHour', models.IntegerField(default=0, verbose_name='Heure')),
|
|
||||||
('nMinutes', models.IntegerField(default=0, verbose_name='Minutes')),
|
|
||||||
('sRemarques', models.TextField(verbose_name='Remarques')),
|
|
||||||
('bNoticed', models.BooleanField(default=0, verbose_name='Pris en compte')),
|
|
||||||
('dtUpdate', models.DateTimeField(auto_now=True, verbose_name='Date de modification')),
|
|
||||||
('dtCreated', models.DateTimeField(auto_now_add=True)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
38
collabs/migrations_prod/0001_initial.py
Normal file
38
collabs/migrations_prod/0001_initial.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-03-06 19:55
|
||||||
|
|
||||||
|
import django.core.validators
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auth', '0012_alter_user_first_name_max_length'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Collabs_hour',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('userName', models.CharField(max_length=100, verbose_name='Auteur')),
|
||||||
|
('nHour', models.PositiveIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(23)], verbose_name='Heures')),
|
||||||
|
('nMinutes', models.PositiveIntegerField(default=0, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(60)], verbose_name='Minutes')),
|
||||||
|
('sRemarques', models.TextField(blank=True, verbose_name='Remarques')),
|
||||||
|
('bNoticed', models.BooleanField(blank=True, default=False, verbose_name='Vérifiée')),
|
||||||
|
('dtDate', models.DateField(verbose_name='Date')),
|
||||||
|
('sBases', models.CharField(choices=[('1', 'Monthey'), ('2', 'Uvrier')], default=1, max_length=1, verbose_name='Employé de la base de')),
|
||||||
|
('dtUpdate', models.DateTimeField(auto_now=True, verbose_name='Date de modification')),
|
||||||
|
('dtCreated', models.DateTimeField(auto_now_add=True, verbose_name='Date de création')),
|
||||||
|
('user', models.ForeignKey(default=0, on_delete=django.db.models.deletion.DO_NOTHING, to='auth.user', verbose_name='Collaborateur')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'heure suplémentaire',
|
||||||
|
'verbose_name_plural': 'heures suplémentaires',
|
||||||
|
'permissions': (('can_notice', 'Peut noter comme traitée'),),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
BIN
mycaldav/last_sync_config.bin
Normal file
BIN
mycaldav/last_sync_config.bin
Normal file
Binary file not shown.
@@ -1,5 +1,10 @@
|
|||||||
from datetime import datetime, timedelta, time
|
from datetime import datetime, timedelta, time
|
||||||
import datetime as Datetime
|
import datetime as Datetime
|
||||||
|
import pickle
|
||||||
|
import os
|
||||||
|
from dateutil.relativedelta import relativedelta
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
import urllib.request
|
import urllib.request
|
||||||
@@ -30,7 +35,7 @@ class cls_caldav():
|
|||||||
def sort_array(self):
|
def sort_array(self):
|
||||||
self.items.sort(key=lambda x: x.dtstamp, reverse=False)
|
self.items.sort(key=lambda x: x.dtstamp, reverse=False)
|
||||||
|
|
||||||
def get_caldav_data(self,periode=1):
|
def get_caldav_data(self,periode=1,calendar=None):
|
||||||
ctx = ssl.create_default_context()
|
ctx = ssl.create_default_context()
|
||||||
ctx.check_hostname = False
|
ctx.check_hostname = False
|
||||||
ctx.verify_mode = ssl.CERT_NONE
|
ctx.verify_mode = ssl.CERT_NONE
|
||||||
@@ -96,8 +101,13 @@ class cls_caldav():
|
|||||||
|
|
||||||
class cls_caldav_client():
|
class cls_caldav_client():
|
||||||
caldav_url = "https://sync.infomaniak.com"
|
caldav_url = "https://sync.infomaniak.com"
|
||||||
caldav_user = 'SC01066'
|
#caldav_user = 'SC01066' #ambulanciers@ambulance-clerc.ch
|
||||||
caldav_password = "mc144*1870CLERC"
|
#caldav_password = "mc144*1870CLERC"
|
||||||
|
|
||||||
|
caldav_user = 'AA01593' #agenda@ambulance-clerc.ch
|
||||||
|
caldav_password = "Agendamc144"
|
||||||
|
|
||||||
|
caldav_agenda_config_url = "https://sync.infomaniak.com/calendars/AA01593/29d5c8d0-9b86-4d45-bc2b-13585a2e78f8?export"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -105,11 +115,35 @@ class cls_caldav_client():
|
|||||||
self.client = caldav.DAVClient(url=self.caldav_url, username=self.caldav_user, password=self.caldav_password)
|
self.client = caldav.DAVClient(url=self.caldav_url, username=self.caldav_user, password=self.caldav_password)
|
||||||
self.data = self.client.principal()
|
self.data = self.client.principal()
|
||||||
|
|
||||||
self.m38 = self.data.calendar(name="M38")
|
for cal in self.data.calendars():
|
||||||
self.m37 = self.data.calendar(name="M37")
|
print(f"name: {cal.name}({cal.url})")
|
||||||
self.clear_all_events_by_Date(self.m38)
|
|
||||||
self.add_event_in_calandar(self.m38)
|
self.a_task = self.data.calendar(name="Tâche")
|
||||||
self.add_event_in_calandar(self.m37)
|
|
||||||
|
|
||||||
|
if datetime.today().day == 29:
|
||||||
|
try:
|
||||||
|
with open(os.path.join("mycaldav", "last_sync_config.bin"), "rb") as file:
|
||||||
|
array = pickle.load(file)
|
||||||
|
except:
|
||||||
|
array = {"year": 0, "month": 0}
|
||||||
|
print("Erreur lecture fichier débiteur")
|
||||||
|
|
||||||
|
if array["month"] == datetime.now().month:
|
||||||
|
if array["year"] == datetime.now().year:
|
||||||
|
print("pas de copy, sync déjà fait")
|
||||||
|
else:
|
||||||
|
self.get_caldav_data(self.a_task)
|
||||||
|
else:
|
||||||
|
self.get_caldav_data(self.a_task)
|
||||||
|
self.clear_all_events_by_Date(self.a_task)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def add_event_in_calandar(self, calandar):
|
def add_event_in_calandar(self, calandar):
|
||||||
@@ -117,9 +151,53 @@ class cls_caldav_client():
|
|||||||
dtstart=datetime(2022, 6, 30, 12),
|
dtstart=datetime(2022, 6, 30, 12),
|
||||||
dtend=datetime(2022, 6, 30, 13),
|
dtend=datetime(2022, 6, 30, 13),
|
||||||
summary="Do the needful",
|
summary="Do the needful",
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def get_caldav_data(self, calandar=None):
|
||||||
|
ctx = ssl.create_default_context()
|
||||||
|
ctx.check_hostname = False
|
||||||
|
ctx.verify_mode = ssl.CERT_NONE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
o_url = urllib.request.urlopen(self.caldav_agenda_config_url, context=ctx)
|
||||||
|
data = o_url.read()
|
||||||
|
o_url.close()
|
||||||
|
|
||||||
|
now = f"01.{datetime.now().month}.{datetime.now().year}"
|
||||||
|
|
||||||
|
|
||||||
|
next_month = datetime.strptime(f"1.{datetime.today().month}.{datetime.today().year}","%d.%m.%Y") + relativedelta(months=1) - relativedelta(days=1)
|
||||||
|
next_month = (next_month.year, next_month.month, next_month.day)
|
||||||
|
|
||||||
|
today = (datetime.now().year, datetime.now().month, 1)
|
||||||
|
print(f"today:{today}")
|
||||||
|
print(f"next:{next_month}")
|
||||||
|
events = None
|
||||||
|
events = recurring_ical_events.of(Calendar.from_ical(data)).between(today, next_month)
|
||||||
|
cur_events = calandar.date_search(start=datetime(today[0],today[1],today[2]), end=datetime(next_month[0],next_month[1],next_month[2]), expand=True)
|
||||||
|
|
||||||
|
for event in events:
|
||||||
|
print(f"copy de l'événement: {event['SUMMARY']}")
|
||||||
|
|
||||||
|
|
||||||
|
my_event = calandar.save_event(
|
||||||
|
dtstart=event["DTSTART"].dt,
|
||||||
|
dtend=event["DTEND"].dt,
|
||||||
|
summary= event["SUMMARY"],
|
||||||
|
description=event["DESCRIPTION"],
|
||||||
|
)
|
||||||
|
|
||||||
|
with open(os.path.join("mycaldav", "last_sync_config.bin"), "wb") as file:
|
||||||
|
array = {"year":datetime.now().year, "month":datetime.now().month}
|
||||||
|
pickle.dump(array, file)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def clear_all_events_by_Date(self, calandar):
|
def clear_all_events_by_Date(self, calandar):
|
||||||
events = calandar.date_search(start=datetime(2022, 6, 30), end=datetime(2022, 7, 1), expand=True)
|
events = calandar.date_search(start=datetime(2000, 1, 1), end=datetime.now() - relativedelta(years=1), expand=True)
|
||||||
for e in events:
|
for e in events:
|
||||||
e.delete()
|
e.delete()
|
||||||
print(events)
|
print(events)
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<table style="font-family: 'Source Sans Pro', sans-serif; font-size: 12pt;">
|
<table style="font-family: 'Source Sans Pro', sans-serif; font-size: 12pt;">
|
||||||
<td style="font-weight: bold;padding-bottom: 5px; text-align: center;" colspan="2">Jour</td>
|
<td style="font-weight: bold;padding-bottom: 5px; text-align: center;" colspan="2">Jour</td>
|
||||||
{% for task in latest_task_list %}
|
{% for task in latest_task_list %}
|
||||||
<tr><td style="font-weight: bold;vertical-align: top;" width="75" >{{task.key}}</td> <td style="{% if task.done %}text-decoration:line-through{% endif %}">{{ task.name }}<br>{{task.desc}}</td></tr>
|
<tr><td style="font-weight: bold;vertical-align: top;" width="75" >{{task.key}}</td> <td style="{% if task.done %}text-decoration:line-through{% endif %}">{{ task.name }}<br>{{task.desc}}{{task.dtstart}}</td></tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<tr><td> </td></tr>
|
<tr><td> </td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@@ -16,6 +16,7 @@ def view_task_caldav(request):
|
|||||||
o_caldav.get_caldav_data()
|
o_caldav.get_caldav_data()
|
||||||
template = loader.get_template("task/task.html")
|
template = loader.get_template("task/task.html")
|
||||||
context = {'latest_task_list':o_caldav.day, 'night_task_list': o_caldav.night}
|
context = {'latest_task_list':o_caldav.day, 'night_task_list': o_caldav.night}
|
||||||
|
myClient = cls_caldav_client()
|
||||||
return HttpResponse(template.render(context,request))
|
return HttpResponse(template.render(context,request))
|
||||||
|
|
||||||
@xframe_options_exempt
|
@xframe_options_exempt
|
||||||
@@ -55,4 +56,5 @@ def view_dayly_caldav(request):
|
|||||||
myClient = cls_caldav_client()
|
myClient = cls_caldav_client()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return HttpResponse(ret)
|
return HttpResponse(ret)
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
from polls.models import Question, Choice
|
from polls.models import Question, Choice
|
||||||
from vehicles.models import *
|
|
||||||
|
|
||||||
|
|
||||||
class ChoiceInline(admin.TabularInline):
|
class ChoiceInline(admin.TabularInline):
|
||||||
@@ -19,4 +19,4 @@ class QuestionAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
admin.site.register(Question, QuestionAdmin)
|
admin.site.register(Question, QuestionAdmin)
|
||||||
admin.site.register(Choice)
|
admin.site.register(Choice)
|
||||||
admin.site.register(Vehicles)
|
|
||||||
|
@@ -1,3 +1,41 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
# Register your models here.
|
from vehicles.models import *
|
||||||
|
|
||||||
|
class _vhc_admin(admin.ModelAdmin):
|
||||||
|
|
||||||
|
list_display = ('sName', 'nBases', 'nStatus')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
search_fields = ['sName']
|
||||||
|
|
||||||
|
|
||||||
|
#fields = ["sBases", "dtDate",'type', "user","nHour", "nMinutes", "sRemarques"]
|
||||||
|
|
||||||
|
class _vhc_infos_admin(admin.ModelAdmin):
|
||||||
|
|
||||||
|
#list_display = ('Vehicle', 'nType', 'sTitle','sDesc')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
search_fields = ['sName']
|
||||||
|
|
||||||
|
|
||||||
|
#fields = ["Vehicle", "nType",'sTitle', "sDesc","dtStart", "dtEnd", "Author"]
|
||||||
|
fieldsets = (
|
||||||
|
('Informations liées au véhicule', {
|
||||||
|
'fields': ('Vehicle',)
|
||||||
|
}),
|
||||||
|
('Information sur le message', {
|
||||||
|
'fields': ('nType','sTitle','sDesc')
|
||||||
|
}),
|
||||||
|
('Information supplémentaires et validité', {
|
||||||
|
'fields': ("dtStart","dtEnd", 'Author')
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(vehicles_infos, _vhc_infos_admin)
|
||||||
|
admin.site.register(vehicles, _vhc_admin)
|
||||||
|
@@ -4,3 +4,4 @@ from django.apps import AppConfig
|
|||||||
class VehiclesConfig(AppConfig):
|
class VehiclesConfig(AppConfig):
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
name = 'vehicles'
|
name = 'vehicles'
|
||||||
|
verbose_name = "Clerc véhicule"
|
||||||
|
@@ -0,0 +1,28 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 10:37
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('vehicles', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='vehicles',
|
||||||
|
name='nBases',
|
||||||
|
field=models.CharField(choices=[('1', 'Monthey'), ('2', 'Uvrier')], default=1, max_length=1, verbose_name='Basé à '),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='vehicles',
|
||||||
|
name='nStatus',
|
||||||
|
field=models.CharField(choices=[('1', 'Opérationnel'), ('2', 'Hors Service'), ('3', 'Réserve'), ('4', 'Utilisation altérée')], default=1, max_length=1, verbose_name='Statut'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='vhc_problems',
|
||||||
|
name='nType',
|
||||||
|
field=models.CharField(choices=[('1', 'Technique'), ('2', 'Matériel'), ('3', 'Opérationnel')], default=1, max_length=1, verbose_name='Type'),
|
||||||
|
),
|
||||||
|
]
|
@@ -0,0 +1,22 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 10:51
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('vehicles', '0002_vehicles_nbases_vehicles_nstatus_vhc_problems_ntype'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='vehicles',
|
||||||
|
name='bEnabled',
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles',
|
||||||
|
name='sName',
|
||||||
|
field=models.CharField(max_length=250, verbose_name='Indicatif'),
|
||||||
|
),
|
||||||
|
]
|
17
vehicles/migrations/0004_alter_vehicles_options.py
Normal file
17
vehicles/migrations/0004_alter_vehicles_options.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 10:58
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('vehicles', '0003_remove_vehicles_benabled_alter_vehicles_sname'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='vehicles',
|
||||||
|
options={'verbose_name': 'véhicule', 'verbose_name_plural': 'véhicules'},
|
||||||
|
),
|
||||||
|
]
|
18
vehicles/migrations/0005_rename_vhc_problems_vhc_infos.py
Normal file
18
vehicles/migrations/0005_rename_vhc_problems_vhc_infos.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 13:11
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auth', '0012_alter_user_first_name_max_length'),
|
||||||
|
('vehicles', '0004_alter_vehicles_options'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RenameModel(
|
||||||
|
old_name='Vhc_problems',
|
||||||
|
new_name='Vhc_infos',
|
||||||
|
),
|
||||||
|
]
|
18
vehicles/migrations/0006_rename_vhc_infos_vehicles_infos.py
Normal file
18
vehicles/migrations/0006_rename_vhc_infos_vehicles_infos.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 16:13
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auth', '0012_alter_user_first_name_max_length'),
|
||||||
|
('vehicles', '0005_rename_vhc_problems_vhc_infos'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RenameModel(
|
||||||
|
old_name='Vhc_infos',
|
||||||
|
new_name='Vehicles_infos',
|
||||||
|
),
|
||||||
|
]
|
17
vehicles/migrations/0007_alter_vehicles_infos_options.py
Normal file
17
vehicles/migrations/0007_alter_vehicles_infos_options.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 18:19
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('vehicles', '0006_rename_vhc_infos_vehicles_infos'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='vehicles_infos',
|
||||||
|
options={'verbose_name': 'véhicule info', 'verbose_name_plural': 'véhicule infos'},
|
||||||
|
),
|
||||||
|
]
|
@@ -0,0 +1,65 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 18:59
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auth', '0012_alter_user_first_name_max_length'),
|
||||||
|
('vehicles', '0007_alter_vehicles_infos_options'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='Author',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='auth.user', verbose_name='Auteur'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='Vehicle',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vehicles.vehicles', verbose_name='Véhicule'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='bEnabled',
|
||||||
|
field=models.BooleanField(default=1, verbose_name='Actif'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='dtCreated',
|
||||||
|
field=models.DateTimeField(auto_now_add=True, verbose_name='date published'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='dtEnd',
|
||||||
|
field=models.DateField(blank=True, verbose_name='Date de fin'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='dtStart',
|
||||||
|
field=models.DateField(verbose_name='Date de début'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='dtUpdated',
|
||||||
|
field=models.DateTimeField(auto_now=True, verbose_name='date updated'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='sAuthor',
|
||||||
|
field=models.CharField(max_length=120, verbose_name='auteur string'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='sDesc',
|
||||||
|
field=models.TextField(verbose_name='Description'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='sTitle',
|
||||||
|
field=models.CharField(max_length=250, verbose_name='Titre'),
|
||||||
|
),
|
||||||
|
]
|
18
vehicles/migrations/0009_alter_vehicles_infos_dtend.py
Normal file
18
vehicles/migrations/0009_alter_vehicles_infos_dtend.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.0 on 2022-07-04 19:02
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('vehicles', '0008_alter_vehicles_infos_author_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='vehicles_infos',
|
||||||
|
name='dtEnd',
|
||||||
|
field=models.DateField(blank=True, null=True, verbose_name='Date de fin'),
|
||||||
|
),
|
||||||
|
]
|
@@ -4,20 +4,53 @@ from django.db import models
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
|
BASES_CHOICES = [
|
||||||
|
('1', 'Monthey'),
|
||||||
|
('2', 'Uvrier'),
|
||||||
|
]
|
||||||
|
STATUS_CHOICES = [
|
||||||
|
('1', 'Opérationnel'),
|
||||||
|
('2', 'Hors Service'),
|
||||||
|
('3', 'Réserve'),
|
||||||
|
('4', 'Utilisation altérée'),
|
||||||
|
]
|
||||||
|
TYPES_CHOICES = [
|
||||||
|
('1', 'Technique'),
|
||||||
|
('2', 'Matériel'),
|
||||||
|
('3', 'Opérationnel'),
|
||||||
|
]
|
||||||
|
|
||||||
class Vehicles(models.Model):
|
|
||||||
sName = models.CharField (max_length=250)
|
|
||||||
bEnabled = models.BooleanField( default=0 )
|
|
||||||
|
|
||||||
class Vhc_problems(models.Model):
|
class vehicles(models.Model):
|
||||||
Vehicle = models.ForeignKey( Vehicles, on_delete=models.CASCADE)
|
sName = models.CharField("Indicatif", max_length=250)
|
||||||
sTitle = models.CharField( max_length=250)
|
nBases = models.CharField('Basé à ', max_length=1, choices=BASES_CHOICES, default=1)
|
||||||
sDesc = models.TextField()
|
nStatus = models.CharField('Statut', max_length=1, choices=STATUS_CHOICES, default=1)
|
||||||
bEnabled = models.BooleanField( default=1)
|
|
||||||
dtStart = models.DateTimeField()
|
|
||||||
dtEnd = models.DateTimeField()
|
|
||||||
sAuthor = models.CharField( max_length=120)
|
|
||||||
Author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING )
|
|
||||||
dtUpdated = models.DateTimeField('date updated')
|
|
||||||
dtCreated = models.DateTimeField('date published')
|
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.sName
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "véhicule"
|
||||||
|
verbose_name_plural = "véhicules"
|
||||||
|
|
||||||
|
|
||||||
|
class vehicles_infos(models.Model):
|
||||||
|
Vehicle = models.ForeignKey(vehicles, on_delete=models.CASCADE, verbose_name="Véhicule")
|
||||||
|
nType = models.CharField('Type', max_length=1, choices=TYPES_CHOICES, default=1)
|
||||||
|
sTitle = models.CharField("Titre",max_length=250)
|
||||||
|
sDesc = models.TextField("Description")
|
||||||
|
bEnabled = models.BooleanField("Actif",default=1)
|
||||||
|
|
||||||
|
dtStart = models.DateField("Date de début")
|
||||||
|
dtEnd = models.DateField("Date de fin", blank=True, null=True)
|
||||||
|
sAuthor = models.CharField("auteur string",max_length=120)
|
||||||
|
Author = models.ForeignKey(settings.AUTH_USER_MODEL,verbose_name="Auteur", on_delete=models.DO_NOTHING)
|
||||||
|
dtUpdated = models.DateTimeField('date updated', auto_now=True)
|
||||||
|
dtCreated = models.DateTimeField('date published', auto_now_add=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.sTitle
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "véhicule info"
|
||||||
|
verbose_name_plural = "véhicule infos"
|
||||||
|
Reference in New Issue
Block a user