diff --git a/website/nutriform/forms.py b/website/nutriform/forms.py index 8284dff0fc68220ba5b649c435d766164a155e60..e9fc959f0ddd48f044da5aa19b4a2c48d2e46604 100644 --- a/website/nutriform/forms.py +++ b/website/nutriform/forms.py @@ -33,4 +33,5 @@ class QuestionQuotidForm(forms.ModelForm): class Meta: model = QuestionQuotid - fields = '__all__' \ No newline at end of file + fields = '__all__' + exclude = ('user', 'date') \ No newline at end of file diff --git a/website/nutriform/migrations/0003_questionquotid_user.py b/website/nutriform/migrations/0003_questionquotid_user.py new file mode 100644 index 0000000000000000000000000000000000000000..65a090b4ea0a13a80ebdafeb78d51fb0c15c7ebd --- /dev/null +++ b/website/nutriform/migrations/0003_questionquotid_user.py @@ -0,0 +1,21 @@ +# Generated by Django 2.2.6 on 2019-11-27 17:48 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('nutriform', '0002_auto_20191107_0040'), + ] + + operations = [ + migrations.AddField( + model_name='questionquotid', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/website/nutriform/migrations/0004_questionquotid_date.py b/website/nutriform/migrations/0004_questionquotid_date.py new file mode 100644 index 0000000000000000000000000000000000000000..53c24230517d369fea4b13c696f6bd64404de931 --- /dev/null +++ b/website/nutriform/migrations/0004_questionquotid_date.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.6 on 2019-11-27 17:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('nutriform', '0003_questionquotid_user'), + ] + + operations = [ + migrations.AddField( + model_name='questionquotid', + name='date', + field=models.DateField(null=True), + ), + ] diff --git a/website/nutriform/migrations/0005_auto_20191127_1756.py b/website/nutriform/migrations/0005_auto_20191127_1756.py new file mode 100644 index 0000000000000000000000000000000000000000..b3ee5c1b2c31aced0acb080ae756b04b1871fe50 --- /dev/null +++ b/website/nutriform/migrations/0005_auto_20191127_1756.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.6 on 2019-11-27 17:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('nutriform', '0004_questionquotid_date'), + ] + + operations = [ + migrations.AlterField( + model_name='questionquotid', + name='date', + field=models.DateField(auto_now_add=True, null=True), + ), + ] diff --git a/website/nutriform/models.py b/website/nutriform/models.py index 843c8bdb330664badf227f47fbdf64e04aff0064..4bbeb3a102aec12fc1e57d3f192dfa9f6ed54605 100644 --- a/website/nutriform/models.py +++ b/website/nutriform/models.py @@ -48,8 +48,13 @@ MALADIES_CHOICES = [ ] class QuestionQuotid(models.Model): + user = models.ForeignKey(User, on_delete=models.CASCADE, null=True) typeRepas = models.CharField(max_length=5, choices=TYPEMENU_CHOICES) nbh_activite = models.PositiveIntegerField() volume_eau = models.PositiveIntegerField() maladies = models.CharField(max_length=3, choices=MALADIES_CHOICES) - poids = models.PositiveIntegerField(null=True) \ No newline at end of file + poids = models.PositiveIntegerField(null=True) + date = models.DateField(null=True, auto_now_add=True) + + def __str__(self): + return self.user.__str__() + " : " + self.date.__str__() \ No newline at end of file diff --git a/website/nutriform/templates/nutriform/carte.html b/website/nutriform/templates/nutriform/carte.html index 68bc7ebd37ddea938aee8802034a665849386982..5a3fcafb331c1ed1fe8523dd742965a7b2d1d99f 100644 --- a/website/nutriform/templates/nutriform/carte.html +++ b/website/nutriform/templates/nutriform/carte.html @@ -11,7 +11,7 @@ </div> <style> #mapid { - height: 400px; + height: 600px; } </style> @@ -28,7 +28,8 @@ }).addTo(mymap); {% for pos in geotab %} - L.marker({{pos}}).addTo(mymap); + var tmpMarker = L.marker({{pos.0}}).addTo(mymap); + tmpMarker.bindPopup("{{pos.1}} - {{pos.2}}"); {% endfor %} </script> diff --git a/website/nutriform/templates/nutriform/compte.html b/website/nutriform/templates/nutriform/compte.html index 9e432b80b7c2dde72bd3db16cff66c63c8bd5813..70bee1519a090e274b80ac47daa5af27a240c357 100644 --- a/website/nutriform/templates/nutriform/compte.html +++ b/website/nutriform/templates/nutriform/compte.html @@ -11,6 +11,40 @@ <li>Nom : {{user.last_name}}</li> <li>Email : {{user.email}}</li> </ul> + + <div id="container"></div> + <script src="https://code.highcharts.com/highcharts.src.js"></script> + <script> + Highcharts.chart('container', { + chart: { + type: 'line' + }, + title: { + text: 'Suivi de votre progression' + }, + xAxis: { + categories: [ + {% for d in dates %}'{{d}}' {% if not forloop.last %}, {% endif %} {% endfor %} + ] + }, + series: [{ + name: 'Poids', + data: [ + {% for d in poids %}{{d}} {% if not forloop.last %}, {% endif %} {% endfor %} + ] + }, { + name: 'Nombre heures', + data: [ + {% for d in nb_h %}{{d}} {% if not forloop.last %}, {% endif %} {% endfor %} + ] + }, { + name: 'Volume eau', + data: [ + {% for d in volumes %}{{d}} {% if not forloop.last %}, {% endif %} {% endfor %} + ] + }] + }); + </script> <a href="{% url 'password_change' %}" class="button">Modifier mon mot de passe</a> diff --git a/website/nutriform/views.py b/website/nutriform/views.py index fe8979099b1db3109abfa04afd724209997b6c3a..f4b8cc9def9e5a19dec93ed218607999b1ae18ab 100644 --- a/website/nutriform/views.py +++ b/website/nutriform/views.py @@ -38,8 +38,24 @@ def register(request): @login_required def compte(request): - - return render(request, 'nutriform/compte.html') + + datas = list(QuestionQuotid.objects.filter(user=request.user)) + dates = [] + nb_h = [] + volumes = [] + poids = [] + for q in datas : + dates.append(q.date) + nb_h.append(q.nbh_activite) + volumes.append(q.volume_eau) + poids.append(q.poids) + context = { + 'dates': dates, + 'nb_h': nb_h, + 'volumes': volumes, + 'poids': poids + } + return render(request, 'nutriform/compte.html', context) def aboutus(request): return render(request, 'nutriform/aboutus.html') @@ -75,7 +91,9 @@ def question_quotid(request): if request.method == 'POST': form = QuestionQuotidForm(request.POST) if form.is_valid(): - form.save() + questionnaire = form.save() + questionnaire.user = request.user + questionnaire.save() return redirect('compte') else : @@ -94,12 +112,16 @@ def carte(request): for salle in data: fields = salle['fields'] try: - val.append(fields['geo_point_2d']) + val.append([fields['geo_point_2d'], + fields['lieu'], + fields['activite']] + ) + except KeyError: pass jsonfile.close() context = { - 'geotab':val, + 'geotab': val, } return render(request, 'nutriform/carte.html', context) \ No newline at end of file diff --git a/website/testjson.py b/website/testjson.py index 34d0df9a7cf83b54a4408a9b286682943ea524d3..c3a74393ebfadaa41d5578d315e747a75d8ed62a 100644 --- a/website/testjson.py +++ b/website/testjson.py @@ -7,8 +7,7 @@ with open("sports.json") as jsonfile: for salle in data: fields = salle['fields'] try: - print(fields['geo_point_2d']) - val.append(fields['lieu']) + print(fields) except KeyError: pass;