Modifications
Historique de la page
Ajout des premières pages pour l'aide au développement
rédigé
avr. 19, 2018
par
Mindiell
Afficher les modifications d'espaces
En ligne
Côte à côte
contribution/campaign.md
0 → 100644
Voir la page @
3c495bcd
## Campaign
Cette application sert à gérer les campagnes de dons.
### Modèles
Tous les modèles de cette application sont liés à une seule campagne. Chacune des contreparties,
ainsi que les demandes de contrepartie(s) sont en effet liées à la camapgne en cours au moment de
la génération de ces différents objets.
#### Campaign
Ce modèle représente une campagne. Il sert à gérer les campagnes futures et actuelles. Il sert plus
de chapeau à l'ensemble des autres objets et n'a pas vraiment d'utilité propre si ce n'est définir
des valeurs globales à la campagne.
Il possède une date de début et une date de fin de campagne, une somme à atteindre pour cette
campagne, un booléen permettant de spécifier si la campagne est active ou pas, une image à afficher
en fond de page d'accueil, et
[
un système de paiement
](
#payment
)
associé à la campagne.
#### Counterpart
Ce modèle représente une contrepartie. Le modèle permet de générer la contrepartie si besoin. Une
contrepartie est un objet (réel ou virtuel) offert à la demande aux donateurs suivant certaines
règles (voir les
[
Bonus
](
#bonus
)
, ci-après).
Une Counterpart possède un type, une description, une icone, un booléen signalant si la contrepartie
est envoyable par courrier et enfin le type d'objet généré par la contrepartie (si nécessaire).
#### PDFCounterpart
Ce modèle représente une contrepartie de type PDF. Ce modèle sert aux contreparties de type PDF
uniquement.
Un PDFCounterpart hérite du modèle Counterpart et y ajoute un template (pour la génération du PDF).
#### Bonus
Ce modèle permet, pour chaque campagne, de lister un ensemble de contreparties qu'un donateur peut
souhaiter recevoir et d'y attacher un palier minimal à atteindre. Si le palier vaut 0, alors le
bonus peut être réclamé à chaque don. Sinon, le donateur devra cumuler suffisamment pour atteindre
le palier nécessaire.
Un Bonus possède un lien vers la campagne à laquelle il est lié, un nom ainsi qu'une icone, un
palier à atteindre, et enfin une liste de contreparties.
#### ClaimedBonus
Ce modèle représente un bonus réclamé par un donateur.
Il est constitué d'un lien vers le bonus réclamé (modèle
[
Bonus
](
#bonus
)
), le donateur ayant fait la
demande (modèle
[
Donor
](
#donor
)
) s'il s'agit d'un bonus avec un palier supérieur à 0, le don (modèle
[
Pledge
](
#pledge
)
) s'il s'agit d'un bonus avec un palier égal à 0.
#### BonusManager
Ce modèle représente un manager de bonus ???
#### Item
Ce modèle est une représentation de l'état de chaque Contrepartie réclamée par un Donateur. Il
permet de suivre l'état d'avancement de l'envoi de la Contrepartie au Donateur. En effet, lorsqu'un
Donateur réclame un Bonus, ce dernier peut contenir plusieurs Contreparties de différents types.
Les Contreparties seront alors envoyée de manières différentes, voire en plusieurs fois.
Item est constitué d'un type de Contrepartie, le statut de l'objet, le ClaimedBonus qui a créé
l'Item, l'adresse de destination de la Contrepartie, ainsi que la date de dernière mise à jour de
l'Item.
Un Signal est lié au statut chaque objet. Dès qu'un objet passe en 'done', un email est envoyé au
donateur (uniquement donc s'il s'agit d'un Item lié à un Bonus avec un palier supérieur à 0).
TODO: permettre la traduction de l'email envoyé
### Vues
#### Home
Affichage de la page d'accueil de la campagne en cours. Cette vue récupère les Bonus liés à la
Campaign actuelle, ainsi que la somme totale des dons et le nombre de jours restants. La vue crée
aussi le formulaire destiné à faire un don.
TODO: Considère qu'une seule campagne est en cours
TODO: Considère qu'une seule FAQ est en cours
TODO: Revoir le calcul de la somme totale des dons qui parait bien obscure
#### Faq
Affichage de la FAQ de la campagne en cours.
TODO: Comprendre ce que vient faire Opengraph là-dedans :o)
### Tests
Il n'y a aucun test dans cette application.
TODO: Rajouter des tests...
### Signals
Un signal est créé