| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
This commit sponsored by Ben Hutchings. Thanks, Ben!
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Embed the atom feed link in the root template (most recent media
page) for easier discovery. Delete the (listings/all.html) template
as contributed in commit 195e79098b5 as it was unused and the feed
is essentially showing the most recent media anyway.
|
| | |
| | |
| | |
| | | |
Go to /atom/ in your browser to see it.
|
| | |
| | |
| | |
| | |
| | |
| | | |
- This makes many places more readable.
- Gives us translation in two places.
- Allows easier changing of labels in a central place.
|
| | |
| | |
| | |
| | |
| | |
| | | |
If we have to render fields individually, we still can use
wtforms_util.render_field_div for each field. Makes things
much smaller and readable.
|
| |\ \ |
|
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
By "translation legos" I mean having multiple strings to be translated
appended together. This isn't a good idea because you can't assume
that syntax will work together in the same way in another language, so
you may be making things hard or impossible for translators.
Between this and the last commit, this means that tags now link to
user tagged media specifically, and if people want a more general tag
listing, they can click on the tag link to get to a more general
listing. I feel this is a good and intuitive route to handling this.
This sponsored commit brought to you by Debarshi Ray! Thank you!
|
| | |
| | |
| | |
| | | |
This commit sponsored by Torsten Meissner. Thanks, Torsten!
|
| | |
| | |
| | |
| | | |
This commit sponsored by Kat Walsh. Thanks, Kat!
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
tags used to be global, you could only browse media by tag for all users.
This patch implements a view that allows us to browse only a user's tagged
media.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The response headers were never getting set because of a bug in the 7c552c0
commit. This expands the loop into a more readable form and results in the
headers getting set.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
1. Add a trailing slash to the mediagoblin.org URL.
(The string changed anyway, so translations are not
affected more than already.)
2. Order was wrong for those two at the end (old version):
{% endblock mediagoblin_body %}
</div>
3. Fix some little indenting issues.
4. Remove some useless space from the output.
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* pythonsnake/537_version:
Added "version" before the version
Fix bug 537
|
| | | | | |
|
| | | |/
| | |/| |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If one deletes a media with attachments, there have been
various problems:
1) If the file in the storage did not exist any more (maybe
because due to a previous deletion attempt?), the error
propagation failed, because the wrong thing was
gathered.
2) The attachment database entries were not deleted.
Using cascade for this, for now.
Also add a simple unit test, that tests both by having a
broken attachment on a media.
|
| | | |
| | | |
| | | |
| | | | |
When a collection does not exist, render the 404 page.
|
| | | |
| | | |
| | | |
| | | | |
Also fixed a bug (thanks pyflakes)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Fixed PEP-008 issues.
- Removed .user-{user} from the tag URI and put it before the domain,
such as {user}@{host} instead.
- Use year from collection.created instead of current year.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use wtforms_util.render_field_div on the collection
description, so that the markdown notice in the wtform is
actually rendered to html.
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ / |
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | | |
Now we only support media_type backrefs with uselist=False.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Only when creating a new media_data row, we need the table.
So load that locally in media_data_init().
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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!
|