mirror of
https://github.com/GFDRR/sms-lapli.git
synced 2026-10-26 17:35:19 +00:00
fix sms sending and receiving, according to the station convert to mm, log
This commit is contained in:
1 parent
2918e54604
commit
a4083a261e
5 files changed
+46
-159
No files matched your search
@@ -13,54 +13,32 @@ class Migration(migrations.Migration):
|
||||
migrations.CreateModel(
|
||||
name='Commune',
|
||||
fields=[
|
||||
<<<<<<< HEAD
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('commune', models.CharField(unique=True, max_length=45, verbose_name='Commune')),
|
||||
('description', models.TextField(max_length=100, blank=True, verbose_name='Description')),
|
||||
=======
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('commune', models.CharField(unique=True, max_length=45, verbose_name='Commune')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('commune', models.CharField(verbose_name='Commune', max_length=45, unique=True)),
|
||||
('description', models.TextField(max_length=100, verbose_name='Description', blank=True)),
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
('id_code', models.CharField(unique=True, max_length=7, verbose_name='Code')),
|
||||
('id_code', models.CharField(verbose_name='Code', max_length=7, unique=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Departement',
|
||||
fields=[
|
||||
<<<<<<< HEAD
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('departement', models.CharField(max_length=40, choices=[('Ouest', 'OUEST'), ('Nord', 'NORD'), ('Nordouest', 'NORD-OUEST'), ('Nordest', 'NORD-EST'), ('Sud', 'SUD'), ('Sudest', 'SUD-EST'), ('Artibonite', 'ARTIBONITE'), ('Nippes', 'NIPPES'), ('Centre', 'CENTRE'), ('Grandanse', "GRAND'ANSE")], verbose_name='Departement')),
|
||||
('description', models.TextField(max_length=100, blank=True, verbose_name='Description')),
|
||||
=======
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('departement', models.CharField(choices=[('Ouest', 'OUEST'), ('Nord', 'NORD'), ('Nordouest', 'NORD-OUEST'), ('Nordest', 'NORD-EST'), ('Sud', 'SUD'), ('Sudest', 'SUD-EST'), ('Artibonite', 'ARTIBONITE'), ('Nippes', 'NIPPES'), ('Centre', 'CENTRE'), ('Grandanse', "GRAND'ANSE")], max_length=40, verbose_name='Departement')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('departement', models.CharField(max_length=40, verbose_name='Departement')),
|
||||
('description', models.TextField(max_length=100, verbose_name='Description', blank=True)),
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
('id_code', models.CharField(unique=True, max_length=7, verbose_name='Code')),
|
||||
('id_code', models.CharField(verbose_name='Code', max_length=7, unique=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PersonneContact',
|
||||
fields=[
|
||||
<<<<<<< HEAD
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('nomPersonne', models.CharField(max_length=45, verbose_name='Nom')),
|
||||
('prenomPersonne', models.CharField(max_length=45, verbose_name='Prenom')),
|
||||
('telephoneBureau', models.CharField(max_length=45, blank=True, verbose_name='Telephone (Bureau)')),
|
||||
('telephonePersonnel', models.CharField(unique=True, max_length=45, verbose_name='Telephone (Personnel)')),
|
||||
('emailPersonnel', models.CharField(max_length=45, blank=True, verbose_name='Email (Personnel)')),
|
||||
('adressePersonnelle', models.CharField(max_length=45, blank=True, verbose_name='Adresse (Personnlle)')),
|
||||
=======
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('nomPersonne', models.CharField(max_length=45, verbose_name='Nom')),
|
||||
('prenomPersonne', models.CharField(max_length=45, verbose_name='Prenom')),
|
||||
('telephoneBureau', models.CharField(max_length=45, verbose_name='Telephone (Bureau)', blank=True)),
|
||||
('telephonePersonnel', models.CharField(unique=True, max_length=45, verbose_name='Telephone (Personnel)')),
|
||||
('telephonePersonnel', models.CharField(verbose_name='Telephone (Personnel)', max_length=45, unique=True)),
|
||||
('emailPersonnel', models.CharField(max_length=45, verbose_name='Email (Personnel)', blank=True)),
|
||||
('adressePersonnelle', models.CharField(max_length=45, verbose_name='Adresse (Personnlle)', blank=True)),
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
('nif', models.CharField(unique=True, max_length=45, verbose_name='NIF/CIN')),
|
||||
('nif', models.CharField(verbose_name='NIF/CIN', max_length=45, unique=True)),
|
||||
('dateEmbauche', models.DateField(verbose_name="Date d'embauche")),
|
||||
('isactif', models.BooleanField(verbose_name='Active')),
|
||||
],
|
||||
@@ -68,48 +46,29 @@ class Migration(migrations.Migration):
|
||||
migrations.CreateModel(
|
||||
name='Poste',
|
||||
fields=[
|
||||
<<<<<<< HEAD
|
||||
('nomPoste', models.CharField(serialize=False, primary_key=True, unique=True, max_length=45, verbose_name='Poste')),
|
||||
=======
|
||||
('nomPoste', models.CharField(unique=True, primary_key=True, max_length=45, verbose_name='Poste', serialize=False)),
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
('nomPoste', models.CharField(verbose_name='Poste', max_length=45, unique=True, serialize=False, primary_key=True)),
|
||||
('description', models.CharField(max_length=45, verbose_name='Description')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SectionCommunale',
|
||||
fields=[
|
||||
<<<<<<< HEAD
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('sectionCommunale', models.CharField(max_length=45, verbose_name='Section Communale')),
|
||||
('nomOfficiel', models.CharField(max_length=45, blank=True, verbose_name='Nom officiel')),
|
||||
('description', models.TextField(max_length=100, blank=True, verbose_name='Description')),
|
||||
=======
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('sectionCommunale', models.CharField(max_length=45, verbose_name='Section Communale')),
|
||||
('nomOfficiel', models.CharField(max_length=45, verbose_name='Nom officiel', blank=True)),
|
||||
('description', models.TextField(max_length=100, verbose_name='Description', blank=True)),
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
('id_code', models.CharField(unique=True, max_length=7, verbose_name='Code')),
|
||||
('id_code', models.CharField(verbose_name='Code', max_length=7, unique=True)),
|
||||
('commune', models.ForeignKey(to='base.Commune', verbose_name='Commune')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SiteSentinelle',
|
||||
fields=[
|
||||
<<<<<<< HEAD
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('localite', models.CharField(max_length=45, verbose_name='Localite')),
|
||||
('latitude', models.DecimalField(decimal_places=2, default=0, max_digits=8, verbose_name='Latitude')),
|
||||
('longitude', models.DecimalField(decimal_places=2, default=0, max_digits=8, verbose_name='Longitude')),
|
||||
('hauteur', models.DecimalField(decimal_places=2, default=0, max_digits=8, verbose_name='Hauteur')),
|
||||
=======
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('localite', models.CharField(max_length=45, verbose_name='Localite')),
|
||||
('latitude', models.DecimalField(default=0, decimal_places=2, max_digits=8, verbose_name='Latitude')),
|
||||
('longitude', models.DecimalField(default=0, decimal_places=2, max_digits=8, verbose_name='Longitude')),
|
||||
('hauteur', models.DecimalField(default=0, decimal_places=2, max_digits=8, verbose_name='Hauteur')),
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
('latitude', models.DecimalField(decimal_places=2, default=0, verbose_name='Latitude', max_digits=8)),
|
||||
('longitude', models.DecimalField(decimal_places=2, default=0, verbose_name='Longitude', max_digits=8)),
|
||||
('hauteur', models.DecimalField(decimal_places=2, default=0, verbose_name='Hauteur', max_digits=8)),
|
||||
('sectionCommunale', models.ForeignKey(to='base.SectionCommunale', verbose_name='Section Communale')),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -12,16 +12,25 @@ class Migration(migrations.Migration):
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
<<<<<<< HEAD
|
||||
name='Log',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('timestamp', models.DateTimeField(auto_now_add=True)),
|
||||
('temperatureMax', models.DecimalField(decimal_places=3, verbose_name='Temperature max', null=True, max_digits=5, blank=True)),
|
||||
('temperatureMin', models.DecimalField(decimal_places=3, verbose_name='Temperature min', null=True, max_digits=5, blank=True)),
|
||||
('quantitePluie', models.DecimalField(decimal_places=2, verbose_name='Quantite de Pluie', max_digits=15, blank=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Observation',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('timestamp', models.DateTimeField(auto_now_add=True)),
|
||||
('dateDebut', models.DateField(verbose_name='Debut')),
|
||||
('dateFin', models.DateField(verbose_name='Fin')),
|
||||
('temperatureMax', models.DecimalField(decimal_places=3, max_digits=5, null=True, blank=True, verbose_name='Temperature max')),
|
||||
('temperatureMin', models.DecimalField(decimal_places=3, max_digits=5, null=True, blank=True, verbose_name='Temperature min')),
|
||||
('quantitePluie', models.DecimalField(decimal_places=2, max_digits=15, blank=True, verbose_name='Quantite de Pluie')),
|
||||
('temperatureMax', models.DecimalField(decimal_places=3, verbose_name='Temperature max', null=True, max_digits=5, blank=True)),
|
||||
('temperatureMin', models.DecimalField(decimal_places=3, verbose_name='Temperature min', null=True, max_digits=5, blank=True)),
|
||||
('quantitePluie', models.DecimalField(decimal_places=2, verbose_name='Quantite de Pluie', max_digits=15, blank=True)),
|
||||
('description', models.TextField(max_length=100, blank=True)),
|
||||
('valider', models.BooleanField(default=False)),
|
||||
],
|
||||
@@ -29,19 +38,19 @@ class Migration(migrations.Migration):
|
||||
migrations.CreateModel(
|
||||
name='Station',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('latitude', models.FloatField()),
|
||||
('longitude', models.FloatField()),
|
||||
('hauteur', models.DecimalField(decimal_places=2, default=0, max_digits=8)),
|
||||
('nomStation', models.CharField(max_length=45, verbose_name='Nom de la Station')),
|
||||
('idStation', models.CharField(max_length=5, blank=True)),
|
||||
('idSiteSeninnelle', models.ForeignKey(to='base.SiteSentinelle', blank=True, verbose_name='Site Sentinelle', null=True)),
|
||||
('idSiteSeninnelle', models.ForeignKey(blank=True, to='base.SiteSentinelle', verbose_name='Site Sentinelle', null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='StationObservers',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('observer', models.OneToOneField(to='base.PersonneContact')),
|
||||
('station', models.ForeignKey(to='hydromet.Station')),
|
||||
],
|
||||
@@ -49,103 +58,28 @@ class Migration(migrations.Migration):
|
||||
migrations.CreateModel(
|
||||
name='TypeStation',
|
||||
fields=[
|
||||
('typeStation', models.CharField(serialize=False, primary_key=True, max_length=45, verbose_name='Type de Station')),
|
||||
('description', models.TextField(max_length=100, blank=True, verbose_name='Description')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='UniteDeMesure',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
|
||||
('uniteMesure', models.CharField(unique=True, max_length=7, verbose_name='Unite de mesure')),
|
||||
('description', models.TextField(blank=True)),
|
||||
('formule', models.TextField(blank='True', verbose_name='Formule')),
|
||||
=======
|
||||
name='Log',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('timestamp', models.DateTimeField(auto_now_add=True)),
|
||||
('temperatureMax', models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Temperature max', blank=True, null=True)),
|
||||
('temperatureMin', models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Temperature min', blank=True, null=True)),
|
||||
('quantitePluie', models.DecimalField(decimal_places=2, verbose_name='Quantite de Pluie', blank=True, max_digits=15)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Observation',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('timestamp', models.DateTimeField(auto_now_add=True)),
|
||||
('dateDebut', models.DateField(verbose_name='Debut')),
|
||||
('dateFin', models.DateField(verbose_name='Fin')),
|
||||
('temperatureMax', models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Temperature max', blank=True, null=True)),
|
||||
('temperatureMin', models.DecimalField(max_digits=5, decimal_places=3, verbose_name='Temperature min', blank=True, null=True)),
|
||||
('quantitePluie', models.DecimalField(decimal_places=2, verbose_name='Quantite de Pluie', blank=True, max_digits=15)),
|
||||
('description', models.TextField(max_length=100, blank=True)),
|
||||
('valider', models.BooleanField(default=False)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Station',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('latitude', models.FloatField()),
|
||||
('longitude', models.FloatField()),
|
||||
('hauteur', models.DecimalField(default=0, max_digits=8, decimal_places=2)),
|
||||
('nomStation', models.CharField(max_length=45, verbose_name='Nom de la Station')),
|
||||
('idStation', models.CharField(max_length=5, blank=True)),
|
||||
('idSiteSeninnelle', models.ForeignKey(blank=True, null=True, verbose_name='Site Sentinelle', to='base.SiteSentinelle')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='StationObservers',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('observer', models.OneToOneField(to='base.PersonneContact')),
|
||||
('station', models.ForeignKey(to='hydromet.Station')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TypeStation',
|
||||
fields=[
|
||||
('typeStation', models.CharField(serialize=False, primary_key=True, max_length=45, verbose_name='Type de Station')),
|
||||
('typeStation', models.CharField(max_length=45, verbose_name='Type de Station', serialize=False, primary_key=True)),
|
||||
('description', models.TextField(max_length=100, verbose_name='Description', blank=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='UniteDeMesure',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
|
||||
('uniteMesure', models.CharField(unique=True, max_length=7, verbose_name='Unite de mesure')),
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)),
|
||||
('uniteMesure', models.CharField(verbose_name='Unite de mesure', max_length=7, unique=True)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('formule', models.TextField(verbose_name='Formule', blank='True')),
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
('formule', models.DecimalField(decimal_places=3, verbose_name='Formule', null=True, max_digits=5, blank=True)),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='station',
|
||||
name='typeStation',
|
||||
<<<<<<< HEAD
|
||||
field=models.ForeignKey(to='hydromet.TypeStation', blank=True, verbose_name='Type de la Station', null=True),
|
||||
field=models.ForeignKey(blank=True, to='hydromet.TypeStation', verbose_name='Type de la Station', null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='station',
|
||||
name='uniteMesure',
|
||||
field=models.ForeignKey(to='hydromet.UniteDeMesure', blank=True, verbose_name='Unite de mesure', null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='observation',
|
||||
name='idStation',
|
||||
field=models.ForeignKey(to='hydromet.Station'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='observation',
|
||||
=======
|
||||
field=models.ForeignKey(blank=True, null=True, verbose_name='Type de la Station', to='hydromet.TypeStation'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='station',
|
||||
name='uniteMesure',
|
||||
field=models.ForeignKey(blank=True, null=True, verbose_name='Unite de mesure', to='hydromet.UniteDeMesure'),
|
||||
field=models.ForeignKey(blank=True, to='hydromet.UniteDeMesure', verbose_name='Unite de mesure', null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='observation',
|
||||
@@ -160,11 +94,10 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='log',
|
||||
name='observation',
|
||||
field=models.ForeignKey(null=True, blank=True, default=None, to='hydromet.Observation'),
|
||||
field=models.ForeignKey(blank=True, to='hydromet.Observation', default=None, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='log',
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
name='observer',
|
||||
field=models.ForeignKey(to='base.PersonneContact'),
|
||||
),
|
||||
|
||||
@@ -15,13 +15,7 @@ class TypeStation(models.Model):
|
||||
class UniteDeMesure(models.Model):
|
||||
uniteMesure = models.CharField(max_length=7, unique=True, verbose_name="Unite de mesure")
|
||||
description = models.TextField(blank=True)
|
||||
<<<<<<< HEAD
|
||||
formule = models.DecimalField(max_digits=5, decimal_places=3, null=True, blank=True, verbose_name="Formule")
|
||||
|
||||
=======
|
||||
|
||||
formule = models.TextField(verbose_name="Formule", blank="True")
|
||||
>>>>>>> 96badc71c559efc888bfccc84c949f2dee468356
|
||||
def __str__(self): # __unicode__ on Python 2
|
||||
return self.uniteMesure
|
||||
|
||||
|
||||
+5
-4
@@ -89,19 +89,20 @@ class SmsGateway(AppBase):
|
||||
msg.respond("Vous avez un nombre commencant par 0. Il n'y avait pas de pluie?")
|
||||
return True
|
||||
|
||||
val_float = float(msg.text)
|
||||
|
||||
person = PersonneContact.objects.get(telephonePersonnel=tel)
|
||||
station = StationObservers.objects.get(observer=person).station
|
||||
id_station = StationObservers.objects.get(observer=person).station.id
|
||||
formule = UniteDeMesure.objects.get(id = id_station).formule
|
||||
|
||||
#id de la personne qui a envoye le sms
|
||||
val_float = float(msg.text) * float(formule)
|
||||
|
||||
log = Log()
|
||||
recup_last_value = Observation.objects.filter(observer = obs_id, dateDebut = timezone.now().date() - timedelta(days=1)).order_by('-id').first()
|
||||
if recup_last_value:
|
||||
recup_last_value.quantitePluie = val_float
|
||||
recup_last_value.save()
|
||||
info = 'Donnee mise a jour'
|
||||
info = 'Vous avez envoye : ' + str(val_float) + '. Donnee mise a jour'
|
||||
# logSave(log, recup_last_value, person, val_float)
|
||||
else:
|
||||
o = Observation()
|
||||
@@ -113,7 +114,7 @@ class SmsGateway(AppBase):
|
||||
o.dateFin = timezone.now().date()
|
||||
o.valider = False
|
||||
o.save()
|
||||
info = 'Donnee sauvegardee. Merci!'
|
||||
info = 'Vous avez envoye : ' + str(val_float) + '. Donnee sauvegardee. Merci!'
|
||||
# logSave(log, recup_last_value, person, val_float)
|
||||
|
||||
log.observation = recup_last_value
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
<ul class="nav child_menu" style="display: none">
|
||||
<li><a href="/admin/hydromet/typestation/">Type station pluviometrique</a>
|
||||
</li>
|
||||
<li><a href="/admin/hydromet/log/">LOG</a>
|
||||
<li><a href="/admin/hydromet/log/">Log</a>
|
||||
</li>
|
||||
<li><a href="/admin/hydromet/station/">Station pluviometriques</a>
|
||||
</li>
|
||||
|
||||
Reference in new issue
Block a user