Add medical cannabis petition campaign

Add cover image, introduction, call-to-action, and thank-you pages
Add petition form styling and functionality
Include bilingual support for English and Norwegian
Implement signature confirmation flow
Add metadata for campaign configuration
This commit is contained in:
Ruben 2026-01-16 00:37:42 +01:00
parent ec7f87a574
commit 3a5e3004c7
15 changed files with 352 additions and 0 deletions

View file

@ -0,0 +1,3 @@
<section class="escape">
<img src="cover.jpg"/>
</section>

View file

@ -0,0 +1,5 @@
# Yes to Medical Cannabis on Prescription!
Many patient groups in Norway are suffering unnecessarily from pain and other conditions that cannabis could help alleviate. Our goal is to secure a parliamentary majority for a pilot program for medical cannabis in Norway—and we need your help to make it happen!
Norwegian patients, doctors, and researchers are in an impossible situation. Medical cannabis could be life-changing for many, yet today, getting a prescription is nearly impossible. Its time for change!

View file

@ -0,0 +1,5 @@
# Ja til medisinsk cannabis på resept!
Mange pasientgrupper i Norge lider unødvendig av smerter og andre tilstander som cannabis kan hjelpe mot. Målet vårt er å få stortingsflertall for en prøveordning for medisinsk cannabis i Norge og vi trenger din hjelp for å få det til!
Norske pasienter, leger og forskere står i en umulig situasjon. Medisinsk cannabis kan være en livsforandrende behandling for mange, men i dag er det nesten umulig å få resept. Det er på tide å endre dette!

View file

@ -0,0 +1,4 @@
<div class="cta-block">
<p class="cta-block__counter"><span class="cta-block__count"><?= $petition_count ?? 0 ?></span> har signert!</p>
<a href="#sign-now" class="button button--petition huge">Signer !</a>
</div>

View file

@ -0,0 +1,19 @@
## The Six Key Points of the Trial Program
We are advocating for a registry study and trial program to expand our knowledge and improve patient care. These are our demands:
1. **Research:** Implement Europes largest follow-up study on medical cannabis, developed at Imperial College London.
2. **Prescribing rights for more doctors:** Doctors who know their patients best should be able to prescribe medical cannabis.
3. **Broader access:** Medical cannabis must be made available for more symptoms and conditions where it shows promising results.
4. **Cost coverage:** Patients should not have to pay for their medication—it must be publicly funded.
5. **Training for healthcare professionals:** Doctors and medical staff need further education to provide patients with the best possible treatment.
6. **Review of drivers license rules:** Patients using medical cannabis should not automatically lose their driving privileges.
## Why This Matters
Today, many patients are forced to rely on less effective medications with more side effects—or resort to buying cannabis illegally because they cant access it through the healthcare system. This isnt safe, and it isnt fair. We need a system that ensures patients have safe and legal access to the medicine they need.

View file

@ -0,0 +1,19 @@
## Prøveordningens 6 punkter
Vi jobber for en registerstudie og prøveordning som skal gi oss kunnskap og bedre behandling for pasienter. Dette er hva vi krever:
1. **Forskning:** Innføring av Europas største oppfølgingsstudie på medisinsk cannabis, utviklet ved Imperial College i London.
2. **Forskrivningsrett** for flere leger: Leger som kjenner pasientene best, skal kunne forskrive medisinsk cannabis.
3. **Tilgjengelig for flere:** Medisinsk cannabis må bli tilgjengelig for flere symptomer og diagnoser, der cannabis viser lovende effekt.
4. **Dekning av kostnader:** Pasienter skal ikke måtte betale for medisinen selv det må dekkes av det offentlige.
5. **Opplæring av leger:** Leger og helsepersonell må få etterutdanning slik at de kan gi pasienter den beste behandlingen.
6. **Revisjon av førerkortregler:** Pasienter som bruker medisinsk cannabis skal ikke automatisk miste førerretten.
## Hvorfor er dette viktig?
I dag må mange pasienter bruke medisiner med dårligere effekt og flere bivirkninger, eller kjøpe cannabis illegalt fordi de ikke får tilgang til det gjennom helsevesenet. Dette er ikke trygt, og det er ikke rettferdig. Vi trenger en ordning som gir pasienter trygg og lovlig tilgang til medisinen de trenger.

View file

@ -0,0 +1,4 @@
<h1>Show your support by signing here</h1>
<?= $petition_form ?? '' ?>
<?= $petition_signatures ?? '' ?>

View file

@ -0,0 +1,4 @@
<h1>Signer her for å vise din støtte</h1>
<?= $petition_form ?? '' ?>
<?= $petition_signatures ?? '' ?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

View file

@ -0,0 +1,9 @@
date = "2026-01-15"
plugins = "petition-form"
thank_you_page = "takk"
hide_list = true
title = "Ja til medisinsk cannabis på resept!"
[en]
title = "Test Petition"
thank_you_page = "thank-you"

View file

@ -0,0 +1,236 @@
/* PETITION */
/* Button */
.button--petition {
background-color: var(--color-green);
color: white;
outline: white;
padding: 1.3rem 1.8rem;
}
/* CTA block */
.cta-block {
margin-top: 1.5rem;
display: inline-flex;
flex-direction: column-reverse;
align-items: center;
gap: .25rem
}
.cta-block__counter {
margin: 0;
font-size: 1rem;
color: oklch(0.45 0.06 173.93)
}
.cta-block__count {
font-weight: 700;
color: var(--color-green)
}
/* Honeypot - hidden from users, visible to bots */
.hp-field { position: absolute; left: -5000px }
/* Messages */
.form-message {
padding: 1rem;
border-radius: .25rem;
margin-top: 1.3em;
p {margin-top:0}
&.form-message--success {
background-color: oklch(0.92 0.05 145);
border: 1px solid oklch(0.85 0.08 145);
color: oklch(0.35 0.08 145)
}
&.form-message--info {
background-color: oklch(0.94 0.03 220);
border: 1px solid oklch(0.88 0.05 220);
color: oklch(0.4 0.06 220)
}
&.form-message--error {
background-color: oklch(0.92 0.05 25);
border: 1px solid oklch(0.85 0.08 25);
color: oklch(0.4 0.12 25)
}
}
.form-errors {
background-color: oklch(0.92 0.05 25);
border: 1px solid oklch(0.85 0.08 25);
color: oklch(0.4 0.12 25);
padding: 1rem;
border-radius: .25rem;
margin-top: 1.3em;
ul { margin-top: .5rem; padding-left: 1.5rem }
}
/* Form */
form {
margin-top: 1.3em;
.form-row {
display: flex;
flex-wrap: wrap;
gap: 0 1rem;
& > .form-group { flex: 1 1 min(100%, 20rem) }
}
.form-group {
margin-top: 1.3em;
label {
display: block;
font-weight: 600;
margin-bottom: .3rem;
.required { color: oklch(0.55 0.2 25) }
}
input[type="text"],
input[type="email"],
select {
width: 100%;
padding: .6rem;
border: 1px solid oklch(0.8 0 0);
border-radius: .25rem;
font-family: inherit;
font-size: 1rem;
box-sizing: border-box;
&:focus {
outline: none;
border-color: var(--color-green);
box-shadow: 0 0 0 .15rem oklch(0.618 0.1176 173.93 / 0.25)
}
}
small {
display: block;
margin-top: .3rem;
color: oklch(0.55 0 0);
font-size: .875rem
}
}
fieldset {
border: 1px solid oklch(0.85 0 0);
border-radius: .25rem;
padding: 1rem;
margin-top: 1.3em;
legend {
font-weight: 600;
padding: 0 .5rem
}
label {
display: block;
margin-top: .5rem;
cursor: pointer;
font-weight: normal;
input[type="radio"] { margin-right: .5rem }
}
}
.privacy-notice {
background-color: oklch(0.96 0.01 220);
border: 1px solid oklch(0.88 0.03 220);
border-radius: .25rem;
padding: .8rem 1rem;
.privacy-intro {
margin: 0;
color: oklch(0.4 0.05 220);
font-size: .875rem;
a {
color: oklch(0.4 0.1 220);
font-weight: 600;
text-decoration: underline;
&:hover { color: oklch(0.3 0.12 220) }
}
}
}
.info-box {
border: 1px solid;
border-radius: .25rem;
padding: 1rem;
p { margin-top: 0; font-size: .9rem; line-height: 1.5 }
a { font-weight: 600; text-decoration: underline }
&.info-box--green {
border-color: oklch(0.85 0.05 145);
background-color: oklch(0.98 0.01 145);
a { color: oklch(0.4 0.1 145); &:hover { color: oklch(0.3 0.12 145) } }
}
&.info-box--yellow {
border-color: oklch(0.85 0.1 85);
background-color: oklch(0.96 0.04 85);
a { color: oklch(0.45 0.1 85); &:hover { color: oklch(0.35 0.12 85) } }
}
}
.consent-group {
.consent-label {
display: flex;
align-items: flex-start;
gap: .6rem;
cursor: pointer;
font-weight: normal;
input[type="checkbox"] {
margin-top: .2rem;
cursor: pointer;
width: 1.1rem;
height: 1.1rem;
flex-shrink: 0
}
span {
flex: 1;
font-size: .9rem;
line-height: 1.5;
a {
color: oklch(0.4 0.1 145);
font-weight: 600;
text-decoration: underline;
&:hover { color: oklch(0.3 0.12 145) }
}
}
.required {
color: oklch(0.55 0.2 25)
}
}
}
}
/* Signatures list */
.petition-signatures {
margin-top: 2rem;
padding-top: 2rem;
border-top: 1px solid oklch(0.85 0 0);
h2 { margin-top: 0 }
.signature-order {
color: oklch(0.55 0 0);
font-size: .875rem;
margin-top: .5rem
}
ul {
list-style: none;
padding: 0;
margin-top: 1rem;
li {
display: flex;
flex-wrap: wrap;
gap: .25rem 1rem;
padding: .5rem .6rem;
border-bottom: 1px solid oklch(0.9 0.01 173.93);
&:nth-child(odd) { background-color: white }
&:nth-child(even) { background-color: oklch(0.96 0.005 173.93) }
&:last-child { border-bottom: none }
}
}
.signature-name {
font-weight: 500;
flex: 1 1 12rem
}
.signature-date {
color: oklch(0.55 0 0);
font-size: .875rem
}
}
/* Warning box (thank you page) */
.warning-box {
background-color: oklch(0.93 0.07 85);
border: 1px solid oklch(0.85 0.15 85);
border-radius: .25rem;
padding: 1rem 1.5rem;
margin-top: 1.5rem;
h2 {
color: oklch(0.5 0.1 85);
margin-top: 0;
font-size: 1.25rem
}
}

View file

@ -0,0 +1,17 @@
# Thank you for signing!
Your signature has been registered, but **must be confirmed** via email.
<div class="warning-box" markdown="1">
## Check your email
We have sent you a confirmation email. **Click the link in the email** to confirm your signature.
**Important:** Check your spam/junk folder if you don't find the email in your inbox within a few minutes.
</div>
Your signature will only be counted and displayed on the list after you have confirmed it.
[Back to the petition](../)

View file

@ -0,0 +1,17 @@
# Takk for at du signerte!
Din signatur er registrert, men **må bekreftes** via e-post.
<div class="warning-box" markdown="1">
## Sjekk e-posten din
Vi har sendt deg en bekreftelsesmail. **Klikk på lenken i e-posten** for å bekrefte signaturen din.
**Viktig:** Sjekk spam-/søppelpost-mappen din hvis du ikke finner e-posten i innboksen din innen noen minutter.
</div>
Din signatur vil først telles og vises på listen etter at du har bekreftet den.
[Tilbake til underskriftskampanjen](../)

View file

@ -0,0 +1,4 @@
title = "Takk for din signatur"
[en]
title = "Thank you for signing"

View file

@ -0,0 +1,6 @@
title = "Underskriftskampanjer"
menu = false
page_template = "list"
[en]
title = "Petitions"