| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For all our media_types, let the backref on the media_entry
be a scalar (there is only one media_data per media_entry)
instead of a list with zero or one entry.
The media_data toolchain on MediaEntry currently handles
both transparently.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of doing query by hand, use the relationships on
the models to find the media_data. Is is made possible by
the BACKREF_NAME in each models.py, which lets us know the
local attr to ask for.
Also initialize the relationship attribute on new
media_data instead of the media_id. Also do not add it to
the session. This gives us:
- This automatically initializes the other side of the
relationship, which will allow later acces via that way.
- If the media_data is too early in the session, when the
(new) media_entry is not yet in there, this could get
conflicts. Avoid those by not adding to session.
- Uses cascading to commit media_data together with the
media_entry.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One in the submissions, that posts a jpg with gps data.
One in the modelmethods to test some behaviours.
The later test fails.
Fixes coming up.
|
| | |
| | |
| | |
| | |
| | | |
Our jquery <script> tag did not have a proper type
attribute.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
And change the process_foo() API to accept a
processingstate now.
image and video are tested, the others are UNTESTED.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes the processing code easier to read/write and
alos will help the reprocessing once we get to it.
Thanks to Joar Wandborg for testing!
|
| | |
| | |
| | |
| | |
| | |
| | | |
Rewrite video to use the new ProcessingState.
Thanks to Joar Wandborg for testing!
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The idea is to have a class that has the knowledge of the
currently being processed media and also has tools for
that.
The long term idea is to make reprocessing easier by for
example hiding the way the original comes into the
processing code.
|
| | |
| | |
| | |
| | | |
Instead of the monster I had built before.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Created and tested by Simon Fondrie-Teitler.
Thanks!
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rename a variable in a translated string to make it easier
for translators to know what they're dealing with.
And add a <title/> block.
|
| | | |
|
| | |
| | |
| | |
| | | |
Add quotation marks and "a" ("a" was proposed by Elrond).
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
The template in the geolocation plugin still used the old
config option. Just remove that. To enable it, you enable
the plugin. No need for extra config.
Tested by manwesulimo2004 (via IRC).
|
| | |
|
| | |
|
| |
| |
| |
| | |
Tells how you *can* use it in templates if you really like.
|
| | |
|
| |
| |
| |
| | |
method
|
| | |
|
| | |
|
| |
| |
| |
| | |
in default config
|
| |
| |
| |
| |
| |
| |
| | |
- I'm having trouble seeing if the geolocation stuff actually works,
but plugins are included
- including a list of template hooks works, however the macro to
include them does not, so it's kinda verbose
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Added start of template hook code to pluginapi.py
- Started to break openstreetmap into plugin; moved templates
- Added plugin hooks in media and image media templates
... almost certainly, none of this works yet. :)
|
| |
| |
| |
| |
| |
| |
| |
| | |
py3 does not have dict.has_key any more. You have to use
"key in dict" instead. As that works in python2 as well,
let's use that.
Also some small bits of pep8.
|
| |
| |
| |
| | |
Do not commit so often. flushing is enough.
|
| |
| |
| |
| | |
well, fix the relationship on the comments.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This currently fails (with foreign key constrain error):
1. Have user A and B.
2. User B creates media M.
3. User A post a comment on M.
4. User A deletes his own account.
The test is a little bit wider.
|
| |
| |
| |
| |
| | |
(This changed in master while this test was being written; correcting
post-merge.)
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
- fixed some issues with "whacking uuid junk on the slug"
- uuid4() -> uuid.uuid4() so that mock will work right
- added all the tests!
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
.hex is what we need to access to get at the ascii (hex) version
anyway. Also, not sure why the previous version grabbed starting at
the index of 1... just grab the first characters instead.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- made the mistake of copying some commit message things into the
docstring. Fixed.
- elrond points out that += is nicer and we don't need u"" in this
case since we're not concatenating a variable, we're concatenating
a known ascii string.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This one does not *force* slugs, but usually it will probably result
in a niceish one.
The end *result* of the algorithm will (presumably, I have not tested
it) result in these resolutions for these situations:
- If we have a slug, make sure it's clean and sanitized, and if it's
unique, we'll use that.
- If we have a title, slugify it, and if it's unique, we'll use that.
- If we can't get any sort of thing that looks like it'll be a useful
slug out of a title or an existing slug, bail, and don't set the
slug at all. Don't try to create something just because. Make
sure we have a reasonable basis for a slug first.
- If we have a reasonable basis for a slug (either based on existing
slug or slugified title) but it's not unique, first try appending
the entry's id, if that exists
- If that doesn't result in something unique, tack on some randomly
generated bits until it's unique. That'll be a little bit of junk,
but at least it has the *basis* of a nice slug!
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
generate_slug could assign "none" as slug. Make sure it assigns a unique
slug in any case. We now try based on:
a) existing slug values
b) media.title
c) media.id
d) random garbage
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously we allowed EVERYTHING, even slashes as slug when editing the media.
Make sure we slugify the input to sanitize it.
(+ string formdata is unicode, so there is no need to convert it)
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We might want to use "id:IDN" as a special case slug to point to a media's
id.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
|
| | |
| | |
| | |
| | |
| | |
| | | |
When deleting a User, his/her collections can be deleted by
sqlalchemy: Collections do not need any special code to be
executed on deletion.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
- Changed the default to BICUBIC instead of previous ANTIALIAS
|