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

Conversation

JondareHM
Copy link
Contributor

implements #482, #486

Copy link
Contributor

@Rotendahl Rotendahl left a comment

Choose a reason for hiding this comment

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

Yo, fedt at du er kommet vider med det issue.
Egentligt skulle jeg have beskrevet fremgangsmåden lidt bedre.

For at få dem skrevet op til nyhedsbrevet skal vi helt rigtigt sende en request til mailchimp.
Dette udklip fra deres api siger hvordan vi kan tilføje dem
https://mailchimp.com/developer/guides/manage-subscribers-with-the-mailchimp-api/
CleanShot 2020-07-28 at 23 05 58@2x

Det kan vi så enten vælge at gøre via python på backenden eller via javascript i frontenden.
Begge dele har sine fordelle og ulemper.

Fordelen ved at gøre det i backenden er at vi f.eks kan sætte en bool på person modellen så vi kan se alle dem der får nyhedsbrevet. Det ved jeg ikke hvor nødvendigt er, det kan man nok se i mailchimp backenden. Vi også bedre lave fejl håndtering i backenden, det er sværere at fange et crash i brugerens browser end i vores backend. (Ihvertfald indtil vi sætter sentry på javascripten).
Fordellen ved frontend er at det er en smule mindre kode.

Du bestemmer selv hvad du føler mest for :)

At have en seperat form til det er helt fint, så skal vi bare snart have error tracking via browseren, men det er ikke så slemt at sætte op.

Koden som den er nu er der dog nogle forbedringsforslag til.

Jeg gætter på at det bare er noget kode du har fundet mailchimps egen side eller ligende?
Det er der sådan set ikke noget galt med, men der skal ændres i den før det sættes ind.
Som det er nu er koden ikke nem at forstå.

Formatering gør koden meget svær at læse, med så lange linjer.
Specielt det javascript i bunden. Split CSS og javascript over i sine egne filer og
og formater divs osv. så linjerne bliver kortere.

Der tilføjes også et eksternt stylesheet inline i koden.
(linjen)
<link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css">
Hvad gør den CSS og hvorfor skal den med?

En anden ting er alt den javascript der bliver loadet.
Udover at der læses noget fra en s3 bucket i bunden så er der en jQuery reference til sidst i
det script. Jquery bliver kun loadet som en sideeffekt af bootstrap så det er lidt held at det overhovedet virker. Hvis vi en dag fjerner bootstrap så dør signup form og det er der ingen test til at tjekke for.

Koden blokken her, lyder skræmmende.

    	</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="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>

Jeg ved ikke hvad der foregår og kan ikke gennemskue det fra context. Hvis det er noget man skal i følge deres API skal vi nok have et link eller noget til det så man kan sætte sig ind i det.

@JondareHM
Copy link
Contributor Author

@Rotendahl Det er simpelthen bare en embed form som de har genereret specifikt til at man kan proppe ind og derigennem lade folk tilmelde sig. Helt klar på at det ikke ligefrem er kønt kode, men ville bare heller ikke røre for meget ved det når nu det var embed kode. Men lyder som om du vil lave noget helt fra bunden af i stedet for?

@Rotendahl
Copy link
Contributor

@JondareHM er med på det er embedded kode, som udgangspunkt er der heller ikke noget i vejen med at tage kode direkte
fra dem hvis API man bruger. Vi gider ikke skrive alt fra bunden hver gang :)
Noget af vores quickpay kode er også bare copy paste fra deres dokumentation.

Når du tager ting fra nettet er det typisk skrevet til at være selvindholdt så der vil de ikke have splittet det ud på flere filer osv.
Om koden er skrevet af os eller andre er det de samme krav det skal leve op til.

  • Det skal være læsbart.
  • Koden skal være forståelig (Hvis vi tager kode ind hvor selv "forfatteren" ikke ved hvordan det virker har vi andre ikke noget håb)
  • Test på at det er integreret rigtigt

Til kode udefra er det også god stil med et link til hvor det kommer fra. Hvis andre så skal arbejde med det senere slipper de for at google rundt for at finde hvor koden kommer fra. Når vi nu ikke bruger mailchimp andre steder kan du bare sætte link inline i stedet for i contrib.md

@Rotendahl Rotendahl temporarily deployed to medlemssystem-pr-575 August 3, 2020 09:16 Inactive
@Rotendahl
Copy link
Contributor

En sidste ting, det slår mig lige at hvis vi laver formen som sin egen template så kan vi også sætte den ind et andet sted på siden til dem der er logget ind. Som det er nu så er det jo kun nye opskrivninger der får muligheden for at se den.

@JakobLibak har du en holdning til om vi skal vise den til allerede tilmeldte folk og hvilken sider den ville passe bedst på (log ind, oversigtssiden, min profil, eller en anden?

@JondareHM
Copy link
Contributor Author

@Rotendahl Ja det var faktisk også meningen, havde bare smidt den ind her for hurtigt at kunne komme i gang med at lege med den og finde ud af hvordan det hele virker. Men ideen er at jeg smider den i sin egen form som så bare bliver indlejret på user_created siden, og en anden "kommunikation" side sammen med alle de andre kanaler, som så er tilgængelig fra hovedsiden et eller andet sted.

Men til selve formen, stadig ikke sikker på hvad du vil have mig til: Skal jeg lave noget helt fra bunden, eller bare fortsætte med at få ryddet op i det her Embed kode så det er mere læsbart osv?

@Rotendahl
Copy link
Contributor

Rotendahl commented Aug 3, 2020

Super, jeg var ikke helt med på hvor meget "work in progress" det var :)

Hvis vi laver den i backenden kan vi jo egenligt skjule formen hvis de allerede er tilmeldt, hvis vi kun har formen i frontend så vil den altid være der, selvom de allerede er skrevet op. Men det gør nok ikke så meget, det lader vi @JakobLibak om at bestemme.

Jeg tjekkede lige hurtigt deres API, og kastede noget kode sammen som eksempel. Koden her er nok 70% færdig. Du kan også lave den i javascript med fetch api'en hvis du hellere vil det.

import requests
list_id = "9e67587f52"

response = requests.request(
    "POST",
    f"https://api.mailchimp.com/3.0/lists/{list_id}/members/",
    json={
        "email_address": "[email protected]",
        "status": "subscribed",
        "merge_fields": {"FNAME": "Urist", "LNAME": "McVankab"},
    },
    auth=('cp', 'api_key'),
    headers={
        "content-type": "application/json",
    },
)

Du kan også bare gøre formen pænere og fjerne de ting som ikke behøves.

@JondareHM
Copy link
Contributor Author

Eftersom formen jo primært er til nye folk som tilmelder sig som frivillig tænker jeg ikke at der kommer til at være ret mange som allerede er skrevet på. Either way, regner med bare at arbejde videre på embed koden, får smidt det over i sin egen Form fil, og hevet alt inline CSS'en over i sin egen fil også, sammen med hvad jeg ellers laver af styling.

@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 August 3, 2020 09:44 Inactive
@JakobLibak
Copy link
Member

Er noget klart til test lige nu? Jeg kan ikke se noget anderledes på /volunteer eller forsiden.

Hvis man kan tilmelde sig nyhedsmail, så vil det være en fordel af kunne afmelde sig også herinde, så man kan administrere sin profil herfra.

Og kan det laves så meget som en indbygget funktion at kan skifte væk fra MailChimp og bruge et nyt API-kald fra en nyskrevet funktion uden at skulle skrive noget front-end kode om?

…d it.

- Most of the text and the Facebook image is still temporary
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 August 5, 2020 12:52 Inactive
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 August 10, 2020 09:41 Inactive
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 August 10, 2020 09:43 Inactive
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 August 11, 2020 09:44 Inactive
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 August 11, 2020 12:09 Inactive
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 August 11, 2020 13:01 Inactive
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 September 7, 2020 08:39 Inactive
@JondareHM JondareHM temporarily deployed to medlemssystem-pr-575 September 7, 2020 08:40 Inactive
@codecov
Copy link

codecov bot commented Oct 20, 2020

Codecov Report

Merging #575 (8a90bd3) into master (4b99280) will decrease coverage by 0.12%.
The diff coverage is 63.15%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #575      +/-   ##
==========================================
- Coverage   69.26%   69.14%   -0.13%     
==========================================
  Files         111      112       +1     
  Lines        2834     2852      +18     
==========================================
+ Hits         1963     1972       +9     
- Misses        871      880       +9     
Impacted Files Coverage Δ
members/urls.py 100.00% <ø> (ø)
members/views/volunteerSignup.py 31.70% <0.00%> (-0.80%) ⬇️
members/views/socialView.py 58.33% <58.33%> (ø)
members/views/userCreated.py 84.61% <75.00%> (-5.39%) ⬇️
members/views/EntryPage.py 92.10% <100.00%> (+0.21%) ⬆️
members/views/__init__.py 100.00% <100.00%> (ø)
members/views/ActivitySignup.py 70.83% <0.00%> (-2.09%) ⬇️
members/utils/address.py 77.77% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4b99280...8a90bd3. Read the comment docs.

@rasmusselsmark
Copy link
Contributor

Givet merge conflicts, har vi tilladt os at lave en simplere implementation i #787. Så lukker dette PR, tak for hjælpen og indsatsen 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants