mediagoblin.git
12 years agoInsignificant edits to logo SVG
Jef van Schendel [Fri, 20 Jul 2012 19:06:41 +0000 (21:06 +0200)]
Insignificant edits to logo SVG

12 years agoIncrease Description and Bio textarea height to 100px
Jef van Schendel [Thu, 19 Jul 2012 22:45:49 +0000 (00:45 +0200)]
Increase Description and Bio textarea height to 100px

12 years agoFix themeing docs
Will Kahn-Greene [Mon, 16 Jul 2012 21:06:57 +0000 (17:06 -0400)]
Fix themeing docs

This fixes a bunch of formatting issues in the themeing docs and makes
them easier to read.

12 years agoOverhaul flatpages
Will Kahn-Greene [Thu, 12 Jul 2012 23:18:15 +0000 (19:18 -0400)]
Overhaul flatpages

* move contents of main.py to __init__.py
* update documentation in README
* change the key/value configuration specification
* added a recipe for passing values from the url to the template
* removed some unused code

12 years agoFix template
Will Kahn-Greene [Thu, 12 Jul 2012 22:32:45 +0000 (18:32 -0400)]
Fix template

12 years agoFinish flatpagesplugin; add plugin docs
Will Kahn-Greene [Sun, 10 Jun 2012 18:51:13 +0000 (14:51 -0400)]
Finish flatpagesplugin; add plugin docs

12 years agoFlatpages first pass
Will Kahn-Greene [Sun, 10 Jun 2012 15:50:14 +0000 (11:50 -0400)]
Flatpages first pass

This fixes the template loader so that it can load plugin templates.

This adds code for registering template paths so that plugins can add
their own templates.

This adds the base code for the flatpagesfile plugin. It doesn't serve
pages, yet, but it's pretty close.

12 years agoAdded a section describing how to do theming via simple CSS stuff!
Christopher Allan Webber [Sun, 15 Jul 2012 03:58:42 +0000 (22:58 -0500)]
Added a section describing how to do theming via simple CSS stuff!

12 years agoMoving extrahead.html -> extra_head.html because it's easier to read
Christopher Allan Webber [Sun, 15 Jul 2012 03:52:22 +0000 (22:52 -0500)]
Moving extrahead.html -> extra_head.html because it's easier to read

12 years agoSmall fix to themedata_for_theme_dir utility about sections
Christopher Allan Webber [Sun, 15 Jul 2012 03:44:06 +0000 (22:44 -0500)]
Small fix to themedata_for_theme_dir utility about sections

If we can't find the theme section, we should use a dictionary instead
of None in this section of code.

12 years agoAllow for an "extrahead" template where themers can include extra css, js, etc
Christopher Allan Webber [Sun, 15 Jul 2012 03:43:08 +0000 (22:43 -0500)]
Allow for an "extrahead" template where themers can include extra css, js, etc

12 years agoStore licensing info as well
Christopher Allan Webber [Sun, 15 Jul 2012 01:23:21 +0000 (20:23 -0500)]
Store licensing info as well

12 years agoMostly good theming documentation!
Christopher Allan Webber [Sun, 15 Jul 2012 01:22:25 +0000 (20:22 -0500)]
Mostly good theming documentation!

12 years agoFleshing out theming documentation; wrote out "structure of things" section
Christopher Allan Webber [Sat, 14 Jul 2012 20:54:14 +0000 (15:54 -0500)]
Fleshing out theming documentation; wrote out "structure of things" section

12 years agoSetup the scaffolding for theme installing, but it doesn't work yet
Christopher Allan Webber [Sat, 14 Jul 2012 18:32:11 +0000 (13:32 -0500)]
Setup the scaffolding for theme installing, but it doesn't work yet

12 years agoBreak the asset linking code off into a reusable function
Christopher Allan Webber [Sat, 14 Jul 2012 18:23:12 +0000 (13:23 -0500)]
Break the asset linking code off into a reusable function

In the future, the install command should be able to use that as well.

12 years agoMoving the "dependency injection printer tools" over to tools/common.py
Christopher Allan Webber [Sat, 14 Jul 2012 17:36:40 +0000 (12:36 -0500)]
Moving the "dependency injection printer tools" over to tools/common.py

12 years agoasset linking command now works
Christopher Allan Webber [Fri, 13 Jul 2012 21:08:31 +0000 (16:08 -0500)]
asset linking command now works

12 years agoStart of the `./bin/gmg theme assetlink` command.
Christopher Allan Webber [Fri, 13 Jul 2012 17:36:31 +0000 (12:36 -0500)]
Start of the `./bin/gmg theme assetlink` command.

Mostly works but doesn't handle all the places it could break.

12 years agoMake the theme_linked_assets_dir config option point to the right place by default
Christopher Allan Webber [Fri, 13 Jul 2012 17:35:07 +0000 (12:35 -0500)]
Make the theme_linked_assets_dir config option point to the right place by default

Should be in user_dev...

12 years agoMaking the register_themes() tool also return the current theme
Christopher Allan Webber [Fri, 13 Jul 2012 17:33:52 +0000 (12:33 -0500)]
Making the register_themes() tool also return the current theme

This will reduce the amount of work reproducing this behavior when
pulling together the theme registry elsewhere.

12 years agoServe and setup the mediagoblin "linked theme" assets directory
Christopher Allan Webber [Fri, 6 Jul 2012 22:59:30 +0000 (17:59 -0500)]
Serve and setup the mediagoblin "linked theme" assets directory

12 years agoAdd the theme domain to the application's staticdirector
Christopher Allan Webber [Fri, 6 Jul 2012 22:35:01 +0000 (17:35 -0500)]
Add the theme domain to the application's staticdirector

12 years agoUpdate staticdirect stuff so it can handle "domains" of staticdirection
Christopher Allan Webber [Fri, 6 Jul 2012 19:54:21 +0000 (14:54 -0500)]
Update staticdirect stuff so it can handle "domains" of staticdirection

12 years agoKill MultiRemoteStaticDirect... nobody was really using it anyway
Christopher Allan Webber [Fri, 6 Jul 2012 16:25:42 +0000 (11:25 -0500)]
Kill MultiRemoteStaticDirect... nobody was really using it anyway

Since we're adding the new "domain" staticdirect system we should
clean this up.

12 years agoMoving staticdirect to tools/
Christopher Allan Webber [Fri, 6 Jul 2012 03:12:29 +0000 (22:12 -0500)]
Moving staticdirect to tools/

12 years agoThemes are now registered and can have their templates loaded properly
Christopher Allan Webber [Thu, 5 Jul 2012 17:23:56 +0000 (12:23 -0500)]
Themes are now registered and can have their templates loaded properly

12 years agoEarly version of theme registry code
Christopher Allan Webber [Sat, 30 Jun 2012 22:34:04 +0000 (17:34 -0500)]
Early version of theme registry code

12 years agoremoved _make_safe in favor of functools.wraps
Jakob Kramer [Thu, 12 Jul 2012 13:01:40 +0000 (15:01 +0200)]
removed _make_safe in favor of functools.wraps

12 years agoProcessing panel improvements
Joar Wandborg [Tue, 10 Jul 2012 23:43:21 +0000 (01:43 +0200)]
Processing panel improvements

- Added admin processing panel
- Minor fixes on the user processing panel template

12 years agoPanel improvements
Joar Wandborg [Tue, 10 Jul 2012 22:36:42 +0000 (00:36 +0200)]
Panel improvements

- Added progress meter for video and audio media types.
- Changed the __repr__ method of a MediaEntry to display a bit more
  useful explanation.
- Added a new MediaEntry.state, 'processing', which means that the task
  is running the processor on the item currently.
- Fixed some PEP8 issues in user_pages/views.py
- Fixed the ATOM TAG URI to show the correct year.

12 years agoMinor improvements to the processing panel
Joar Wandborg [Tue, 10 Jul 2012 15:53:37 +0000 (17:53 +0200)]
Minor improvements to the processing panel

- It is now possible to actually see what's processing, due to a bug fix
  where __getitem__ was called on the db model.
- Removed DEPRECATED message from the docstring, it wasn't true.

12 years agoMerge branch 'master' into 201207-testfixes
Brett Smith [Sun, 8 Jul 2012 15:07:02 +0000 (11:07 -0400)]
Merge branch 'master' into 201207-testfixes

12 years agoDrop our scoped session sooner to prevent SQLAlchemy re-binding warnings.
Brett Smith [Sun, 8 Jul 2012 15:00:36 +0000 (11:00 -0400)]
Drop our scoped session sooner to prevent SQLAlchemy re-binding warnings.

12 years agoDon't rely on app_config if common.TESTS_ENABLED.
Brett Smith [Sun, 8 Jul 2012 14:37:33 +0000 (10:37 -0400)]
Don't rely on app_config if common.TESTS_ENABLED.

app_config will be None in this case, so all of these subscripts will
fail.

12 years agoMake filestorage available to code that only imports storage.
Brett Smith [Sun, 8 Jul 2012 14:30:55 +0000 (10:30 -0400)]
Make filestorage available to code that only imports storage.

The storage-related tests were relying on this, if nothing else.

12 years agoPrevent SQLAlchemy non-Unicode warnings from this test.
Brett Smith [Sun, 8 Jul 2012 14:24:57 +0000 (10:24 -0400)]
Prevent SQLAlchemy non-Unicode warnings from this test.

12 years agoPrevent SQLAlchemy non-Unicode warnings in this test.
Brett Smith [Sun, 8 Jul 2012 14:23:02 +0000 (10:23 -0400)]
Prevent SQLAlchemy non-Unicode warnings in this test.

12 years agoMore Unicode titles to prevent non-Unicode SQLAlchemy warnings.
Brett Smith [Sun, 8 Jul 2012 14:18:33 +0000 (10:18 -0400)]
More Unicode titles to prevent non-Unicode SQLAlchemy warnings.

12 years agoFix docstring typo.
Brett Smith [Sun, 8 Jul 2012 14:04:58 +0000 (10:04 -0400)]
Fix docstring typo.

12 years agoPrevent non-Unicode SQLAlchemy warnings in most submission tests.
Brett Smith [Sun, 8 Jul 2012 14:04:06 +0000 (10:04 -0400)]
Prevent non-Unicode SQLAlchemy warnings in most submission tests.

This commit  makes test_submission mostly warning-clean.

12 years agomade the download links consistent
Jakob Kramer [Sat, 7 Jul 2012 19:19:14 +0000 (21:19 +0200)]
made the download links consistent

12 years agoput attachments into sidebar
Jakob Kramer [Sat, 7 Jul 2012 19:37:46 +0000 (21:37 +0200)]
put attachments into sidebar

also added {% trans %} tags

12 years agoAdded API documentation
Joar Wandborg [Sat, 31 Mar 2012 23:21:20 +0000 (01:21 +0200)]
Added API documentation

- Applied the MediaGoblin docs theme to the API docs
- Added api-docs/build to .gitignore
- Configured api-docs/source/conf.py
- Added /api-docs/source/mediagoblin* to .gitignore
- Added apidoc directive to api docs Makefile, will build the API docs
  based on the source

12 years agoDecoding EXIF strings as UTF-8 with replace in the ifd_tag_to_dict
Joar Wandborg [Sat, 7 Jul 2012 18:01:19 +0000 (20:01 +0200)]
Decoding EXIF strings as UTF-8 with replace in the ifd_tag_to_dict
method.

12 years agoUpdated the media types documentation, added steps for audio
Joar Wandborg [Fri, 6 Jul 2012 20:51:49 +0000 (22:51 +0200)]
Updated the media types documentation, added steps for audio

- Added chapter about media type negotiation.
- Added instructions on how to install dependencies for the audio media
  type.
- Moved part about how to enable media types in your config to a single
  place at the top of the document named "Enable Media Types".
- Renamed the "Enable Media Types" page to "Media Types".

12 years agoRemoved .ogg extension from audio MEDIA_MANAGER.
Joar Wandborg [Fri, 6 Jul 2012 20:42:31 +0000 (22:42 +0200)]
Removed .ogg extension from audio MEDIA_MANAGER.

There is some historical controversy about the .ogg extension and what
you should expect from it. It's better to let the audio and video
plugins take the sniffing-based route to find out what it really seems
to be.

12 years agoSwitching the syntax of this exception-raise
Christopher Allan Webber [Fri, 6 Jul 2012 14:06:01 +0000 (09:06 -0500)]
Switching the syntax of this exception-raise

It's nicer to raise exceptions like
  raise Exception("foo")
than
  raise Exception, "foo"

12 years agoRemoving _jointhat()... not really needed.
Christopher Allan Webber [Fri, 6 Jul 2012 14:03:08 +0000 (09:03 -0500)]
Removing _jointhat()... not really needed.

12 years agoone more noSuchFiles->no_such_files
Christopher Allan Webber [Fri, 6 Jul 2012 14:02:24 +0000 (09:02 -0500)]
one more noSuchFiles->no_such_files

12 years agoMerge remote-tracking branch 'refs/remotes/merge-requests/37'
Christopher Allan Webber [Fri, 6 Jul 2012 13:52:35 +0000 (08:52 -0500)]
Merge remote-tracking branch 'refs/remotes/merge-requests/37'

12 years agochanging NoSuchFiles for no_such_files
Jorge Araya Navarro [Fri, 6 Jul 2012 04:07:44 +0000 (22:07 -0600)]
changing NoSuchFiles for no_such_files

12 years agoLevel exits are Unicode too.
Brett Smith [Wed, 4 Jul 2012 15:09:36 +0000 (11:09 -0400)]
Level exits are Unicode too.

12 years agoMake sure MigrationManagers always get Unicode names.
Brett Smith [Wed, 4 Jul 2012 14:54:44 +0000 (10:54 -0400)]
Make sure MigrationManagers always get Unicode names.

If we fail to do this, SQLAlchemy complains that we're binding a
non-Unicode value to a Unicode column.

12 years agoExplicitly state that we need a webob version >= 1.1 also.
Christopher Allan Webber [Sun, 1 Jul 2012 15:41:37 +0000 (10:41 -0500)]
Explicitly state that we need a webob version >= 1.1 also.

12 years agoChanging mediagoblin theme font files over to be symlinks to extlib
Christopher Allan Webber [Sun, 1 Jul 2012 15:34:29 +0000 (10:34 -0500)]
Changing mediagoblin theme font files over to be symlinks to extlib

12 years agoClarifying that all original documentation theme files are CC0'ed.
Christopher Allan Webber [Sun, 1 Jul 2012 15:29:37 +0000 (10:29 -0500)]
Clarifying that all original documentation theme files are CC0'ed.

12 years agofixing bug #255 as Joar and CWebber ask me to do :)
Jorge Araya Navarro [Fri, 29 Jun 2012 04:13:26 +0000 (22:13 -0600)]
fixing bug #255 as Joar and CWebber ask me to do :)

12 years agoAdded some security checks to attachment upload, it's still not
Joar Wandborg [Sun, 24 Jun 2012 19:29:07 +0000 (21:29 +0200)]
Added some security checks to attachment upload, it's still not
waterproof.

12 years agoFixed EXIF longitude bug
Joar Wandborg [Sat, 23 Jun 2012 15:21:22 +0000 (17:21 +0200)]
Fixed EXIF longitude bug

- Negative or 'W' longitudes were not accounted for.
- pyflakes fixes.

12 years agoBug 255 fixed
Jorge Araya Navarro [Fri, 22 Jun 2012 21:15:57 +0000 (15:15 -0600)]
Bug 255 fixed

12 years agoFirst migration fix: commit after each migration.
Elrond [Thu, 14 Jun 2012 19:57:24 +0000 (21:57 +0200)]
First migration fix: commit after each migration.

sqlite doesn't like complex changes (alter table) to happen
inside a transaction that has already done other things.
And really, each migration should say "I'm done" and commit
its changes.

This is not the full story, but it's the core of it.

Specifially the migration framework should probably do a
rollback "just in case" after each migration.

12 years agoPull instance name from config in the notification email.
Joar Wandborg [Mon, 11 Jun 2012 14:17:28 +0000 (16:17 +0200)]
Pull instance name from config in the notification email.

12 years agoNow require sqlalchemy >= 0.7.0
Christopher Allan Webber [Mon, 11 Jun 2012 12:30:42 +0000 (07:30 -0500)]
Now require sqlalchemy >= 0.7.0

12 years agoFIXED SQL MIGRATION #2
Joar Wandborg [Sun, 10 Jun 2012 16:31:49 +0000 (18:31 +0200)]
FIXED SQL MIGRATION #2

12 years agoAdded SQL migrations for email notifications
Joar Wandborg [Sun, 10 Jun 2012 16:26:21 +0000 (18:26 +0200)]
Added SQL migrations for email notifications

12 years agoFixed some comment notification code for compliance with SQL
Joar Wandborg [Sun, 10 Jun 2012 16:18:26 +0000 (18:18 +0200)]
Fixed some comment notification code for compliance with SQL

* Pulled instance name in notification email from config

12 years agoMerge remote-tracking branch 'is_derek/bug405_email_notifications_for_comments' into...
Joar Wandborg [Sun, 10 Jun 2012 13:53:46 +0000 (15:53 +0200)]
Merge remote-tracking branch 'is_derek/bug405_email_notifications_for_comments' into notifications-merge

Conflicts:
mediagoblin/db/mongo/migrations.py

12 years agoFix problems from pyflakes output
Will Kahn-Greene [Sun, 3 Jun 2012 19:53:34 +0000 (15:53 -0400)]
Fix problems from pyflakes output

12 years agoMerge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Sun, 3 Jun 2012 04:12:45 +0000 (23:12 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin

12 years agoAdd link to wiki on front page; fix about
Will Kahn-Greene [Sun, 3 Jun 2012 02:03:03 +0000 (22:03 -0400)]
Add link to wiki on front page; fix about

Adds a summary and a link to the wiki for contributors to the front page.

The "what is mediagoblin" section in the about chapter talkd about what
it was, but it was buried--this slightly unburies it.

12 years agoCommitting extracted and compiled translations
Christopher Allan Webber [Fri, 1 Jun 2012 21:33:16 +0000 (16:33 -0500)]
Committing extracted and compiled translations

12 years agoCommitting present MediaGoblin translations before pushing extracted messages
Christopher Allan Webber [Fri, 1 Jun 2012 21:32:41 +0000 (16:32 -0500)]
Committing present MediaGoblin translations before pushing extracted messages

12 years agoAdded links to community-provied init scripts
Joar Wandborg [Sun, 27 May 2012 23:08:38 +0000 (01:08 +0200)]
Added links to community-provied init scripts

12 years agoAdd plugin writer's quickstart guide
Will Kahn-Greene [Thu, 24 May 2012 01:16:18 +0000 (21:16 -0400)]
Add plugin writer's quickstart guide

12 years agoAdd build date to docs
Will Kahn-Greene [Thu, 24 May 2012 00:35:53 +0000 (20:35 -0400)]
Add build date to docs

Makes it easier to spot when the docs aren't rebuilding correctly.

12 years agoSplit docs into siteadmin and pluginwriter guides
Will Kahn-Greene [Thu, 24 May 2012 00:21:03 +0000 (20:21 -0400)]
Split docs into siteadmin and pluginwriter guides

* create initial bits for plugin writer's guide
* move siteadmin stuff to site administrator's guide
* rework index.rst to support multiple guides
* tweak some text
* move files into subdirectories

I verified that this still works with html and texinfo build targets.
There's still a lot of work to do, but this is a good start.

12 years agoMerge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Sun, 20 May 2012 20:24:02 +0000 (15:24 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin

12 years agofrom_celery.setup_self() didn't pay attention to default_conf_file kwarg, fixed.
Christopher Allan Webber [Sun, 20 May 2012 20:17:49 +0000 (15:17 -0500)]
from_celery.setup_self() didn't pay attention to default_conf_file kwarg, fixed.

12 years agoadded support for original audio download; rename
Jakob Kramer [Sat, 19 May 2012 16:17:33 +0000 (18:17 +0200)]
added support for original audio download; rename

Renamed `ogg' to `webm_audio' in core__file_keynames

12 years agoUpdate documentation for plugins
Will Kahn-Greene [Thu, 17 May 2012 01:04:52 +0000 (21:04 -0400)]
Update documentation for plugins

12 years ago401. Plugin infrastructure
Will Kahn-Greene [Tue, 13 Mar 2012 01:17:08 +0000 (21:17 -0400)]
401. Plugin infrastructure

* implements installing, loading and setup for plugins
* codifies configuration
* has a sample plugin
* docs
* tests

12 years agoAdded logging to meddleware.csrf
Joar Wandborg [Sat, 12 May 2012 22:44:09 +0000 (00:44 +0200)]
Added logging to meddleware.csrf

12 years agogandaro points out we should have all headers end with question marks for consistency
Christopher Allan Webber [Sun, 6 May 2012 20:28:13 +0000 (15:28 -0500)]
gandaro points out we should have all headers end with question marks for consistency

Done for about.rst

12 years agoApparently I can't correct typos right. MedaGoblin->MediaGoblin in docs
Christopher Allan Webber [Sun, 6 May 2012 20:27:19 +0000 (15:27 -0500)]
Apparently I can't correct typos right.  MedaGoblin->MediaGoblin in docs

12 years agoA couple of typos in docs... MedaGobilin->MediaGoblin
Christopher Allan Webber [Sat, 5 May 2012 17:16:13 +0000 (12:16 -0500)]
A couple of typos in docs... MedaGobilin->MediaGoblin

12 years agoUpdate version to 0.3.1.dev
Will Kahn-Greene [Mon, 30 Apr 2012 18:03:35 +0000 (11:03 -0700)]
Update version to 0.3.1.dev

12 years agoUpdate version to 0.3.0 for release
Will Kahn-Greene [Mon, 30 Apr 2012 16:48:00 +0000 (09:48 -0700)]
Update version to 0.3.0 for release

12 years agoOne character chage: "our" to "your" in the release notes as it makes more
greg [Tue, 1 May 2012 16:32:59 +0000 (09:32 -0700)]
One character chage: "our" to "your" in the release notes as it makes more
sense, I believe.

12 years ago0.3.0 *is* released! Reflect that in the release notes :)
Christopher Allan Webber [Tue, 1 May 2012 16:10:39 +0000 (11:10 -0500)]
0.3.0 *is* released!  Reflect that in the release notes :)

12 years agoAlso tell people to install python-psycopg2 if using postgres in docs
Christopher Allan Webber [Tue, 1 May 2012 03:12:07 +0000 (22:12 -0500)]
Also tell people to install python-psycopg2 if using postgres in docs

12 years ago./bin/gmg migrate -> ./bin/gmg dbupdate in the docs
Christopher Allan Webber [Tue, 1 May 2012 03:05:27 +0000 (22:05 -0500)]
./bin/gmg migrate -> ./bin/gmg dbupdate in the docs

12 years agoCommitting extracted and compiled translations
Christopher Allan Webber [Mon, 30 Apr 2012 15:48:49 +0000 (10:48 -0500)]
Committing extracted and compiled translations

12 years agoCommitting present MediaGoblin translations before pushing extracted messages
Christopher Allan Webber [Mon, 30 Apr 2012 15:48:21 +0000 (10:48 -0500)]
Committing present MediaGoblin translations before pushing extracted messages

12 years agoRemoving references to MongoDB in docs/
Christopher Allan Webber [Sun, 29 Apr 2012 18:11:31 +0000 (13:11 -0500)]
Removing references to MongoDB in docs/

12 years agoNo need to keep around mongodb migration tests.
Christopher Allan Webber [Sun, 29 Apr 2012 18:05:00 +0000 (13:05 -0500)]
No need to keep around mongodb migration tests.

12 years agoDeprecate ./bin/gmg migrate.
Christopher Allan Webber [Sun, 29 Apr 2012 17:08:44 +0000 (12:08 -0500)]
Deprecate ./bin/gmg migrate.

Keeping it around just in case someone manually wants to migrate
before running the convert thing or... something.  Probably silly.

12 years agoRemoving wipealldata command and deleting env_export/env_import for now.
Christopher Allan Webber [Sun, 29 Apr 2012 16:45:48 +0000 (11:45 -0500)]
Removing wipealldata command and deleting env_export/env_import for now.

None of these tools really work anymore in the SQL world, and possibly
aren't as necessary either.  In the meanwhile, just disabling them to
reduce confusion.

12 years agoRemoving mongo and mongokit as dependencies.
Christopher Allan Webber [Sun, 29 Apr 2012 16:11:08 +0000 (11:11 -0500)]
Removing mongo and mongokit as dependencies.

12 years agoTranslate form validation error messages.
Elrond [Mon, 23 Apr 2012 22:12:18 +0000 (00:12 +0200)]
Translate form validation error messages.

Okay, this is a long story.
There are two ways to translate validation error messages:

1) Let wtforms do it. You give wtforms a translation thingy
   and it calls it for the message to be translated. Good
   idea maybe. Except: The translation function is only
   called for the builtin messages of wtforms. It's not
   called for any handcrafted messages in the constructor.
   And we can't translate the message there! Because the
   message needs to be translated when the form is
   rendered, for each user's locale.

   This does not work for us.

2) Translate the message while it gets rendered.
   Luckily we render the message completely by hand. So we
   can just translate it there also!

   Simple, easy, works!

This all does not cover translating the builtin messages of
wtforms. They're currently not extracted in any way, so our
translators can't translate them.

But that's another issue!