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

Add invites/signups to Slack, PiratNyt etc to post-signup page #575

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e481d17
Added embeeded PiratNyt signup form to user_created page
JondareHM Jul 28, 2020
6ce92d2
Playing around with the look of the embed form
JondareHM Jul 28, 2020
e77aec1
Merge branch 'master' into volunteer_invites_page
JondareHM Aug 3, 2020
6b76027
cleaned up the embed code a little to make it more readable, will sta…
JondareHM Aug 3, 2020
6b78180
Added Slack invite and Facebook link, made the page tabbed, and style…
JondareHM Aug 5, 2020
163c188
Made the Social page, and added Sentry tracking to the fontend.
JondareHM Aug 10, 2020
0121016
Merge branch 'master' into volunteer_invites_page
JondareHM Aug 10, 2020
8e4908b
attempts to make fetch happen
JondareHM Aug 10, 2020
ff3e533
Still trying to make fetch happen
JondareHM Aug 11, 2020
1c5f222
Merge branch 'master' into volunteer_invites_page
JondareHM Aug 11, 2020
e362a52
Made the /social page login only, and made it possible to filter what…
JondareHM Aug 11, 2020
436d567
Merge branch 'volunteer_invites_page' of https://github.com/JondareHM…
JondareHM Aug 11, 2020
369cc47
Merge branch 'master' into volunteer_invites_page
JondareHM Sep 7, 2020
38fe4a7
fixed test
JondareHM Sep 7, 2020
151710c
Merge branch 'volunteer_invites_page' of https://github.com/JondareHM…
JondareHM Sep 7, 2020
9f9c13b
Merge branch 'master' into volunteer_invites_page
JondareHM Oct 13, 2020
d304baf
Fixed test
JondareHM Oct 20, 2020
5775ba1
trying to make fetch happen
JondareHM Oct 20, 2020
8a90bd3
Merge branch 'master' into volunteer_invites_page
JondareHM Nov 30, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added assets/facebook_header_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions members/static/members/js/slackform.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
function sendSlackDetails() {
alert("The form was submitted");
var form = new FormData(document.getElementById('slackform'));
fetch("https://slackinvite.codingpirates.dk/invite", {
"method": "POST",
"headers": {
"content-type": "multipart/form-data;"
},
"body": form
})
.then(response => {
console.log(response);
})
.catch(err => {
console.error(err);
});
}
100 changes: 100 additions & 0 deletions members/static/members/sass/mailchimp.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
@use "_definitions";
@use "buttons";

/* modified embed CSS */
#mc_embed_signup{
margin-bottom: 10px;
}

#mc_embed_signup{
> form {
display: block;
position: relative;
text-align: left;
}
> input {
border: 1px solid #ABB0B2;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.btn {
display: inline-block !important;
margin: 0 !important;
width: auto !important;
}
.mc-field-group {
position:relative;
min-height:50px;
}
div.mce_inline_error {
margin: 0 !important;
}
div#mce-responses {
float:left;
top:-1.4em;
padding:0em .5em 0em .5em;
overflow:hidden;
width:90%;
clear: both;
}
div.response {
padding:0 0 1em 0;
font-weight:bold;
float:left;
top:-1.5em;
z-index:1;
width:100%;
}
}

#slack_indsend {
width: auto !important;
float:left;
}

#mc-embedded-subscribe-form input[type=checkbox]{
display: inline !important;
width: auto !important;
margin-right: 10px;}

#mergeRow-gdpr {margin-top: 10px;}
#mergeRow-gdpr fieldset label {font-weight: normal;}
#mc-embedded-subscribe-form .mc_fieldset{border:none;min-height: 0px;padding-bottom:0px;}


/* Unused or unchanged Embed CSS */
/* MailChimp Form Embed Code - Classic - 12/17/2015 v10.7 */
#mc_embed_signup .small-meta {font-size: 11px;}
#mc_embed_signup .nowrap {white-space:nowrap;}

#mc_embed_signup .size1of2 {clear:none; float:left; display:inline-block; width:46%; margin-right:4%;}
* html #mc_embed_signup .size1of2 {margin-right:2%; /* Fix for IE6 double margins. */}
#mc_embed_signup .mc-field-group label {display:block; margin-bottom:3px;}
#mc_embed_signup .mc-field-group input {display:block; width:100%; padding:8px 0; text-indent:2%;}
#mc_embed_signup .mc-field-group select {display:inline-block; width:99%; padding:5px 0; margin-bottom:2px;}

#mc_embed_signup .datefield, #mc_embed_signup .phonefield-us{padding:5px 0;}
#mc_embed_signup .datefield input, #mc_embed_signup .phonefield-us input{display:inline; width:60px; margin:0 2px; letter-spacing:1px; text-align:center; padding:5px 0 2px 0;}
#mc_embed_signup .phonefield-us .phonearea input, #mc_embed_signup .phonefield-us .phonedetail1 input{width:40px;}
#mc_embed_signup .datefield .monthfield input, #mc_embed_signup .datefield .dayfield input{width:30px;}
#mc_embed_signup .datefield label, #mc_embed_signup .phonefield-us label{display:none;}

#mc_embed_signup .indicates-required {text-align:right; font-size:11px; margin-right:4%;}
#mc_embed_signup .asterisk {color:#e85c41; font-size:150%; font-weight:normal; position:relative; top:5px;}
#mc_embed_signup .clear {clear:both;}

#mc_embed_signup .mc-field-group.input-group ul {margin:0; padding:5px 0; list-style:none;}
#mc_embed_signup .mc-field-group.input-group ul li {display:block; padding:3px 0; margin:0;}
#mc_embed_signup .mc-field-group.input-group label {display:inline;}
#mc_embed_signup .mc-field-group.input-group input {display:inline; width:auto; border:none;}

#mc_embed_signup #mce-error-response {display:none;}
#mc_embed_signup #mce-success-response {color:#529214; display:none;}
#mc_embed_signup label.error {display:block; float:none; width:auto; margin-left:1.05em; text-align:left; padding:.5em 0;}

#mc_embed_signup #num-subscribers {font-size:1.1em;}
#mc_embed_signup #num-subscribers span {padding:.5em; border:1px solid #ccc; margin-right:.5em; font-weight:bold;}

#mc_embed_signup #mc-embedded-subscribe-form div.mce_inline_error {display:inline-block; margin:2px 0 1em 0; padding:5px 10px; background-color:rgba(255,255,255,0.85); -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; font-size:14px; font-weight:normal; z-index:1; color:#e85c41;}
#mc_embed_signup #mc-embedded-subscribe-form input.mce_inline_error {border:2px solid #e85c41;}
3 changes: 2 additions & 1 deletion members/static/members/sass/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@
@use "table";
@use "tab";
@use "department_list";
@import url("https://fonts.googleapis.com/css?family=Bungee|Lato|Pirata+One&display=swap");
@use "mailchimp";
@import url("https://fonts.googleapis.com/css?family=Bungee|Lato|Pirata+One&display=swap");
2 changes: 2 additions & 0 deletions members/templates/members/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
{% load static %}
<title>Coding Pirates Medlemssystem</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://browser.sentry-cdn.com/5.20.1/bundle.min.js" integrity="sha384-O8HdAJg1h8RARFowXd2J/r5fIWuinSBtjhwQoPesfVILeXzGpJxvyY/77OaPPXUo" crossorigin="anonymous"></script>
<script type="text/javascript">Sentry.init({ dsn: 'https://[email protected]/5378414' });</script>
<link href="https://fonts.googleapis.com/css?family=Bungee|Lato|Pirata+One&display=swap" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" />
Expand Down
9 changes: 9 additions & 0 deletions members/templates/members/entry_page.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,15 @@ <h4>Tilmeld arrangementer</h4>
</a>
</div>
</div>
<div>
<span><i class="fa-comments fa fa-4x"></i></span>
<div>
<h4>Tilmeld kommunikations kanaler</h4>
<a href="{% url "social_view" %}">
Kommunikation <i class="fa fa-long-arrow-alt-right"></i>
</a>
</div>
</div>
</div>

<p class="text-center">
Expand Down
1 change: 1 addition & 0 deletions members/templates/members/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{% extends 'members/base.html' %}

{% block content %}
<h1 class="loginTitle">Velkommen til medlemssystemet!</h1>
<div class="center col-12">
<form class="col-md-8 col-md-offset-1" method="post">
{% if form.errors %}
Expand Down
34 changes: 34 additions & 0 deletions members/templates/members/mailchimp_signup_form.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{% load static %}
<!--Mailchimp Embed form from https://us11.admin.mailchimp.com/lists/integration/embeddedcode?id=445725-->
<!-- Begin Mailchimp Signup Form -->
<div id="mc_embed_signup" class="container">
<p>PiratNyt er vores interne nyhedsbrev til alle frivillige i organisationen. Her skriver vi om ting, der er relevante for dig som frivillig samt generelle opdateringer om Coding Pirates. Du vil bl.a. modtage nyt fra Hovedbestyrelsen, inspiration til klubaftenerne, gode råd samt nyheder fra måneden, der er gået.</p>
<form action="https://codingpirates.us11.list-manage.com/subscribe/post?u=55ca261a7dd7f512770953b3a&amp;id=1c46da61ea" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<div class="mc-field-group">
<label for="mce-EMAIL">Email: <span class="asterisk">*</span>
</label>
<input type="email" value="" name="EMAIL" class="required email form-control" id="mce-EMAIL">
</div>
<div id="mergeRow-gdpr" class="mergeRow gdpr-mergeRow content__gdprBlock mc-field-group">
<div class="content__gdpr">
<fieldset class="mc_fieldset gdprRequired mc-field-group" name="interestgroup_field">
<label class="checkbox subfield" for="gdpr_7613"><input type="checkbox" id="gdpr_7613" name="gdpr[7613]" value="Y" class="av-checkbox gdpr"><span>PiratNyt</span> </label>
</fieldset>
<div class="content__gdprLegal">
<p>Hvis du fortryder, kan du afmelde dig igen ved at klikke på linket i bunden af hver mail fra os, eller du kan kontakte os på [email protected]. Vi respekterer dit privatliv. Ved at klikke nedenfor accepterer du, at vi deler dine data med Mailchimp så vi kan sende dig PiratNyt. <a href="https://mailchimp.com/legal/" target="_blank">Du kan læse mere om Mailchimps privatlivs politikker her.</a></p>
</div>
</div>
</div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_55ca261a7dd7f512770953b3a_1c46da61ea" tabindex="-1" value=""></div>
<div class="clear"><input type="submit" value="Tilmeld" name="subscribe" id="mc-embedded-subscribe" class="btn block-button"></div>
</div>
</form>
</div>
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>
<script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
<!--End mc_embed_signup-->
47 changes: 47 additions & 0 deletions members/templates/members/slack_invite.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{% load static %}
<div class="container">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut nec nunc nisl. Suspendisse eu neque tempus, fringilla justo quis, ultrices quam. Nam eleifend feugiat ipsum, sed sodales eros luctus sed.</p>
<form id="slackform" action="" onsubmit="return sendSlackDetails(event)">
<div class="form-group">
<label for="name">Navn:</label>
<input name="name" type="text" class="form-control" id="name" placeholder="Miss 1337" required>
<label for="email">Email:</label>
<input name="email" type="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="[email protected]" required>
</div>
<div class="form-group">
<label for="type"><strong>Frivillig eller barn?</strong></label>
<label class="radio-inline"><input type="radio" name="type" value="frivillig" required>Frivillig</label>
<label class="radio-inline"><input type="radio" name="type" value="barn" required>barn</label>
</div>
<div class="form-group">
<label for="info">Info:</label>
<textarea name="info" class="form-control" rows="5" id="info" placeholder="Fortæl lidt om dig selv. Hvilken forening/afdeling? Sidder du i en bestyrelse? Er der andet vi skal vide?" required></textarea>
</div>
<p id="slack_succes" hidden>Success</p>
<button type="submit" class="btn block-button">Indsend</button>
</form>
</div>
<script type="text/javascript">
function sendSlackDetails(event) {
event.preventDefault()
var form = new FormData();
form.append("name", "torben test");
form.append("email", "[email protected]");
form.append("type", "frivillig");
form.append("info", "beskrivelse");
fetch("https://cors-anywhere.herokuapp.com/https://slackinvite.codingpirates.dk/invite", {
"method": "POST",
"mode": "cors",
"headers": {
"content-type": "multipart/form-data;"
},
"body": form
})
.then(response => {
console.log(response);
})
.catch(err => {
console.error(err);
});
}
</script>
30 changes: 30 additions & 0 deletions members/templates/members/social_view.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{% extends 'members/base.html' %}
{% load static %}

{% block content %}
<h1>&nbsp;</h1>
<div class="jumbotron">
<p>Herunder kan du finde og tilmelde dig vores forskellige communities og kommunikations kanaler, så du kan holde dig godt opdateret:</p>
<div class="tabs">
<ul>
{% if volunteer %}
<li>Piratnyt - Nyhedsbrev</li>
<li>Coding Pirates Slack</li>
{% endif %}
<li>Coding Pirates Facebook</li>
</ul>
{% if volunteer %}
<section>
{% include "members/mailchimp_signup_form.html"%}
</section>
<section>
{% include "members/slack_invite.html" %}
</section>
{% endif %}
<section>
<div class="container">
<a href="https://www.facebook.com/groups/codingpiratescommunity"><img src="{% static "facebook_header_image.png" %}"></a>
</div>
</section>
</div>
{% endblock %}
25 changes: 23 additions & 2 deletions members/templates/members/user_created.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,33 @@
{% extends 'members/base.html' %}
{% load static %}

{% block content %}
<h1>&nbsp;</h1>
<div class="jumbotron">
<h1>Brugeren er oprettet!</h1>
<p>Vi har oprettet en bruger til dig. Du logger ind ved hjælp af din e-mail-adresse samt adgangskode.</p>
<p><i>Adgangskoden er {{ password }}</i></p>
<p>Hvis du klikker væk fra denne side, kan du kun få koden igen ved nulstilning.</p>
<a class="btn btn-primary" href="{% url 'person_login' %}">Gå til log ind →</a>
<p>Herunder kan du finde og tilmelde dig vores forskellige communities og kommunikations kanaler, så du kan holde dig godt opdateret:</p>
<div class="tabs">
<ul>
{% if volunteer %}
<li>Piratnyt - Nyhedsbrev</li>
<li>Coding Pirates Slack</li>
{% endif %}
<li>Coding Pirates Facebook</li>
</ul>
{% if volunteer %}
<section>
{% include "members/mailchimp_signup_form.html"%}
</section>
<section>
{% include "members/slack_invite.html" %}
</section>
{% endif %}
<section>
<div class="container">
<a href="https://www.facebook.com/groups/codingpiratescommunity"><img src="{% static "facebook_header_image.png" %}"></a>
</div>
</section>
</div>
{% endblock %}
4 changes: 1 addition & 3 deletions members/tests/test_functional/test_create_family.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,7 @@ def test_entry_page(self):
)[0].text.split(" ")[-1]

# Go to login page,
self.browser.find_elements_by_xpath(
"//*[text()[contains(.,'Gå til log ind')]]"
)[0].click()
self.browser.find_element_by_id("login-logout").click()

# enter email and password
field = self.browser.find_element_by_name("username")
Expand Down
2 changes: 2 additions & 0 deletions members/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
departmentView,
Activities,
AdminSignup,
socialView,
)
from django.contrib.auth import views as auth_views
from graphene_django.views import GraphQLView
Expand Down Expand Up @@ -108,4 +109,5 @@
url(r"quickpay_callback$", QuickpayCallback, name="quickpay_callback"),
url(r"department_signup$", DepartmentSignView, name="department_signup"),
url(r"departments$", departmentView, name="department_view"),
url(r"social$", socialView, name="social_view"),
]
1 change: 1 addition & 0 deletions members/views/EntryPage.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ def EntryPage(request):

# redirect to success
request.session["password"] = password
request.session["volunteer"] = False
return HttpResponseRedirect(reverse("user_created"))
else:
return render(
Expand Down
1 change: 1 addition & 0 deletions members/views/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@
from members.views.departmentView import departmentView
from members.views.Activities import Activities
from members.views.AdminSignup import AdminSignup
from members.views.socialView import socialView
14 changes: 14 additions & 0 deletions members/views/socialView.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from django.shortcuts import render
from django.contrib.auth.decorators import login_required, user_passes_test
from members.utils.user import user_to_person, has_user
from members.models.volunteer import Volunteer


@login_required
@user_passes_test(has_user, "/admin_signup/")
def socialView(request):
person = user_to_person(request.user)
volunteer = False
if Volunteer.objects.filter(person=person).count() > 0:
volunteer = True
return render(request, "members/social_view.html", {"volunteer": volunteer})
9 changes: 8 additions & 1 deletion members/views/userCreated.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,15 @@ def userCreated(request):
if "password" in request.session:
password = request.session.get("password")
del request.session["password"]
volunteer = False
if request.session.get("volunteer"):
volunteer = True
else:
return HttpResponse(
"Du kan ikke tilgå adressen direkte. Du skal oprette en bruger for at komme hertil."
)
return render(request, "members/user_created.html", {"password": password})
return render(
request,
"members/user_created.html",
{"password": password, "volunteer": volunteer},
)
1 change: 1 addition & 0 deletions members/views/volunteerSignup.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ def volunteerSignup(request):
# department.new_volunteer_email(vol_signup.cleaned_data['volunteer_name'])

# redirect to success
request.session["volunteer"] = True
request.session["password"] = password
return HttpResponseRedirect(reverse("user_created"))
else:
Expand Down