Skip to content

Commit

Permalink
simplification / passage de l'inscription à la veille dans l'espace m…
Browse files Browse the repository at this point in the history
…embre
  • Loading branch information
agallou committed Jul 21, 2019
1 parent 4531529 commit f5152fd
Show file tree
Hide file tree
Showing 11 changed files with 132 additions and 125 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
},
{
"nom": "Veille",
"lien": path('techletter'),
"lien": path('member_techletter'),
"is_active": current == "techletter",
},
{
Expand Down
4 changes: 2 additions & 2 deletions app/Resources/views/site/member/index.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@
<div class="square">
<i class="fa fa-bullhorn"></i> <span class="square--title"> Veille de l'AFUP</span> : {% if has_member_subscribed_to_techletter %}inscrit(e){% else %}non inscrit{% endif %}
<div class="square--link">
<a class="button-inverted button__medium {% if not has_member_subscribed_to_techletter %}button--call-to-action{% endif %}" href="{{ path('techletter') }}">
{% if has_member_subscribed_to_techletter %}Se désincrire{% else %}S'inscrire{% endif %}
<a class="button-inverted button__medium {% if not has_member_subscribed_to_techletter %}button--call-to-action{% endif %}" href="{{ path('member_techletter') }}">
{% if has_member_subscribed_to_techletter %}Consulter{% else %}S'inscrire{% endif %}
</a>
</div>
</div>
Expand Down
51 changes: 51 additions & 0 deletions app/Resources/views/site/member/techletter.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{% extends ':admin/association/membership:_base.html.twig' %}

{% block stylesheets %}
{{ parent() }}
<link rel="stylesheet" href="{{ asset('css/glyphicons.css') }}" media="screen" />
<link rel="stylesheet" href="{{ asset('css/techletter.css') }}" media="screen" />
{% endblock %}


{% block submenu %}
{% include ':admin/association/membership:_member_menu.html.twig' with {
current: "techletter"
} only %}
{% endblock %}

{% block page_title %}Veille de l'AFUP{% endblock %}


{% block page_content %}

<p>Pour plus d'informations sur la veille de l'AFUP, consultez <a href="{{ path('techletter') }}">cette page</a>.</p>

{% if not feeUpToDate %}
<div class="txtcenter">
<p class="erreur">
Vous n'êtes pas à jour de votre cotisation.<br>
<br>
Vous ne pourrez donc pas recevoir, vous inscrire ni consulter l'historique des veilles de l'AFUP.<br>
<br>Vous pouvez dès à présent régler votre cotisation via <a href="{{ path('member_membership_fee') }}">"Cotisations".</a>
</p>
</div>
{% else %}
<div class="txtcenter">
{% if subscribed %}
<p>Vous recevez actuellement la veille de l'AFUP deux fois par mois sur l'adresse {{ app.user.email }}.</p>
<br />
<a href="{{ path('member_techletter_unsubscribe') }}" class="button button-inverted">Me désincrire</a>
{% else %}
<p>Vous ne recevez actuellement pas la veille de l'AFUP.</p>
<br />

<form class="techletter-subscription--form" method="post" action="{{ path('member_techletter_subscribe') }}">
<input type="hidden" name="_csrf_token" value="{{ token }}" />
<button class="button button--call-to-action">M'inscrire</button>
</form>

{% endif %}
</div>
{% endif %}

{% endblock %}
53 changes: 7 additions & 46 deletions app/Resources/views/site/techletter/index.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
)) }}

<div class="techletter-subscription" id="container">

<div class="techletter-subscription--header">
<div class="techletter-subscription-capture">
<img src="{{ asset('images/techletter/sample.png') }}" />
Expand All @@ -23,7 +24,7 @@
Tous les 15 jours, recevez les infos à ne pas rater, sélectionnées par les experts de l'AFUP.<br />
</p>
<p>
<a class="banner-button" href="#techletter-inscription">&gt;&gt; Je m'inscris &lt;&lt;</a>
<a class="banner-button" href="{{ path('member_techletter') }}">&gt;&gt; Je m'inscris &lt;&lt;</a>
</p>
</div>
</div>
Expand All @@ -46,53 +47,13 @@
</div>

<div class="techletter-subscription-argument">
<h3>Inscription</h3>
<ul class="techletter-subscription--check" id="techletter-inscription">
<li>
{% if loggedIn %}
<span class="techletter-subscription--check-checked glyphicon glyphicon-check"></span>
Être connecté au Back-office de l'AFUP
{% else %}
<span class="techletter-subscription--check-unchecked glyphicon glyphicon-unchecked"></span>
Être connecté au <a href="{{ url('admin_login') }}?target={{ path('techletter') }}">Back-office de l'AFUP</a>
{% endif %}
</li>

<li>
{% if feeUpToDate %}
<span class="techletter-subscription--check-checked glyphicon glyphicon-check"></span>
Être membre à jour de cotisation
{% else %}
<span class="techletter-subscription--check-unchecked glyphicon glyphicon-unchecked"></span>
Être membre à jour de cotisation. <a href="{{ legacy_router.adminUrl('membre_cotisation') }}">Payer ma cotisation</a>.
{% endif %}

</li>

<li>
{% if subscribed %}
{% if not feeUpToDate %}
<span class="techletter-subscription--check-unchecked glyphicon glyphicon-unchecked"></span>
Vous etes inscrit mais votre cotisation n'est plus à jour. Vous ne recevrez la newsletter que lorsque celle-ci sera à jour.
{% else %}
<span class="techletter-subscription--check-checked glyphicon glyphicon-check"></span>
Félicitations vous &ecirc;tes déjà inscrit!
{% endif %}
{% else %}
<span class="techletter-subscription--check-unchecked glyphicon glyphicon-unchecked"></span>
Vous inscrire en cliquant sur ce bouton:
<form class="techletter-subscription--form" method="post" action="{{ path('techletter_subscribe') }}">
<input type="hidden" name="_csrf_token" value="{{ token }}" />
<button class="banner-button">&gt;&gt; Je m'inscris &lt;&lt;</button>
</form>
{% endif %}
</li>
</ul>
<h3>Prérequis</h3>
<p>
Pour recevoir cette veille il faut être membre à jour de cotisation et cliquer sur le <a href="{{ path('member_techletter') }}">bouton d'inscription</a>
dans l'espace membres.
</p>
</div>

</div>



</div>
{% endblock %}
28 changes: 0 additions & 28 deletions app/Resources/views/site/techletter/subscribe.html.twig

This file was deleted.

13 changes: 13 additions & 0 deletions app/config/routing/admin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,3 +83,16 @@ member_general_meeting:
member_general_meeting_reports_download:
path: /member/general-meeting-report-download/{filename}
defaults: {_controller: AppBundle:MemberShip:generalMettingDownloadReport}

member_techletter:
path: /member/techletter
defaults: {_controller: AppBundle:MemberShip:techletter}

member_techletter_unsubscribe:
path: /member/techletter-unsubscribe
defaults: {_controller: AppBundle:MemberShip:techletterUnsubscribe}

member_techletter_subscribe:
path: /member/techletter-subscribe
defaults: {_controller: AppBundle:MemberShip:techletterSubscribe}
methods: ["POST"]
5 changes: 0 additions & 5 deletions app/config/routing/site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,6 @@ techletter:
options:
sitemap: true

techletter_subscribe:
path: /techletter/subscription
defaults: {_controller: AppBundle:Techletter:subscribe }
methods: ["POST"]

techletter_webhook:
path: /techletter/webhook
defaults: {_controller: AppBundle:Techletter:webhook }
Expand Down
18 changes: 0 additions & 18 deletions htdocs/css/techletter.css
Original file line number Diff line number Diff line change
Expand Up @@ -58,24 +58,6 @@ div.techletter-subscription{
}
}

ul.techletter-subscription--check{
text-align: left;
}
ul.techletter-subscription--check li span{
font-size:3em;
vertical-align: middle;
}
ul.techletter-subscription--check li span.techletter-subscription--check-unchecked{
color: #ed0678;
}

ul.techletter-subscription--check li span.techletter-subscription--check-checked{
color: #1ebdff;
}
ul.techletter-subscription--check li{
list-style-type: none;
}

form.techletter-subscription--form{
margin: 0;
background-color: transparent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace AppBundle\Association\Model\Repository;

use AppBundle\Association\Model\TechletterUnsubscription;
use AppBundle\Association\Model\User;
use CCMBenchmark\Ting\Repository\Metadata;
use CCMBenchmark\Ting\Repository\MetadataInitializer;
use CCMBenchmark\Ting\Repository\Repository;
Expand All @@ -28,6 +29,19 @@ public function createFromWebhookData(array $data)
return $techletterUnsubscription;
}

public function createFromUser(User $user)
{
$techletterUnsubscription = new TechletterUnsubscription();
$techletterUnsubscription
->setEmail($user->getEmail())
->setReason("MANUAL")
->setMailchimpId(null)
->setUnsubscriptionDate(new \DateTime())
;

return $techletterUnsubscription;
}

public static function initMetadata(SerializerFactoryInterface $serializerFactory, array $options = [])
{
$metadata = new Metadata($serializerFactory);
Expand Down
43 changes: 43 additions & 0 deletions sources/AppBundle/Controller/MemberShipController.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
use AppBundle\Association\Model\CompanyMemberInvitation;
use AppBundle\Association\Model\Repository\CompanyMemberInvitationRepository;
use AppBundle\Association\Model\Repository\CompanyMemberRepository;
use AppBundle\Association\Model\Repository\TechletterSubscriptionsRepository;
use AppBundle\Association\Model\Repository\TechletterUnsubscriptionsRepository;
use AppBundle\Association\Model\Repository\UserRepository;
use AppBundle\Association\Model\User;
use AppBundle\LegacyModelFactory;
Expand Down Expand Up @@ -565,4 +567,45 @@ private function prepareGeneralMeetingsReportsList()

return $reports;
}

public function techletterAction()
{
return $this->render(':site/member:techletter.html.twig', [
'subscribed' => $this->get('ting')->get(TechletterSubscriptionsRepository::class)->hasUserSubscribed($this->getUser()),
'feeUpToDate' => ($this->getUser() !== null and $this->getUser()->getLastSubscription() > new \DateTime()),
'token' => $this->get('security.csrf.token_manager')->getToken('techletter_subscription'),
]);
}

public function techletterSubscribeAction(Request $request)
{
$user = $this->getUser();
$token = $this->get('security.csrf.token_manager')->getToken('techletter_subscription');

if (
$user === null
|| $user->getLastSubscription() < new \DateTime()
|| $request->request->has('_csrf_token') === false
|| $request->request->get('_csrf_token') !== $token->getValue()
) {
throw $this->createAccessDeniedException('You cannot subscribe to the techletter');
}

$this->addFlash('success', "Vous êtes maintenant inscrit à la veille de l'AFUP");

$this->get('ting')->get(TechletterSubscriptionsRepository::class)->subscribe($user);

return $this->redirectToRoute('member_techletter');
}

public function techletterUnsubscribeAction(Request $request)
{
$techletterUnsubscriptionRepository = $this->get('ting')->get(TechletterUnsubscriptionsRepository::class);
$techletterUnsubscription = $techletterUnsubscriptionRepository->createFromUser($this->getUser());
$techletterUnsubscriptionRepository->save($techletterUnsubscription);

$this->addFlash('success', "Vous êtes maintenant désincrit à la veille de l'AFUP");

return $this->redirectToRoute('member_techletter');
}
}
26 changes: 1 addition & 25 deletions sources/AppBundle/Controller/TechletterController.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace AppBundle\Controller;

use AppBundle\Association\Model\Repository\TechletterSubscriptionsRepository;
use AppBundle\Association\Model\Repository\TechletterUnsubscriptionsRepository;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
Expand All @@ -11,30 +10,7 @@ class TechletterController extends SiteBaseController
{
public function indexAction()
{
return $this->render('site/techletter/index.html.twig', [
'subscribed' => $this->get('ting')->get(TechletterSubscriptionsRepository::class)->hasUserSubscribed($this->getUser()),
'loggedIn' => ($this->getUser() !== null),
'feeUpToDate' => ($this->getUser() !== null and $this->getUser()->getLastSubscription() > new \DateTime()),
'token' => $this->get('security.csrf.token_manager')->getToken('techletter_subscription')
]);
}

public function subscribeAction(Request $request)
{
$user = $this->getUser();
$token = $this->get('security.csrf.token_manager')->getToken('techletter_subscription');

if (
$user === null
|| $user->getLastSubscription() < new \DateTime()
|| $request->request->has('_csrf_token') === false
|| $request->request->get('_csrf_token') !== $token->getValue()
) {
throw $this->createAccessDeniedException('You cannot subscribe to the techletter');
}

$this->get('ting')->get(TechletterSubscriptionsRepository::class)->subscribe($user);
return $this->render('site/techletter/subscribe.html.twig');
return $this->render('site/techletter/index.html.twig');
}

/**
Expand Down

0 comments on commit f5152fd

Please sign in to comment.