Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Ajout d'un attribut pour filtrer l'envoi des besoins d'achat #1446

Merged
merged 15 commits into from
Oct 7, 2024

Conversation

chloend
Copy link
Contributor

@chloend chloend commented Sep 30, 2024

Quoi ?

Permettre aux admins d’affecter certains dépôts de besoins à des partenaires.

Pourquoi ?

Des partenaires externes en ont fait la demande.

Comment ?

  • En ajout d'un bouton "Valider et envoyer aux partenaires" dans l'admin des tenders.

  • En ajoutant un attribut 'send_to_commercial_partners_only' dans le modèle Tender qui sera set à True en cliquant sur le bouton "Valider et envoyer aux partenaires".

  • En modifiant la méthode 'validated_sent_batch' de TenderQueryset pour filtrer les envois aux structures lorsque l'attribut est False

Captures d'écran (optionnel)

Ajout du bouton
boutons_envoi_besoins

Modale avec message personnalisé si structures/partenaires
confirmation_envoi_structures
confirmation_envoi_partenaires

Tests de l'attribut

  • Attribut False par défaut
  • Attribut set à True quand on clique sur le bouton adéquat
  • L'envoi des besoins par batch skip les besoins dont l'attribut est True

Copy link
Contributor

@madjid-asa madjid-asa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quelques petites modification à apporter mais cool dans l'ensemble :)

if obj.amount_int > settings.BREVO_TENDERS_MIN_AMOUNT_TO_SEND:
api_brevo.create_deal(tender=obj, owner_email=request.user.email)
# we link deal(tender) with author contact
api_brevo.link_deal_with_contact_list(tender=obj)
self.message_user(request, "Ce dépôt de besoin a été synchronisé avec Brevo")
self.message_user(request, "Ce dépôt de besoin a été validé. Il sera envoyé en temps voulu :)")
obj.save()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pas besoin du .save() le set_validated le fait déjà, mais du coup tu peux remonter obj.send_to_commercial_partners_only = True pour le mettre avant le set_validated

@@ -632,6 +633,9 @@ class Tender(models.Model):
) # could become foreign key
# Admin specific for tenders
is_reserved_tender = models.BooleanField("Appel d'offre reservé", null=True)
send_to_commercial_partners_only = models.BooleanField(
"Envoyer uniquement aux partenaires externes", default=False
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"Envoyer uniquement aux partenaires externes", default=False
"Envoyer uniquement aux partenaires commerciaux", default=False

Préciser commerciaux pour ne pas confondre avec les partenaires externes (types facilitateurs ou autre)

Comment on lines 25 to 26
const recipient = button.getAttribute('data-recipient');
const title = button.getAttribute('data-title');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const recipient = button.getAttribute('data-recipient');
const title = button.getAttribute('data-title');
const recipient = button.dataset.recipient;
const title = button.dataset.title;

Tu utilise généralement les getAttribute pour les attributs non-standards, mais pour les data-* tu peux utiliser dataset

Copy link
Contributor

@SebastienReuiller SebastienReuiller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci @chloend pour ta première PR, elle est top ! J'ai fait une petite remarque sur le message de confirmation pour ma part.
Aussi, à l'usage, je trouve qu'on perd l'info dans l'admin que le dépôt a été envoyé uniquement aux partenaires. Je pense qu'il faut à minima afficher la case à cochée en readonly après la validation ou alors ajouter l'info après le texte "Validé le {{ tender.first_sent_at|date }}" .

messageElement.textContent = "Le besoin « " + title + " » sera envoyé aux structures.";
confirmBtn.setAttribute('name', '_validate_send_to_siaes');
} else if (recipient === 'partners') {
messageElement.textContent = "Le besoin « " + title + " » sera envoyé aux partenaires.";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'aurais peut-être précisé ici: "Le besoin '[titre]' sera envoyé uniquement aux prestataires commerciaux.". Qu'en penses tu ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci pour ta remarque @SebastienReuiller, effectivement ce serait plus clair comme ça !

@chloend chloend added the recette-jetable Déclenche une recette jetable sur CC label Oct 2, 2024
Copy link
Contributor

github-actions bot commented Oct 2, 2024

🥁 La recette jetable est prête ! 👉 Je veux tester cette PR !

Copy link
Contributor

@madjid-asa madjid-asa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bien joué pour ta première PR 💯 🌮

Copy link
Contributor

@SebastienReuiller SebastienReuiller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LG ! Bravo !

@chloend chloend merged commit d074709 into master Oct 7, 2024
8 checks passed
@chloend chloend deleted the chloend/send-tenders-to-commercial-partners branch October 7, 2024 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
recette-jetable Déclenche une recette jetable sur CC
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants