- Moved exif functions from mediagoblin.media_types.image.processing
to mediagoblin.tools.exif
- Moved EXIF.py link from mediagoblin.media_types to mediagoblin.tools.extlib
- Refractored and updated EXIF exctraction and presentation
- Images are now rotated based on EXIF image orientation
(in case the image isn't flipped on X or Y axis or
correctly oriented, then we do nothing)
- *Always* create a medium.jpg in image.processing, for
the sake of rotation of display image
- Extract EXIF and GPS tags from images and insert them
into media_data
- Geolocation map display added to media.html
- EXIF display added, then removed. It is not in this
revision, although some of it is (the "EXIF" h4
header). Need to make it presentable, filtering out
purely robotical tags, perhaps.
A custom query class allows to add more methods on
queries (read: "cursors").
This custom query class especially adds a .sort with a
calling convention exactly like the mongo one.
Makes a lot of existing code happy!
sql/fake.py contains some fake classes and functions to
calm the rest of the code base. Or provide super minimal
implementations.
Currently:
- ObjectId "class": It's a function mostly doing
int(first_arg) to convert string primary keys into
integer primary keys.
- InvalidId exception
- DESCENING "constant"
* remotes/macno/pushatom:
As per spec, we permit to have more then 1 hub
As suggested by Elrond, we use only one setting
Default is now PuSH disabled
Added PuSH capability
The session can contain invalid objectids when switching a
more or less live instance (with logged in users) from
mongo to sql or vice versa.
So drop the complete session and force the user to login
again.
If one isn't logged in and views the profile of a user
without media, one gets a problem, because request.user is
None and has no _id attribute.
Fix this.
- This adds a new SQL table field type for path tuples.
They're stored as '/' separated unicode strings.
- Uses it to implement a MediaFile table.
- Add relationship and proxy fields on MediaEntry to give a
nice media_files "view" there.
- Let the converter fill the MediaFile.