profile
viewpoint
Matt Westcott gasman Torchbox Oxford, UK http://matt.west.co.tt/ Lead developer on Wagtail CMS. Please do not email me directly with Wagtail support questions - see http://docs.wagtail.io/en/stable/support

gasman/bonsai-c 287

C to WebAssembly + asm.js compilation for humans

gasman/django-unjoinify 45

A library for efficiently retrieving deeply-nested data sets

gasman/bahn 14

Ruby API for Deutsche Bahn train information

gasman/actionparsnip 6

pointy-clicky visualisation builder for javascript

gasman/divideo 5

Video encoder for ZX Spectrum + DivIDE interface

demozoo/pyrecoil 4

Python bindings for RECOIL, the Retro Computer Image Library

gasman/bakerydemo 1

Next generation Wagtail demo, born in Reykjavik

gasman/bfscript 1

bfscript: enterprise level web scripting in Brainfuck

gasman/btfd 1

Build tool for managing Sphinx documentation across multiple versions

gasman/dogsandducks 1

Using social media to establish links between human activity and river pollution

Pull request review commentwagtail/wagtail-transfer

Add BasicAuth to transfer API requests

 def digest_for_source(source, message):         message = message.encode()      return hmac.new(key, message, hashlib.sha1).hexdigest()++def requests_auth(source):

Hi Jacob, it's been a busy week... finally made the above change.

dkirkham

comment created time in 4 hours

pull request commentwagtail/wagtail

Bugfix: PROTECTED with related_name='+'

<h2>Manage this branch in <a href="https://app.squash.io/accounts/">Squash</a></h2>Test this branch here: <a href='https://m3brownbugfix-model-admin-prot-sj546.squash.io' target='_blank'>https://m3brownbugfix-model-admin-prot-sj546.squash.io</a><br/>

m3brown

comment created time in 12 hours

PR opened wagtail/wagtail

Bugfix: PROTECTED with related_name='+'

This is an enhancement to #5437, which added exception handling for deletion of objects that throw a ProtectedError.

I observed that the existing code does not work if the ForeignKey/OneToOneField relationship uses related_name="+".

Changes in this PR:

  • Make adjustments to views.py to handle related_name="+"
  • Add test cases for ForeignKey and OneToOneField
  • Refactor some of the surrounded code to properly support cases where there are multiple "+" relationships
    • The old code would only pick one, since the keys in fields_map would conflict

Before submitting, please review the contributor guidelines https://docs.wagtail.io/en/latest/contributing/index.html and check the following:

  • Do the tests still pass? Yes
  • Does the code comply with the style guide? I ran flake8 on all the modified files
  • For Python changes: Have you added tests to cover the new/fixed behaviour? Yes
  • For front-end changes: Did you test on all of Wagtail’s supported browsers? N/A
  • For new features: Has the documentation been updated accordingly? N/A
+130 -9

0 comment

5 changed files

pr created time in 13 hours

delete branch wagtail/wagtail

delete branch : dependabot/npm_and_yarn/ini-1.3.7

delete time in 18 hours

PR closed wagtail/wagtail

Bump ini from 1.3.5 to 1.3.7 dependencies

Bumps ini from 1.3.5 to 1.3.7. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/npm/ini/commit/c74c8af35f32b801a7e82a8309eab792a95932f6"><code>c74c8af</code></a> 1.3.7</li> <li><a href="https://github.com/npm/ini/commit/024b8b55ac1c980c6225607b007714c54eb501ba"><code>024b8b5</code></a> update deps, add linting</li> <li><a href="https://github.com/npm/ini/commit/032fbaf5f0b98fce70c8cc380e0d05177a9c9073"><code>032fbaf</code></a> Use Object.create(null) to avoid default object property hazards</li> <li><a href="https://github.com/npm/ini/commit/2da90391ef70db41d10f013e3a87f9a8c5d01a72"><code>2da9039</code></a> 1.3.6</li> <li><a href="https://github.com/npm/ini/commit/cfea636f534b5ca7550d2c28b7d1a95d936d56c6"><code>cfea636</code></a> better git push script, before publish instead of after</li> <li><a href="https://github.com/npm/ini/commit/56d2805e07ccd94e2ba0984ac9240ff02d44b6f1"><code>56d2805</code></a> do not allow invalid hazardous string as section name</li> <li>See full diff in <a href="https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~isaacs">isaacs</a>, a new releaser for ini since your current version.</p> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+3 -3

2 comments

1 changed file

dependabot[bot]

pr closed time in 18 hours

pull request commentwagtail/wagtail

Bump ini from 1.3.5 to 1.3.7

Superseded by #6697.

dependabot[bot]

comment created time in 18 hours

pull request commentwagtail/wagtail

Bump ini from 1.3.5 to 1.3.8

<h2>Manage this branch in <a href="https://app.squash.io/accounts/">Squash</a></h2>Test this branch here: <a href='https://dependabotnpm-and-yarnini-138-cjou6.squash.io' target='_blank'>https://dependabotnpm-and-yarnini-138-cjou6.squash.io</a><br/>

dependabot[bot]

comment created time in 18 hours

create barnchwagtail/wagtail

branch : dependabot/npm_and_yarn/ini-1.3.8

created branch time in 18 hours

PR opened wagtail/wagtail

Bump ini from 1.3.5 to 1.3.8

Bumps ini from 1.3.5 to 1.3.8. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/npm/ini/commit/a2c5da86604bc2238fe393c5ff083bf23a9910eb"><code>a2c5da8</code></a> 1.3.8</li> <li><a href="https://github.com/npm/ini/commit/af5c6bb5dca6f0248c153aa87e25bddfc515ff6e"><code>af5c6bb</code></a> Do not use Object.create(null)</li> <li><a href="https://github.com/npm/ini/commit/8b648a1ac49e1b3b7686ea957e0b95e544bc6ec1"><code>8b648a1</code></a> don't test where our devdeps don't even work</li> <li><a href="https://github.com/npm/ini/commit/c74c8af35f32b801a7e82a8309eab792a95932f6"><code>c74c8af</code></a> 1.3.7</li> <li><a href="https://github.com/npm/ini/commit/024b8b55ac1c980c6225607b007714c54eb501ba"><code>024b8b5</code></a> update deps, add linting</li> <li><a href="https://github.com/npm/ini/commit/032fbaf5f0b98fce70c8cc380e0d05177a9c9073"><code>032fbaf</code></a> Use Object.create(null) to avoid default object property hazards</li> <li><a href="https://github.com/npm/ini/commit/2da90391ef70db41d10f013e3a87f9a8c5d01a72"><code>2da9039</code></a> 1.3.6</li> <li><a href="https://github.com/npm/ini/commit/cfea636f534b5ca7550d2c28b7d1a95d936d56c6"><code>cfea636</code></a> better git push script, before publish instead of after</li> <li><a href="https://github.com/npm/ini/commit/56d2805e07ccd94e2ba0984ac9240ff02d44b6f1"><code>56d2805</code></a> do not allow invalid hazardous string as section name</li> <li>See full diff in <a href="https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~isaacs">isaacs</a>, a new releaser for ini since your current version.</p> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+3 -3

0 comment

1 changed file

pr created time in 18 hours

pull request commentwagtail/wagtail

Css variables part 1

@thibaudcolas thank you very much for the quick response, if you need any help (maybe with testing) I would be very glad to help ...

JNaftali

comment created time in a day

pull request commentwagtail/wagtail

Css variables part 1

Hey @dest81, you’re right, I’ve updated the labels. I have the branch checked out locally and am halfway through reviewing it. There is a blocker with https://github.com/wagtail/react-streamfield/pull/14 but I managed to find another way to do this that doesn’t involve changes to this separate package, so we’re in a good place. I’ll close that PR once I’ve confirmed my approach does work.

I still have more testing to do – I wouldn’t have noticed https://github.com/wagtail/react-streamfield/pull/14 had @JNaftali not reported there, so I want to make sure I’m not missing other things like this.

One other thing I’m still unsure of is color-primary-darkest – it’s very annoying to have to introduce this new shade for just 2 places out of the whole of Wagtail, and I think I found a way to change how those styles are made so we don’t need this. But here as well, more testing to do.

JNaftali

comment created time in a day

pull request commentwagtail/wagtail

Css variables part 1

Hi guys, Sorry that annoying you but any news here? I still see "needs work" label on this PR, shouldn't be changed to "Needs review"? I know your are all busy but can you give me rough estimate when it can be reviewed and possibly merged?

JNaftali

comment created time in a day

Pull request review commentwagtail/wagtail

Telepath - packing / unpacking objects by reference

+/* eslint-disable dot-notation */++import Telepath from './Telepath';++const telepath = new Telepath();++class Artist {+  constructor(name) {+    this.name = name;+  }+}++telepath.register('music.Artist', Artist);++class Album {+  constructor(title, artists) {+    this.title = title;+    this.artists = artists;+  }+}++telepath.register('music.Album', Album);++describe('Telepath', () => {+  it('can unpack objects', () => {+    const beyonce = telepath.unpack({ _type: 'music.Artist', _args: ['Beyoncé'] });+    expect(beyonce.name).toBe('Beyoncé');

Probably should have a expect(beyonce).toBeInstanceOf(Artist) here?

gasman

comment created time in a day

Pull request review commentwagtail/wagtail

Telepath - packing / unpacking objects by reference

+/* eslint-disable dot-notation, no-param-reassign */

I think this belongs in either utils or its own root folder rather than in components

gasman

comment created time in a day

pull request commentwagtail/wagtail

Refined creation of title on upload

@thibaudcolas I have basically rewritten the code changes from #5616 to simplify this whole approach, this PR only covers images (if this is merged, I will do a similar one for documents), removed a bunch of the abstraction and minimised the changes across other client code. It would be great if you could review this (I will keep an eye on the CI for any fixes I need to make).

@gasman hopefully this is more inline with how we want to approach images/documents in isolation, plus each widget/form implementation is now isolated and 'closer' to the code that uses it (except for the smaller global filename to title util).

comment ref for context. https://github.com/wagtail/wagtail/pull/5616#pullrequestreview-435860898

lb-

comment created time in a day

pull request commentwagtail/wagtail

Refined creation of title on upload

<h2>Manage this branch in <a href="https://app.squash.io/accounts/">Squash</a></h2>Test this branch here: <a href='https://lb-originfeature4945-ability-t-17vt9.squash.io' target='_blank'>https://lb-originfeature4945-ability-t-17vt9.squash.io</a><br/>

lb-

comment created time in a day

PR opened wagtail/wagtail

Refined creation of title on upload

Resolves #4945 & is a smaller scoped version of #5616 that only covers images (not documents).

Overview of implementation

  • New behaviour, by default -the file name will be used to generate a title which will be the file without the file extension
  • If a value is already in the applicable title field, by default this value will be kept as is.
  • Moves the implementation to 100% client side so user can 'edit' value before it is saved (or in the case of multiple upload, the initial title will based on the util)
  • Adds the ability for this functionality to overridden (includes docs on how to do this)

Forms updated

  • view - admin/images/multiple/add
  • view - admin/images/add
  • modal - image-chooser-modal

How to validate

  • For each of the forms above, attempt to upload an image and check the title field gets pre-filled with the filename but not the extension.
  • For the non-multiple forms, before clicking save, select a different file to upload and confirm the title is left unchanged.

PR Checklist

  • Do the tests still pass? the core.js is actually untested, I am happy to get some tests started but it appears this will be quite some effort.
  • Does the code comply with the style guide? ✅ - js lint passes
  • For front-end changes: Tested on the following
    • Safari Version 12.1.1 MacOS 10.14.5
    • Firefox 69 MacOS 10.14.5
    • Chrome 77 MacOS 10.14.5
  • For new features: Has the documentation been updated accordingly? ✅
+209 -6

0 comment

12 changed files

pr created time in a day

pull request commentwagtail/wagtail

Telepath - packing / unpacking objects by reference

<h2>Manage this branch in <a href="https://app.squash.io/accounts/">Squash</a></h2>Test this branch here: <a href='https://gasmanfeaturetelepath-object-r-mpq3l.squash.io' target='_blank'>https://gasmanfeaturetelepath-object-r-mpq3l.squash.io</a><br/>

gasman

comment created time in a day

Pull request review commentwagtail/wagtail

Telepath - implement block deletion for StreamBlock

 class StreamBlock {     const newBlock = this.insert({       type: blockType,       value: this.blockDef.initialChildStates[blockType],-    }, index, {animate: true});+    }, index, { animate: true });     newBlock.focus();   } +  deleteBlock(index) {+    this.children[index].markDeleted(true);

Might be a little more readable if animate was an option: this.children[index].markDeleted({ animate: true });, this would also make It consistent with StreamBlock.insert()

gasman

comment created time in 2 days

pull request commentwagtail/wagtail

Telepath - implement block deletion for StreamBlock

<h2>Manage this branch in <a href="https://app.squash.io/accounts/">Squash</a></h2>Test this branch here: <a href='https://gasmanfeaturetelepath-streambl-85rag.squash.io' target='_blank'>https://gasmanfeaturetelepath-streambl-85rag.squash.io</a><br/>

gasman

comment created time in 2 days

push eventwagtail/wagtail

Matt Westcott

commit sha 4f849608347302dbd4982e922ac336c472049a97

Refactor a StreamChild class out of StreamBlock

view details

Matt Westcott

commit sha 1ed919e44a763833134b9f86255a34969f455e12

Pass StreamBlock children as a grouped list

view details

Matt Westcott

commit sha 33594252bae480c4bba4e5c896d50c9527e67196

Remove redundant duplicate calls to jQuery

view details

Matt Westcott

commit sha 9aaa511428503129ae84a89d3df28e4e2c1fcef6

Construct StreamBlock menu

view details

Matt Westcott

commit sha 7cd42335d12c3e11fc73142056235e4d25f120db

Insert menus between blocks

view details

Matt Westcott

commit sha a2a6100d5dce68f510490da6fb7928320bf39aa4

Ensure StructBlock.get_default properly reflects child block defaults StructBlock previously handled default values 'lazily' at render time, setting meta.default to fall back to an empty dict and calling the child block's get_default on missing items. We can't do this with client-side rendering because get_default isn't available on the client-side block definition (and adding it to the client-side block API would introduce unnecessary bloat). Instead, we fix StructBlock.get_default to correctly pick up the defaults from its child blocks, so that anything that makes use of StructBlock.get_default (e.g. a containing ListBlock / StreamBlock that needs to create StructBlock children on the fly) will have the full accurate data to hand.

view details

Matt Westcott

commit sha 3ceaeee163ebbe8e782fb4d26adc9d84bdf01645

Pass initial 'new child' states to block types that need to dynamically create children

view details

Matt Westcott

commit sha 57d02389e562b22c1b226a2ebb7a787647846028

Replace StreamBlock.append with an insert method that works on arbitrary indexes

view details

Matt Westcott

commit sha 9abb2a37e8dfa1227c8c187a9c1ac95ac9eb8362

Hook up onclick handler for menu

view details

Matt Westcott

commit sha 09dee26b27d6859e71496928ee9801b6522abcbf

use a dedicated counter for prefixes, not index

view details

Matt Westcott

commit sha 1a0b10fab1ffa618910246fed9e0155f9b3b332c

Close menu after selecting Turns out we need to insert the new block *after* the active menu for the animation to work...

view details

Matt Westcott

commit sha 333711d9b8509fae0b3d463d52f3c9d127b427ff

Focus form field on addition, and show menu for initially-empty streams

view details

Matt Westcott

commit sha 3f7739d315c88b88a19be7a834880743d33b4a7e

add slide animation on block addition

view details

push time in 2 days

Pull request review commentwagtail/wagtail

Telepath - implement block addition

 def sorted_child_blocks(self):         return sorted(self.child_blocks.values(),                       key=lambda child_block: child_block.meta.group) +    def grouped_child_blocks(self):+        """+        Child blocks organised into groups, returned as an iterable of+        (group_name, list_of_blocks) tuples

I got a little confused here, thinking "child blocks" were instances of blocks and not the types.

Could we rename this (separate PR) to make it clear it's working with block types and not block instances?

gasman

comment created time in 2 days

Pull request review commentwagtail/wagtail

Telepath - implement block addition

 class StreamChild {   } } +class StreamBlockMenu {+  constructor(placeholder, groupedChildBlockDefs, opts) {+    this.index = opts && opts.index;+    this.onclick = opts && opts.onclick;

Sorry for the nitpick, but onclick should be camel case: onClick (we use this convention in other components that have this callback)

gasman

comment created time in 2 days

pull request commentwagtail/wagtail

Telepath - implement block addition

<h2>Manage this branch in <a href="https://app.squash.io/accounts/">Squash</a></h2>Test this branch here: <a href='https://gasmanfeaturetelepath-streambl-95si5.squash.io' target='_blank'>https://gasmanfeaturetelepath-streambl-95si5.squash.io</a><br/>

gasman

comment created time in 3 days

pull request commentwagtail/wagtail

Feature/telepath validation

<h2>Manage this branch in <a href="https://app.squash.io/accounts/">Squash</a></h2>Test this branch here: <a href='https://kaedrohofeaturetelepath-valida-fx9vp.squash.io' target='_blank'>https://kaedrohofeaturetelepath-valida-fx9vp.squash.io</a><br/>

kaedroho

comment created time in 3 days

PR opened wagtail/wagtail

Feature/telepath validation
+1278 -558

0 comment

31 changed files

pr created time in 3 days

push eventwagtail/wagtail

David Beitey

commit sha 3c3df689f78eafceda9cfa6908ffab04ad8ff583

Fix formatting in Development documentation (#6686) Co-authored-by: Thibaud Colas <thibaudcolas@gmail.com>

view details

push time in 3 days

PR merged wagtail/wagtail

Fix formatting in Development documentation Documentation type:Cleanup/Optimisation

Fix formatting on the Development page by inserting spacing for the nested list and updating the literal backticks to be double (for reST).


Thanks for contributing to Wagtail! 🎉

Before submitting, please review the contributor guidelines https://docs.wagtail.io/en/latest/contributing/index.html and check the following:

  • [x] Do the tests still pass? (https://docs.wagtail.io/en/latest/contributing/developing.html#testing)
  • [x] Does the code comply with the style guide? (Run make lint from the Wagtail root)
  • For Python changes: Have you added tests to cover the new/fixed behaviour? N/A
  • For front-end changes: Did you test on all of Wagtail’s supported browsers? Please list the exact versions you tested. N/A
  • For new features: Has the documentation been updated accordingly? N/A
+3 -1

1 comment

1 changed file

davidjb

pr closed time in 3 days

PR closed wagtail/wagtail

WIP: RTD docs test Documentation

Do not merge. Feedback welcome ! This PR is to trial two Sphinx and Read the Docs features:

Autobuild Documentation for Pull Requests

This is now working exactly as intended, with fast build times due to skipping some of the build (search index, and offline docs formats as well?), a GitHub PR status check linking straight to the build logs while in progress, and to the built documentation once finished: https://wagtail--6672.org.readthedocs.build/en/6672/.

There is a nice "this is a PR" warning on all of the pages, and indexing is disabled with robots.txt, as well as having the canonical meta pointing to the live docs.

Sphinx Markdown support

  • Markdown source: see changes in this PR
  • Sphinx / RTD output: https://wagtail--6672.org.readthedocs.build/en/6672/reference/contrib/legacy_richtext.html

I’m still exploring the capabilities / limitations here but this is already very promising.

recommonmark does all of the heavy lifting. It really is just a matter of adding the extension in Sphinx and configuring it. Then we can mix and match Markdown and rST within the same project documentation.

There are a few more things to enable to also be able to have rST snippets within Markdown files. This means we could still use Sphinx autodoc where we want to, or admonitions, while using Markdown for more free-form content. This feels a bit strange but would help tremendously in having a more gradual migration from one format to the next.

Specific point of feedback I’m particularly interested in: I think the whole premise of switching to Markdown is to make documentation contributions more approachable, so I’d be keen to hear people’s thoughts on whether the RST embeds are desirable in that respect, or whether we’d rather rewrite docs to rely less on this more complex formatting.

+77 -28

2 comments

5 changed files

thibaudcolas

pr closed time in 3 days

more