diff --git a/website/db.sqlite3 b/website/db.sqlite3 index e7c22aaee9632f18203b0095fa39414df0f19d56..563cf0ff05ee9dab8e0155268654e4710640551c 100644 Binary files a/website/db.sqlite3 and b/website/db.sqlite3 differ diff --git a/website/nutriform/forms.py b/website/nutriform/forms.py index 40c0db857088a1edbbcdc7c11ba72dcbfce57f89..6c13105edbdeebc7a1189f909842135d5acc33c5 100644 --- a/website/nutriform/forms.py +++ b/website/nutriform/forms.py @@ -5,7 +5,7 @@ from django.contrib.auth.forms import UserCreationForm, UserChangeForm from django.core.exceptions import ValidationError import os -from .models import QuestionQuotid, InfosUser, Annonce +from .models import QuestionQuotid, InfosUser, Annonce, Sport class UserForm(UserCreationForm): @@ -48,4 +48,12 @@ class AnnonceForm(forms.ModelForm): class Meta: model = Annonce fields = '__all__' - exclude = ('orga',) \ No newline at end of file + exclude = ('orga',) + +SPORT_LIST = list(dict.fromkeys([s.activite for s in list(Sport.objects.all())])) +SPORT_CHOICES = [] +for s in SPORT_LIST: + SPORT_CHOICES.append((s,s)) + +class SearchSportForm(forms.Form): + sport_choice = forms.ChoiceField(choices=SPORT_CHOICES) diff --git a/website/nutriform/models.py b/website/nutriform/models.py index 3b301c7d227c374765a58595f2d07b2e007eff12..e6281051cd1fcf10a5a354cbbfec10a0859a9f25 100644 --- a/website/nutriform/models.py +++ b/website/nutriform/models.py @@ -44,6 +44,9 @@ class Sport(models.Model): lieu = models.CharField(max_length=100, null=True) geoPoint = models.CharField(max_length=100, null=True) + def __str__(self): + return self.activite +' - '+ self.lieu + MALADIES_CHOICES = [ ('RH', 'Rhume'), ('GR', 'Grippe'), diff --git a/website/nutriform/templates/nutriform/carte.html b/website/nutriform/templates/nutriform/carte.html index 5a3fcafb331c1ed1fe8523dd742965a7b2d1d99f..7f9bc63f15ce4c4db87d665fab49ae5c29d75706 100644 --- a/website/nutriform/templates/nutriform/carte.html +++ b/website/nutriform/templates/nutriform/carte.html @@ -5,10 +5,18 @@ <div class="container"> <h3>Carte des différents centres de sport</h3> - + <form action="" method="POST"> + {% csrf_token %} + + {{ form }} + <br> + <input type="submit" value="filtrer"> + <a class="button" href="{% url 'carte' %}">réinitialiser</a> + </form> <div id="mapid"> </div> + <style> #mapid { height: 600px; @@ -27,9 +35,9 @@ accessToken: 'pk.eyJ1IjoiZ291cGl4IiwiYSI6ImNrMnFyaXpobTBnbXQzY2xudHpoMDJ6Y2MifQ.vCJOhagzQl5G2PFTwe8jbA' }).addTo(mymap); - {% for pos in geotab %} - var tmpMarker = L.marker({{pos.0}}).addTo(mymap); - tmpMarker.bindPopup("{{pos.1}} - {{pos.2}}"); + {% for pos in sportList %} + var tmpMarker = L.marker({{pos.geoPoint}}).addTo(mymap); + tmpMarker.bindPopup("{{pos.lieu}} - {{pos.activite}}"); {% endfor %} </script> diff --git a/website/nutriform/views.py b/website/nutriform/views.py index 4fd7c91bda6cfeda79d374daf3582fbde27b1c29..313a86ae75cd3a8f18a3b466208a252ec884d2dd 100644 --- a/website/nutriform/views.py +++ b/website/nutriform/views.py @@ -7,8 +7,8 @@ from django.contrib.auth.models import User from datetime import date from django.utils import timezone -from .forms import UserForm, UserModifForm, QuestionQuotidForm, InfoUserForm, AnnonceForm -from .models import Menu, QuestionQuotid, InfosUser, Annonce +from .forms import UserForm, UserModifForm, QuestionQuotidForm, InfoUserForm, AnnonceForm, SearchSportForm +from .models import Menu, QuestionQuotid, InfosUser, Annonce, Sport import json @@ -162,22 +162,21 @@ def question_quotid(request): def carte(request): val = [] - with open("sports.json") as jsonfile: - data=json.load(jsonfile) - for salle in data: - fields = salle['fields'] - try: - val.append([fields['geo_point_2d'], - fields['lieu'], - fields['activite']] - ) - - except KeyError: - pass - - jsonfile.close() + sportList = Sport.objects.all() + #sportDiffList = list(dict.fromkeys([s.activite for s in list(sportList)])) + + if request.method == 'POST': + form = SearchSportForm(request.POST) + if form.is_valid() : + sportList = Sport.objects.filter(activite=form.cleaned_data['sport_choice']) + + else : + form = SearchSportForm() + context = { 'geotab': val, + 'sportList': sportList, + 'form': form, } return render(request, 'nutriform/carte.html', context) diff --git a/website/testjson.py b/website/testjson.py index c3a74393ebfadaa41d5578d315e747a75d8ed62a..74a360ade642e344012495331075e56ed96c3d70 100644 --- a/website/testjson.py +++ b/website/testjson.py @@ -1,4 +1,5 @@ import json +from nutriform.models import Sport val = [] @@ -7,10 +8,21 @@ with open("sports.json") as jsonfile: for salle in data: fields = salle['fields'] try: - print(fields) + val.append([fields['salle'], + fields['activite'], + fields['lieu'], + fields['geo_point_2d'], + ] + ) + except KeyError: - pass; - -print(len(val)) + pass jsonfile.close() + +for sport in val: + s = Sport.objects.create(salle=sport[0], + activite=sport[1], + lieu=sport[2], + geoPoint=sport[3]) + s.save()