-
Such devlog, many progress, wow
02/28/2018 at 08:35 • 0 commentsA few months have passed since I last wrote anything about poobrains
development and I think it's about time I told you what I was up to since
then. It's been a lot, so this is probably going to be a semi-long post,
even without going into too much depth.The SVG system has seen the addition of maps and continued work on
making plots better. An automatically calculated grid and the application
of a hue-rotated color palette to datasets should reduce some of the visual
clutter. Error bars are now rendered as well.Datasets and -points are linkable by fragment identifiers and show their
respective info when addressed. Dataset descriptions use the <foreignObject>
tag to show a nicely formatted and scrollable HTML description generated
from markdown. The same technique is used for the points on a map.The only problem with <foreignObject> is that chrome simply doesn't
support it, so I had to create a shitty text-only fallback as well.
At least markdown is pretty human-readable, I guess…For easy extractability, a json-encoded version of the whole dataset is
included in the generated SVG as well.The CLI can now be used to render plots and maps into files, too.
It also has some important new commands. import and export consume and
create ASCII-separated text files, which are just like CSV – only good.The form system got some TLC too, with paginated forms for foreign key
relations, a bunch of fixes and better support for fieldsets through
the addition of ProxyFieldset which allows wrapping any form inside a
fieldset.Oh, and checkboxes now use SVG instead of the ugly native controls, sadly
without working animation because both firefox and chrome fail at properly
handling SVG backgrounds with fragment identifiers…Another big thing is that poobrains is now self-documenting. A poobrains site
can now render its own documentation. This system comes with a custom-written
HTML5 pydoc writer because there wasn't a good one.I also wrote a "quick"start which managed to break the 2000 word barrier.
You can access it through the documentation system: phryk.net/doc/quickstart/.On a typographic note, I changed the default text font to ClearSans because
OpenSans seems to have legibility issues on a lot of platforms and changed
the default decorative font from Ostrich Sans to Orbitron (both by the dank
League of Movable Type) because it's way more cybre.Last but not least, I spent the last few days making poobrains compatible to
peewee 3, the new major version of the ORM poobrains utilizes.I should be mostly through with it now, but a bunch of issues might still be
popping up.I don't want to stick my neck out too far here, but I think I have all systems
I want in poobrains in place. There's still one or two things I'm not sure I
want to include, but from now on poobrains development is probably going to be
mostly bugfixing and styling/templating work as well as some UX things that are
still missing (like letting users properly administer their client certs). -
Progress on SVG integration
11/10/2017 at 05:58 • 0 commentsBesides more fixes than I can even remember, some more form work, styling and templating work, I've put a couple hours into beginning SVG integration.
This is by no means done, but it can already plot multiple datasets and highlight the plot of a single dataset on mouseover. Of course without any javascript. -
Form overhaul complete (I think?)
10/20/2017 at 02:33 • 0 commentsGood news everybody!
I have finished the form system overhaul. It has taken almost two months,
but now all superfluous stuff from before the move to click.types for type
coercion has been killed dead. It was a decently-sized massacre amongst the
classes defined in there, so hopefully that'll make it easier to get an overview. :P
The form systems code has shrunk by about 10% while getting cleaner
*and* more powerful.
Oh, and to add icing to the cake, I made sure all form field templates use
the "required" hint for js-less client-side validation and made sure those fields
are styled uniformly with those determined to be invalid server-side.
Probably going to work on better integration of templatable SVG next… -
forms & candy
10/16/2017 at 04:56 • 0 commentsMore work done on the form system, but the cleanup isn't quite finished yet.
Moved support for choices (whitelist validation + <datalist> autocompletion) and multiple values into the base form `Field` class and started deprecating field classes specific to choices or multi support.
The endgame should™ be a cleaner *and* more flexible form system.
Also, there are now template hints shown when in debug mode, because I finally got tired of having trouble finding the right template file for some output: -
Progress and preview
09/30/2017 at 02:46 • 0 commentsA few things happened since I last posted. The most important ones:
- The form system has seen some more housecleaning work
- A preview feature was added
- The `minica` command can now (and does by default) create CA certificates that are indefinitely valid
- Delete buttons are even fancier than before
-
Form system kinda-sorta ported to click.types
09/02/2017 at 16:03 • 0 commentsRemoved hand-baked type coercion in form system and moved to using click.types. This means coercion stuff only has to be implemented once and works for forms as well as the CLI. A good deal of cleanup in the form system is still needed to depopulate form/fields.py a bit.
Oh also, the certificate generated by the `minica` command of the CLI now properly works with <keygen> and a good bunch of assorted bugs was fixed. Probably while introducing some new ones.