Skip to content

Instantly share code, notes, and snippets.

View lb-'s full-sized avatar

LB (Ben Johnston) lb-

View GitHub Profile
@lb-
lb- / budget_group_panel.html
Created October 4, 2022 00:34
Creating an interactive event budgeting tool within Wagtail (Tutorial)
<div
data-controller="budget"
data-action="change->budget#updateTotals focusout->budget#updateTotals"
data-budget-per-price-value="PP"
>
{% include "wagtailadmin/panels/multi_field_panel.html" %}
<output for="{{ field_ids|join:' ' }}">
<h3>Budget summary</h3>
<dl>
<dt>Total price per</dt>
@lb-
lb- / 415db2b70bda500d69c7383f9c6c47bce43d27ef.diff
Created February 20, 2022 06:41
Diff - adding Diagram via jQuery
diff --git a/products/edit_handlers.py b/products/edit_handlers.py
new file mode 100644
index 0000000000000000000000000000000000000000..44c5faabbb435ca9962b92985115543e60924f2e
--- /dev/null
+++ b/products/edit_handlers.py
@@ -0,0 +1,29 @@
+from wagtail.images.edit_handlers import ImageChooserPanel
+from wagtail.images.widgets import AdminImageChooser
+
+
@lb-
lb- / settings.rst
Last active May 9, 2018 09:14
Wagtail - WIP - Documentation of settings
@lb-
lb- / final_models.py
Last active March 28, 2023 17:20
Django + Wagtail - custom taxonomy model
"""Node model and Node admin interaction."""
from django import forms
from django.conf.urls import url
from django.contrib.admin.utils import quote, unquote
from django.core.exceptions import PermissionDenied
from django.core.validators import MinLengthValidator, RegexValidator
from django.db import models
from django.shortcuts import get_object_or_404
from django.template.loader import render_to_string
# Your init script
#
# Atom will evaluate this file each time a new window is opened. It is run
# after packages are loaded/activated and after the previous editor state
# has been restored.
#
# An example hack to log to the console when each text editor is saved.
#
# atom.workspace.observeTextEditors (editor) ->
# editor.onDidSave ->
@lb-
lb- / models.py
Created September 3, 2017 12:43
Wagtail Forms - Upload Image Field - Final
from wagtail.wagtailforms.models import AbstractFormField, FORM_FIELD_CHOICES
from wagtail.wagtailforms.forms import FormBuilder
from wagtail.wagtailimages.fields import WagtailImageField
def filename_to_title(filename):
from os.path import splitext
if filename:
result = splitext(filename)[0]
result = result.replace('-', ' ').replace('_', ' ')
@lb-
lb- / models.py
Last active September 3, 2017 12:36
Wagtail Forms - Upload Image Field - Override process_form_submission Method
from wagtail.wagtailimages import get_image_model
class FormPage(AbstractEmailForm):
form_builder = ExtendedFormBuilder # as per step 3
def serve(self, request, *args, **kwargs):
# ... as per step 4
def process_form_submission(self, form):
cleaned_data = form.cleaned_data
@lb-
lb- / form_page.html
Created September 3, 2017 12:22
Wagtail Forms - Upload Image Field - Add enctype to Form Page View
{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block content %}
{{ self.intro }}
<form action="{% pageurl self %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
@lb-
lb- / models.py
Created September 3, 2017 12:16
Wagtail Forms - Upload Image Field - Override the Serve Method
class FormPage(AbstractEmailForm):
form_builder = ExtendedFormBuilder # see the step above
def serve(self, request, *args, **kwargs):
if request.method == 'POST':
# form = self.get_form(request.POST, page=self, user=request.user) # Original line
form = self.get_form(request.POST, request.FILES, page=self, user=request.user)
if form.is_valid():
self.process_form_submission(form)
@lb-
lb- / models.py
Created September 3, 2017 12:11
Wagtail Forms - Upload Image Field - Utilise ExtendedFormBuilder Class
# definition of ExtendedFormBuilder or import from another file above the Formpage class
class FormPage(AbstractEmailForm):
form_builder = ExtendedFormBuilder
# the rest of the form page definition ...