Skip to content
Extraits de code Groupes Projets
Valider e777ad48 rédigé par Anteunis Charles's avatar Anteunis Charles
Parcourir les fichiers

structure back pour les annonces

parent 53635bfd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 171 ajouts et 13 suppressions
......@@ -46,7 +46,7 @@
### Titre des User Stories reportées
*Lister ici les éléments des itérations précédentes qui ont été reportés à l'itération suivante. Ces éléments ont dû être revus et corrigés par le PO.*
> "En tant que Ines, je souhaite une BDD pour fournir aux users divers menus" - Les menus seront suggérés dans le compte mais n'apparaîtront pas comme liste.
> "En tant que Administrateur, je souhaite une BDD pour fournir aux users divers menus" - Les menus seront suggérés dans le compte mais n'apparaîtront pas comme liste.
> "En tant que users je souhaite pouvoir voir mes informations personnelles dans la page mon profil" - Les informations manquantes seront ajoutées au compte user
### Titre des nouvelles User Stories
......
Aucun aperçu pour ce type de fichier
......@@ -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
from .models import QuestionQuotid, InfosUser, Annonce
class UserForm(UserCreationForm):
......@@ -42,3 +42,10 @@ class InfoUserForm(forms.ModelForm):
model = InfosUser
fields = '__all__'
exclude = ('user',)
class AnnonceForm(forms.ModelForm):
class Meta:
model = Annonce
fields = '__all__'
exclude = ('orga',)
\ No newline at end of file
# Generated by Django 2.2.6 on 2019-12-06 14:20
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('nutriform', '0011_auto_20191127_2335'),
]
operations = [
migrations.CreateModel(
name='Annonce',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('ville', models.CharField(max_length=100)),
('date', models.DateField(default=django.utils.timezone.now)),
('type_annonce', models.CharField(choices=[('PRO', 'Professionnelle'), ('NOR', 'Classique')], max_length=3)),
('description', models.TextField(max_length=1000)),
('sport', models.CharField(max_length=100)),
('orga', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
]
# Generated by Django 2.2.6 on 2019-12-06 14:22
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0012_annonce'),
]
operations = [
migrations.AlterField(
model_name='annonce',
name='orga',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
......@@ -72,3 +72,16 @@ class InfosUser(models.Model):
sexe = models.CharField(max_length=1, choices=SEXE_CHOICES, null=True)
maladies = models.TextField(max_length=200, null=True, blank=True)
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
TYPE_ANNONCE_CHOICE = [
('PRO', 'Professionnelle'),
('NOR', 'Classique')
]
class Annonce(models.Model):
ville = models.CharField(max_length=100)
date = models.DateField(default=timezone.now)
type_annonce = models.CharField(max_length=3, choices=TYPE_ANNONCE_CHOICE)
description = models.TextField(max_length=1000)
sport = models.CharField(max_length=100)
orga = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
{% extends "../nutriform/base.html" %}
{% block content %}
<div class="container">
<header class="major">
<h2>Créer une annonce d'activité sportive</h2>
</header>
<form action="" method="POST">
{% csrf_token %}
{{ form }}
<input type="submit" value="Créer">
</form>
</div class="container">
{% endblock %}
\ No newline at end of file
{% extends "../nutriform/base.html" %}
{% block content %}
<div class="container">
<header class="major">
<h2>Participez à des activités sportives communautaires</h2>
</header>
{% for annonce in annonces_list %}
<a href="{% url 'detail_annonce' annonce.id %}">{{ annonce.get_type_annonce_display }} - {{ annonce.sport }} - {{ annonce.orga.username }}</a>
{% endfor %}
<br>
<a href="{% url 'add_annonce' %}" class="button">Créer mon annonce</a>
</div class="container">
{% endblock %}
\ No newline at end of file
......@@ -27,6 +27,7 @@
<nav id="nav">
<ul>
<li><a href="{% url 'index' %}">Accueil</a></li>
<li><a href="{% url 'annonces' %}">Annonces</a></li>
<li><a href="{% url 'aboutus' %}">About us</a></li>
<li><a href="{% url 'compte' %}">Mon compte</a></li>
{% if user.is_authenticated %}
......
......@@ -38,21 +38,21 @@
{% if menu %}
<p>
{% if mean_sport < 1 %}
{{ user.username }}, faites attention à votre condition physique : {{ mean_sport }} heures par jour est insuffisant.
{{ user.username }}, faites attention à votre condition physique : {{ mean_sport|floatformat }} heures par jour est insuffisant.
Pratiquer une activité physique régulière,
environ 1h par jour, est nécessaire pour s'assurer une meilleure santé. Nous vous conseillons
de vous dépenser plus et vous obtiendrez rapidement vos objectifs.
{% else %}
{{ user.username }}, vous avez fait en moyenne {{ mean_sport }} heures d'activité physique
{{ user.username }}, vous avez fait en moyenne {{ mean_sport|floatformat }} heures d'activité physique
par jour les 7 derniers jours. Continuez comme cela, le sport est bénéfique pour votre corps.
{% endif %}
</p>
<p>
{% if mean_water < 2 %}
Concernant votre consommation d'eau, pensez à vous hydrater plus : {{ mean_water }}L par jour ne suffisent
Concernant votre consommation d'eau, pensez à vous hydrater plus : {{ mean_water|floatformat }}L par jour ne suffisent
pas. Vous devriez augmenter pour atteindre les 2L environ.
{% else %}
Votre consommation d'eau est excellente : {{ mean_water }}L par jour ! Pensez à garder ce rythme tout au long des semaines. Vous ne
Votre consommation d'eau est excellente : {{ mean_water|floatformat }}L par jour ! Pensez à garder ce rythme tout au long des semaines. Vous ne
devriez pas avoir de problèmes pour atteindre vos objectifs, continuez sur cette voie.
{% endif %}
</p>
......
{% extends "../nutriform/base.html" %}
{% block content %}
<div class="container">
<header class="major">
<h2>Détail de l'annonce</h2>
</header>
<p>{{ annonce.orga }} - {{ annonce.description }}</p>
</div class="container">
{% endblock %}
\ No newline at end of file
......@@ -22,6 +22,7 @@
<nav id="nav">
<ul>
<li><a href="{% url 'index' %}">Accueil</a></li>
<li><a href="{% url 'annonces' %}">Annonces</a></li>
<li><a href="{% url 'aboutus' %}">About us</a></li>
<li><a href="{% url 'compte' %}">Mon compte</a></li>
{% if user.is_authenticated %}
......
......@@ -6,7 +6,7 @@
<header class="major">
<h2>Liste des menus disponibles</h2>
<p>Cete liste est vouée à évoluer perpétuellement</p>
<p>Cette liste est vouée à évoluer perpétuellement</p>
</header>
<div class="table-wrapper">
......
......@@ -13,5 +13,8 @@ urlpatterns = [
path('accounts/profile/modification/', views.modif_compte, name='modif_compte'),
path('accounts/questionnaire/', views.question_quotid, name='questionnaire'),
path('carte/', views.carte, name='carte'),
path('accounts/profile/modification_infos/', views.modif_infos, name='modif_info')
path('accounts/profile/modification_infos/', views.modif_infos, name='modif_info'),
path('annonces/créer/', views.addAnnnonce, name='add_annonce'),
path('annonces/<int:annonce_id>/', views.detail_annonce, name='detail_annonce'),
path('annonces/', views.annonces, name='annonces')
]
......@@ -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
from .models import Menu, QuestionQuotid, InfosUser
from .forms import UserForm, UserModifForm, QuestionQuotidForm, InfoUserForm, AnnonceForm
from .models import Menu, QuestionQuotid, InfosUser, Annonce
import json
......@@ -180,3 +180,37 @@ def carte(request):
'geotab': val,
}
return render(request, 'nutriform/carte.html', context)
def annonces(request):
annonces_list = list(Annonce.objects.all())
context = {
'annonces_list': annonces_list,
}
return render(request, 'nutriform/annonces.html', context)
def detail_annonce(request, annonce_id):
annonce = get_object_or_404(Annonce, pk=annonce_id)
context = {
'annonce': annonce,
}
return render(request, 'nutriform/detail_annonce.html', context)
@login_required
def addAnnnonce(request):
if request.method == 'POST':
form = AnnonceForm(request.POST)
if form.is_valid():
annonce = form.save()
annonce.orga = request.user
annonce.save()
return redirect('compte')
else :
form = AnnonceForm()
context = {
'form':form,
}
return render(request, 'nutriform/add_annonce.html', context)
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter