diff --git a/base/migrations/0013_auto_20151012_2255.py b/base/migrations/0013_auto_20151012_2255.py deleted file mode 100644 index f4c9af1..0000000 --- a/base/migrations/0013_auto_20151012_2255.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('base', '0012_auto_20151008_2256'), - ] - - operations = [ - migrations.AlterField( - model_name='departement', - name='departement', - field=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'), - ), - ] diff --git a/hydromet/admin.py b/hydromet/admin.py index 9522c53..b49b430 100644 --- a/hydromet/admin.py +++ b/hydromet/admin.py @@ -29,7 +29,7 @@ class ObservationAdmin(admin.ModelAdmin): #Called my form in the admin and set a column for each fields list_filter = (('valider',)) search_fields = ["quantitePluie", "dateDebut", "dateFin", "description"] - list_display = ('pk',"idStation", "observer", "timestamp", "dateDebut", "dateFin", "quantitePluie", "log", "description", "valider") + list_display = ('pk',"idStation", "observer", "timestamp", "dateDebut", "dateFin", "temperatureMax", "temperatureMin", "quantitePluie", "description", "valider") form = ObservationForm # actions = [validate, unvalidate] actions = ['make_valider', 'make_nonvalider'] @@ -89,11 +89,6 @@ class StationObserversAdmin(admin.ModelAdmin): search_fields = ["station"] form = StationObserversForm -class LogAdmin(admin.ModelAdmin): - #Called my form in the admin and set a column for each fields - list_display = ("observation", "observer", "quantitePluie", "timestamp") - search_fields = ["observation.idStation"] - # class ObservationTemperatureAdmin(admin.ModelAdmin): # # @@ -108,7 +103,6 @@ admin.site.register(TypeStation, TypeStationAdmin) admin.site.register(Observation, ObservationAdmin) admin.site.register(UniteDeMesure, UniteDeMesureAdmin) admin.site.register(StationObservers, StationObserversAdmin) -admin.site.register(Log, LogAdmin) # admin.site.register(ObservationTemperature) # admin.site.register(ObservationDirectionVent) diff --git a/hydromet/migrations/0015_auto_20151012_2255.py b/hydromet/migrations/0015_auto_20151012_2255.py deleted file mode 100644 index 8ca0ef7..0000000 --- a/hydromet/migrations/0015_auto_20151012_2255.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('base', '0013_auto_20151012_2255'), - ('hydromet', '0014_auto_20151007_1845'), - ] - - operations = [ - migrations.CreateModel( - name='Log', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), - ('timestamp', models.DateTimeField(auto_now_add=True)), - ('temperatureMax', models.DecimalField(null=True, max_digits=5, blank=True, verbose_name='Temperature max', decimal_places=3)), - ('temperatureMin', models.DecimalField(null=True, max_digits=5, blank=True, verbose_name='Temperature min', decimal_places=3)), - ('quantitePluie', models.DecimalField(decimal_places=2, max_digits=15, blank=True, verbose_name='Quantite de Pluie')), - ], - ), - migrations.AlterField( - model_name='observation', - name='valider', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='log', - name='observation', - field=models.ForeignKey(null=True, to='hydromet.Observation', blank=True, default=None), - ), - migrations.AddField( - model_name='log', - name='observer', - field=models.ForeignKey(to='base.PersonneContact'), - ), - ] diff --git a/hydromet/models.py b/hydromet/models.py index b5c15b3..56d7021 100644 --- a/hydromet/models.py +++ b/hydromet/models.py @@ -48,21 +48,3 @@ class Observation(models.Model): quantitePluie = models.DecimalField(max_digits=15, decimal_places=2, blank=True, verbose_name="Quantite de Pluie") description = models.TextField(max_length=100, blank=True) valider = models.BooleanField(default=False) - - def __str__(self): # __unicode__ on Python 2 - return self.idStation.nomStation + ' le '+ str(self.dateDebut) - - @property - def log(self): - return Log.objects.filter(observation=self.pk).count() - -class Log(models.Model): - observation = models.ForeignKey(Observation, null=True, blank=True, default = None) - observer = models.ForeignKey(PersonneContact) - timestamp = models.DateTimeField(auto_now_add=True) - temperatureMax = models.DecimalField(max_digits=5, decimal_places=3, null=True, blank=True, verbose_name="Temperature max") - temperatureMin = models.DecimalField(max_digits=5, decimal_places=3, null=True, blank=True, verbose_name="Temperature min") - quantitePluie = models.DecimalField(max_digits=15, decimal_places=2, blank=True, verbose_name="Quantite de Pluie") - - def __str__(self): # __unicode__ on Python 2 - return self.observer.nomPersonne + ' ' + self.observer.prenomPersonne \ No newline at end of file diff --git a/sms_gateway/app.py b/sms_gateway/app.py index 5e84dea..1e2aed3 100644 --- a/sms_gateway/app.py +++ b/sms_gateway/app.py @@ -1,32 +1,33 @@ from rapidsms.apps.base import AppBase -from base.models import * # importing all models from Donnees_de_Base where data about Contacts are stored +from base.models import * # importing all models from Donnees_de_Base where data about Contacts are stored from hydromet.models import * from datetime import * import re def isFloat(val): - try: - float(val) - return True - except: - return False + try: + float(val) + return True + except: + return False class SmsGateway(AppBase): - def handle(self, msg): + + def handle(self,msg): valid_numbers = [] # An empty list for tel in PersonneContact.objects.all(): - valid_numbers.append(tel.telephonePersonnel) # Getting all personnal Phone + valid_numbers.append(tel.telephonePersonnel)# Getting all personnal Phone tel = msg.peer.strip("+") if tel not in valid_numbers: # msg.respond('TEst') - msg.respond('Not in ' + msg.peer) + msg.respond('Not in '+msg.peer) return True # Return false because we don't want to answer an unknow number - # We must shut the default messge from the default app in this case - else: # If this number is in the list, will work with the text message + # We must shut the default messge from the default app in this case + else: # If this number is in the list, will work with the text message # if msg.text == "daa": # a = Observation # for asd in a.objects.filter(dateDebut__lte=datetime.now): @@ -41,41 +42,35 @@ class SmsGateway(AppBase): return True val_float = float(msg.text) - # Ici operation avec les unites disponibles + #Ici operation avec les unites disponibles dt = datetime.now() - dateFin = str(dt.year) + '-' + str(dt.month) + '-' + str(dt.day) - dtD = date.today() - timedelta(days=1) - dateDebut = str(dtD.year) + '-' + str(dtD.month) + '-' + str(dtD.day) + dateFin = str(dt.year)+'-'+str(dt.month)+'-'+str(dt.day) + dtD=date.today() - timedelta(days=1) + dateDebut = str(dtD.year)+'-'+str(dtD.month)+'-'+str(dtD.day) person = PersonneContact.objects.get(telephonePersonnel=tel) station = StationObservers.objects.get(observer=person).station - # id de la personne qui a envoye le sms - obs_id = PersonneContact.objects.filter(telephonePersonnel=tel).first().id - - observation = Observation.objects.filter(observer=obs_id, dateDebut=dateDebut).order_by('-id').first() - if observation: - observation.quantitePluie = val_float + #id de la personne qui a envoye le sms + obs_id = PersonneContact.objects.filter(telephonePersonnel = tel).first().id + recup_last_value = Observation.objects.filter(observer = obs_id, dateDebut = dateDebut).order_by('-id').first() + if recup_last_value: + recup_last_value.quantitePluie = val_float + recup_last_value.save() info = 'Donnee mise a jour' else: - observation = Observation() - observation.idStation = station - observation.observer = person - observation.timestamp = datetime.now() - observation.quantitePluie = val_float - observation.dateDebut = dateDebut - observation.dateFin = dateFin - observation.valider = False + o = Observation() + o.idStation = station + o.observer = person + o.timestamp = datetime.now() + o.quantitePluie = val_float + o.dateDebut = dateDebut + o.dateFin = dateFin + o.valider = False + o.save() info = 'Donnee sauvegardee. Merci!' - - observation.save() - - log = Log(observation=observation,observer=observation.observer, - timestamp=observation.timestamp, quantitePluie=observation.quantitePluie) - log.save() - msg.respond(info) return True else: diff --git a/smslapli/templates/admin/index.html b/smslapli/templates/admin/index.html index de7dc4a..6428379 100755 --- a/smslapli/templates/admin/index.html +++ b/smslapli/templates/admin/index.html @@ -159,7 +159,6 @@
Nous mettons a la disposition du public des donnees fiables sur la quantite de pluie et egalement l'etat de la disponibilite de la nourriture dans le pays.