diff --git a/app/org_eleicoes/votepeloclima/candidature/static/js/copy-to-clipboard.js b/app/org_eleicoes/votepeloclima/candidature/static/js/copy-to-clipboard.js index 2170aa32..e2f57435 100644 --- a/app/org_eleicoes/votepeloclima/candidature/static/js/copy-to-clipboard.js +++ b/app/org_eleicoes/votepeloclima/candidature/static/js/copy-to-clipboard.js @@ -1,7 +1,10 @@ const copyButton = document.querySelector("#copyButton"); -function copyURL() { - let url = window.location.href; +function copyURL(url=null) { + if (!url) { + // Se a URL não for passada, use a URL atual da página + url = window.location.href; + } let modalString = "?modal=true"; if (url.includes(modalString)) { diff --git a/app/org_eleicoes/votepeloclima/candidature/templates/candidature/dashboard.html b/app/org_eleicoes/votepeloclima/candidature/templates/candidature/dashboard.html index a784dcf1..b9d0c501 100644 --- a/app/org_eleicoes/votepeloclima/candidature/templates/candidature/dashboard.html +++ b/app/org_eleicoes/votepeloclima/candidature/templates/candidature/dashboard.html @@ -1,5 +1,5 @@ {% extends "votepeloclima/base.html" %} -{% load crispy_forms_filters %} +{% load static crispy_forms_filters social_share %} {% block content %}
@@ -70,6 +70,55 @@

{% endfor %} +
+
+
+
+
+
+
+

Outras informações

+

Compartilhe seu perfil com eleitores e ajude a divulgar suas propostas. Para mais detalhes sobre o processo de verificação, acesse o link abaixo. Se precisar de suporte ou tiver dúvidas, entre em contato conosco. Se preferir remover seu perfil e dados da plataforma, você pode excluir seu cadastro a qualquer momento.

+ +
+
+
+ {% if is_public and candidature %} +
+

Compartilhe seu perfil:

+
+ {% with request.scheme|add:"://"|add:request.get_host as base_url %} + + + WhatsApp + + + + Twitter + + + + LinkedIn + + + + Facebook + + + {% endwith %} +
+
+ {% endif %} +
+
{% endblock %} + +{% block footer_js %} + +{% endblock %} diff --git a/app/org_eleicoes/votepeloclima/candidature/templatetags/social_share.py b/app/org_eleicoes/votepeloclima/candidature/templatetags/social_share.py new file mode 100644 index 00000000..23f9d349 --- /dev/null +++ b/app/org_eleicoes/votepeloclima/candidature/templatetags/social_share.py @@ -0,0 +1,32 @@ +from django import template +from urllib.parse import urlencode + +register = template.Library() + +@register.simple_tag +def share_url(base_url, slug, platform): + url = f"{base_url}/c/{slug}" + + if platform == 'whatsapp': + text = ("Oi! As eleições estão chegando e o futuro da nossa cidade depende do nosso voto. " + "Compartilho com você uma das candidaturas comprometidas na luta pelo meio ambiente e contra as ameaças climáticas. " + "Conheça as propostas na plataforma *Vote pelo Clima!*") + return f"https://wa.me/?text={urlencode({'text': text})}{url}" + + elif platform == 'twitter': + text = ("O clima mudou. A política precisa mudar. #VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil " + "comprometidas com a pauta climática, eu sou uma delas! Acesse o perfil e conheça as propostas.") + return f"https://twitter.com/intent/tweet?url={url}&{urlencode({'text': text})}" + + elif platform == 'linkedin': + title = "O clima mudou. A política precisa mudar." + summary = ("#VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil comprometidas com a pauta climática, " + "eu sou uma delas! Acesse o perfil e conheça as propostas.") + return f"https://www.linkedin.com/shareArticle?mini=true&url={url}&{urlencode({'title': title, 'summary': summary})}" + + elif platform == 'facebook': + quote = ("O clima mudou. A política precisa mudar. #VotePeloClima é a plataforma que reúne candidaturas de todo o Brasil " + "comprometidas com a pauta climática, eu sou uma delas! Acesse o perfil e conheça as propostas.") + return f"https://www.facebook.com/sharer/sharer.php?u={url}&{urlencode({'quote': quote})}" + + return url \ No newline at end of file diff --git a/app/org_eleicoes/votepeloclima/candidature/views/oauth.py b/app/org_eleicoes/votepeloclima/candidature/views/oauth.py index 273cb66b..bbc63ee0 100644 --- a/app/org_eleicoes/votepeloclima/candidature/views/oauth.py +++ b/app/org_eleicoes/votepeloclima/candidature/views/oauth.py @@ -61,14 +61,15 @@ def get_context_data(self, **kwargs): list(map(lambda x: x.get("is_valid"), checkout_steps)), ) + is_public = flow.status in [CandidatureFlowStatus.is_valid, CandidatureFlowStatus.editing] and flow.candidature + context.update( { "flow": flow, "checkout_steps": checkout_steps, "checkout_is_valid": is_valid, - "is_public": flow.status - in [CandidatureFlowStatus.is_valid, CandidatureFlowStatus.editing] - and flow.candidature, + "is_public": is_public, + "candidature": flow.candidature if is_public else None, } )