|
|
## 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éé |