Skip to content
Extraits de code Groupes Projets
Valider 5cf84410 rédigé par theom's avatar theom
Parcourir les fichiers

merge mornico

parents 8a4b6055 c328605d
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 432 ajouts et 6 suppressions
# Rapport d'itération 2
## Composition de l'équipe
*Remplir ce tableau avec la composition de l'équipe et les rôles.*
|   | Itération précédente |
| ------------- |------------- |
| **Product Owner** | Pierre-François Aliaga |
| **Scrum Master** | Alexis Andreani |
## Bilan de l'itération précédente
### Évènements
*Quels sont les évènements qui ont marqué l'itération précédente? Répertoriez ici les évènements qui ont eu un impact sur ce qui était prévu à l'itération précédente.*
> *Une US n'a pas été terminée et doit repartir dans le product backlog*
### Taux de complétion de l'itération
*Quel est le nombre d'éléments terminés par rapport au nombre total d'éléments prévu pour l'itération?*
> *5 terminés / 6 prévus = 83%*
### Liste des User Stories terminées
*Quelles sont les User Stories qui ont été validées par le PO à la fin de l'itération ?*
- En tant que Ines je souhaite que les mots de passe rentrés par l'utilisateur des comptes soient suffisamment fort
- En tant que Ines je souhaite une base de données pour fournir aux users divers menus
- En tant qu'utlisateur, je souhaite disposer d'une fonctionnalité pour modifier mon mot de passe
- En tant que users je souhaite avoir la possibilité de modifier mes informations personnelles dans la page mon profil
- En tant que Ines je souhaite permettre à mes utilisateurs de saisir des informations pour leur proposer des conseils santé personnalisés
## Rétrospective de l'itération précédente
### Bilans des retours et des précédentes actions
*Quels sont les retours faits par l'équipe pendant la rétrospective? Quelles sont les actions qui ont apporté quelque chose ou non?*
> L'équipe trouve que la vélocité est inférieure à ce qu'elle est possible de faire. Elle peut augmenter la cadence. Passer plus de temps à définir les US permet d'être plus efficace lors de la réalisation du sprint.
### Actions prises pour la prochaine itération
*Quelles sont les actions décidées par l'équipe pour la prochaine itération ?*
> Nous allons passer à une vélocité de environ 35. Nous allons revoir les définitions de certaines UserStories
### Axes d'améliorations
*Quels sont les axes d'améliorations pour les personnes qui ont tenu les rôles de PO, SM et Dev sur la précédente itération?*
> Plus de communication interne est nécessaire. Les US ne doivent pas contenir de technique. Les tâches peuvent être mieux organisées, certaines personnes peuvent avoir plus d'US à leur charge
## Prévisions de l'itération suivante
### Évènements prévus
*Quels sont les évènements qui vont peut être impacter l'itération? Répertoriez ici les évènements que vous anticipez comme ayant un impact potentiel pour l'itération (absences, changement de cap, difficultés, etc.).*
> Récupérer une base de données de sites de sports avec la localisation et les types de sports disponibles semble difficile
### 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 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
*Lister ici les nouveaux éléments pour l'itération suivante. Ces éléments ont dû être revus et corrigés par le PO.*
> En tant que users je souhaite pouvoir voir mes informations personnelles dans la page mon profil
> En tant que utilisateur, je souhaite pouvoir avoir accès à des sites de sports via un moteur de recherche intégré au site pour appliquer les conseils qui me sont donnés par le site
> En tant qu'utilisateur je souhaite avoir un résumé graphique de mes données pour visualiser ma progression
> En tant que Ines je souhaite pouvoir accéder à une page de contrôle pour accéder aux statistiques de mes clients
> En tant qu'utilisateur enregistré je souhaite récupérer des conseils adaptés à ma personne (ex: mange plus de fruits) pour améliorer mon style de vie
> En tant que Ines je souhaite que les utilisateurs aient accès à divers menus pour avoir une alimentation saine
## Confiance
### Taux de confiance de l'équipe dans l'itération
*Remplir le tableau sachant que :D est une confiance totale dans le fait de livrer les éléments de l'itération. Mettre le nombre de votes dans chacune des cases. Expliquer en cas de besoin.*
| | :( | :| | :) | :D |
|:--------: |:----: |:----: |:----: |:----: |
| Equipe 7 | *0* | *0* | *1* | *5* |
### Taux de confiance de l'équipe pour la réalisation du projet
*Remplir le tableau sachant que :D est une confiance totale dans le fait de réaliser le projet. Mettre le nombre de votes dans chacune des cases. Expliquer en cas de besoin.*
| | :( | :| | :) | :D |
|:--------: |:----: |:----: |:----: |:----: |
| Equipe 7 | *0* | *0* | *3* | *3* |
\ No newline at end of file
from django.contrib import admin from django.contrib import admin
from .models import Menu, QuestionQuotid from .models import Menu, QuestionQuotid, InfosUser
# Register your models here. # Register your models here.
admin.site.register(Menu) admin.site.register(Menu)
admin.site.register(QuestionQuotid) admin.site.register(QuestionQuotid)
admin.site.register(InfosUser)
\ No newline at end of file
from django import forms from django import forms
from django import forms
from datetime import datetime from datetime import datetime
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm, UserChangeForm from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
import os import os
from .models import QuestionQuotid from .models import QuestionQuotid, InfosUser, Maladies_permanentes, MALADIES_PERMANENTES
class UserForm(UserCreationForm): class UserForm(UserCreationForm):
...@@ -34,3 +35,12 @@ class QuestionQuotidForm(forms.ModelForm): ...@@ -34,3 +35,12 @@ class QuestionQuotidForm(forms.ModelForm):
class Meta: class Meta:
model = QuestionQuotid model = QuestionQuotid
fields = '__all__' fields = '__all__'
exclude = ('user', 'date')
class InfoUserForm(forms.ModelForm):
#maladies = forms.SelectMultiple(choices= Maladies_permanentes.objects.all())
maladies = forms.MultipleChoiceField(widget = forms.SelectMultiple(), choices=MALADIES_PERMANENTES)
class Meta:
model = InfosUser
fields = ('date_naissance', 'adresse', 'sexe', 'maladies')
\ No newline at end of file
# 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),
),
]
# 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),
),
]
# 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),
),
]
# Generated by Django 2.2.6 on 2019-11-27 22:25
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0005_auto_20191127_1756'),
]
operations = [
migrations.CreateModel(
name='InfosUser',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('adresse', models.CharField(max_length=200)),
('date_naissance', models.DateField()),
('sexe', models.CharField(choices=[('M', 'Homme'), ('F', 'Femme'), ('N', 'Autre')], max_length=1)),
('maladies', models.TextField(max_length=200)),
],
),
migrations.AlterField(
model_name='questionquotid',
name='date',
field=models.DateField(default=datetime.date.today),
),
]
# Generated by Django 2.2.6 on 2019-11-27 22:27
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0006_auto_20191127_2225'),
]
operations = [
migrations.AlterField(
model_name='infosuser',
name='maladies',
field=models.TextField(max_length=200, null=True),
),
]
# Generated by Django 2.2.6 on 2019-11-27 22:28
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', '0007_auto_20191127_2227'),
]
operations = [
migrations.AddField(
model_name='infosuser',
name='user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='infosuser',
name='maladies',
field=models.TextField(blank=True, max_length=200, null=True),
),
]
# Generated by Django 2.2.6 on 2019-11-27 22:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0008_auto_20191127_2228'),
]
operations = [
migrations.AlterField(
model_name='infosuser',
name='adresse',
field=models.CharField(max_length=200, null=True),
),
migrations.AlterField(
model_name='infosuser',
name='date_naissance',
field=models.DateField(null=True),
),
migrations.AlterField(
model_name='infosuser',
name='sexe',
field=models.CharField(choices=[('M', 'Homme'), ('F', 'Femme'), ('N', 'Autre')], max_length=1, null=True),
),
]
# Generated by Django 2.2.6 on 2019-11-27 23:10
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0009_auto_20191127_2233'),
]
operations = [
migrations.AlterField(
model_name='questionquotid',
name='maladies',
field=models.CharField(blank=True, choices=[('RH', 'Rhume'), ('GR', 'Grippe'), ('AN', 'Angine')], max_length=3, null=True),
),
]
# Generated by Django 2.2.6 on 2019-11-27 23:35
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0010_auto_20191127_2310'),
]
operations = [
migrations.AlterField(
model_name='questionquotid',
name='date',
field=models.DateField(default=django.utils.timezone.now),
),
]
# Generated by Django 2.2.7 on 2019-11-28 09:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0011_auto_20191127_2335'),
]
operations = [
migrations.CreateModel(
name='Maladies_permanentes',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('maladies', models.CharField(blank=True, choices=[('DER', 'Maladies dermatologiques'), ('CAV', 'Maladies cardio-vasculaires'), ('RES', 'Maladies cardio-vasculaires'), ('CAN', 'Cancer'), ('OCU', 'Maladies et troubles oculaires'), ('GEN', 'Maladies génétiques'), ('INF', 'Maladies infectieuses'), ('RAR', 'Maladies rares')], max_length=3, null=True)),
],
),
]
# Generated by Django 2.2.7 on 2019-11-28 10:07
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0012_maladies_permanentes'),
]
operations = [
migrations.RemoveField(
model_name='infosuser',
name='maladies',
),
migrations.AddField(
model_name='infosuser',
name='maladies',
field=models.ManyToManyField(blank=True, null=True, to='nutriform.Maladies_permanentes'),
),
]
# Generated by Django 2.2.7 on 2019-11-28 10:07
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0013_auto_20191128_1107'),
]
operations = [
migrations.AlterField(
model_name='infosuser',
name='maladies',
field=models.ManyToManyField(blank=True, to='nutriform.Maladies_permanentes'),
),
]
# Generated by Django 2.2.7 on 2019-11-28 11:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('nutriform', '0014_auto_20191128_1107'),
]
operations = [
migrations.AlterField(
model_name='maladies_permanentes',
name='maladies',
field=models.CharField(choices=[('DER', 'Maladies dermatologiques'), ('CAV', 'Maladies cardio-vasculaires'), ('RES', 'Maladies cardio-vasculaires'), ('CAN', 'Cancer'), ('OCU', 'Maladies et troubles oculaires'), ('GEN', 'Maladies génétiques'), ('INF', 'Maladies infectieuses'), ('RAR', 'Maladies rares')], max_length=3, null=True),
),
]
# Generated by Django 2.2.7 on 2019-11-28 12:25
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', '0015_auto_20191128_1220'),
]
operations = [
migrations.AddField(
model_name='maladies_permanentes',
name='user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
from django.db import models from django.db import models
from django.contrib.auth.models import User from django.contrib.auth.models import User
from datetime import date
from django.utils import timezone
# Create your models here. # Create your models here.
User._meta.get_field('email')._unique = True User._meta.get_field('email')._unique = True
...@@ -48,8 +50,43 @@ MALADIES_CHOICES = [ ...@@ -48,8 +50,43 @@ MALADIES_CHOICES = [
] ]
class QuestionQuotid(models.Model): class QuestionQuotid(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
typeRepas = models.CharField(max_length=5, choices=TYPEMENU_CHOICES) typeRepas = models.CharField(max_length=5, choices=TYPEMENU_CHOICES)
nbh_activite = models.PositiveIntegerField() nbh_activite = models.PositiveIntegerField()
volume_eau = models.PositiveIntegerField() volume_eau = models.PositiveIntegerField()
maladies = models.CharField(max_length=3, choices=MALADIES_CHOICES) maladies = models.CharField(max_length=3, choices=MALADIES_CHOICES, null=True, blank=True)
poids = models.PositiveIntegerField(null=True) poids = models.PositiveIntegerField(null=True)
date = models.DateField(default=timezone.now)
def __str__(self):
return self.user.__str__() + " : " + self.date.__str__()
MALADIES_PERMANENTES = [
('DER', 'Maladies dermatologiques'),
('CAV', 'Maladies cardio-vasculaires'),
('RES', 'Maladies cardio-vasculaires'),
('CAN', 'Cancer'),
('OCU', 'Maladies et troubles oculaires'),
('GEN', 'Maladies génétiques'),
('INF', 'Maladies infectieuses'),
('RAR', 'Maladies rares')
]
class Maladies_permanentes (models.Model):
maladies = models.CharField(max_length=3, choices=MALADIES_PERMANENTES, null=True)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.maladies
SEXE_CHOICES = [
('M', 'Homme'),
('F', 'Femme'),
('N', 'Autre')
]
class InfosUser(models.Model):
adresse = models.CharField(max_length=200, null=True)
date_naissance = models.DateField(null=True)
sexe = models.CharField(max_length=1, choices=SEXE_CHOICES, null=True)
maladies = models.ManyToManyField(Maladies_permanentes, blank=True)
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
\ No newline at end of file
Ce diff est replié.
...@@ -8,6 +8,12 @@ ...@@ -8,6 +8,12 @@
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css"
integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="
crossorigin="" />
<script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js"
integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og=="
crossorigin=""></script>
<title>NutriForm</title> <title>NutriForm</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
......
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