Jakob Kramer [Sat, 24 Mar 2012 13:49:43 +0000 (14:49 +0100)]
Allow arrow keys in input fields and textareas
If you pressed an arrow key in a textarea before, the next/previous media
was opened.
Jakob Kramer [Fri, 23 Mar 2012 21:13:48 +0000 (22:13 +0100)]
remove unused `mg.submit.security' module
Elrond [Fri, 23 Mar 2012 19:20:02 +0000 (20:20 +0100)]
Fix cyclic import issue.
Oh well:
tools.exif -> processing -> db.util -> db.models -> db.mixin -> tools.exif
So import tools.exif locally in exif_display_iter()
Elrond [Fri, 23 Mar 2012 19:16:42 +0000 (20:16 +0100)]
Create MediaEntry.exif_display_iter()
MediaEntry.media_data.exif_all will contain all the
"clean" EXIF data.
MediaEntry.exif_display_iter() is an iterator that fetches
the most interesting entries for display from that data.
Elrond [Thu, 22 Mar 2012 12:16:00 +0000 (13:16 +0100)]
image_mediadata: Add exif_all column
Elrond [Thu, 22 Mar 2012 12:15:27 +0000 (13:15 +0100)]
Add copyright header to image/models.py
Jakob Kramer [Fri, 23 Mar 2012 17:14:55 +0000 (18:14 +0100)]
correct wrong version number
(`-dev' instead of `.dev')
Elrond [Thu, 22 Mar 2012 20:19:47 +0000 (21:19 +0100)]
New media_data row needs to know its MediaEntry's id.
When creating a new media_data row, the new row needs to
know the MediaEntry it is associated with. I have no idea,
why this worked before at all. Maybe some implicit tricks
by sqlalchemy?
Elrond [Wed, 21 Mar 2012 21:46:38 +0000 (22:46 +0100)]
Add index=True for some columns.
These are the columns that seem to make the most sense to
have an index on them.
Elrond [Wed, 21 Mar 2012 20:46:07 +0000 (21:46 +0100)]
Finally load all models.
Load all models for the media_types. This was stopped by a
celery problem. But that is now fixed.
Elrond [Wed, 21 Mar 2012 11:08:53 +0000 (12:08 +0100)]
Panel: Find "unprocessed" not "processing" entries.
Our entries in the queue are marked as "unprocessed" and
not as "processing" as the panel code wanted it to be. So
search for the correct string.
Elrond [Wed, 21 Mar 2012 10:55:42 +0000 (11:55 +0100)]
And fix the in-celeryd import.
So that celeryd also loads the task.
Elrond [Wed, 21 Mar 2012 10:39:52 +0000 (11:39 +0100)]
Move celery task into own task.py
Move the actual celery task from processing/__init__.py
into its own .../task.py. That way it can be imported as
needed.
Elrond [Wed, 21 Mar 2012 10:24:16 +0000 (11:24 +0100)]
Turn processing.py into a submodule.
processing.py -> processing/__init__.py
This is in preparation for splitting processing a bit.
The main reason for the split is celery setup: celery needs
to be setup before even importing and importing and
subclassing some of its parts. So it's better to move the
critical parts into their own submodule and import it as
late as needed.
Christopher Allan Webber [Wed, 21 Mar 2012 04:24:43 +0000 (23:24 -0500)]
Merge remote-tracking branch 'refs/remotes/brett/bug270-lazycelery-script'
Elrond [Tue, 20 Mar 2012 22:55:28 +0000 (23:55 +0100)]
More standard media_data model for ascii.
ascii doesn't use media_data at all. So it needs the most
basic media_data model. Fix it to take the current form.
Elrond [Tue, 20 Mar 2012 11:39:15 +0000 (12:39 +0100)]
Create load_models().
So all models are ready when connecting to the db and so
our "db" object has all models listed on it, create a
function to load all models from the media_types, etc. Call
it in setup_database()
Problem: This gives celery warnings, because celery is
imported before being setup properly. No idea how to fix
this now. So media-type loading is excluded from
load_models for now.
Elrond [Tue, 20 Mar 2012 11:32:11 +0000 (12:32 +0100)]
Import "Base" from base instead of models.
Import the "Base" class for models from db.sql.base instead
of db.sql.models.
Elrond [Tue, 20 Mar 2012 11:43:09 +0000 (12:43 +0100)]
Disable query logging for now, so we get nicer logs
As the queries are quite verbose, disable them for now.
Reenabling them should be done in the central logging
config, which is another story for celery and bin/gmg.
Jakob Kramer [Sun, 18 Mar 2012 21:28:22 +0000 (22:28 +0100)]
500 error because of subscripting instead of using attributes
Christopher Allan Webber [Sun, 18 Mar 2012 20:16:37 +0000 (15:16 -0500)]
Committing extracted and compiled translations
Christopher Allan Webber [Sun, 18 Mar 2012 20:16:03 +0000 (15:16 -0500)]
Committing present MediaGoblin translations before pushing extracted messages
Christopher Allan Webber [Sun, 18 Mar 2012 19:39:35 +0000 (14:39 -0500)]
Fixing manual tyop: MediaGoblin, not MediaGobiin (thanks gandaro!)
Christopher Allan Webber [Sun, 18 Mar 2012 17:07:13 +0000 (12:07 -0500)]
Removing print statements from convert_gps_media_data migration
Kind of useful to see but... I don't think they're needed, and I'm not
super comfortable with print statements being in migrations. Seems
semi bloated!
Brett Smith [Sun, 18 Mar 2012 02:33:08 +0000 (22:33 -0400)]
Refactor lazyserver.sh to lazystarter.sh and provide lazycelery.sh (#270)
Bug #270 asks for a lazycelery.sh script much like lazyserver.sh. Rather
than duplicate the code, I consolidated them into a single script,
lazystarter.sh. The script reconfigures itself a bit, and runs a
particular server, based on the name that's used to call it, but no matter
what it uses the same code to offer help and find configuration files and
server launchers. Hopefully this will make it easy to add other
features/fix bugs as needed in the future, and have them stay in sync.
Elrond [Sat, 17 Mar 2012 21:30:48 +0000 (22:30 +0100)]
Let convert_mongo_to_sql add Migration Records
The mongosql tool is really dumping directly into the sql
database and is trying not to use too much logic that might
change later.
So this means, it needs to create the migration records on
its own!
So add a bunch of records with version=0.
Christopher Allan Webber [Sat, 17 Mar 2012 22:18:15 +0000 (17:18 -0500)]
Merge remote-tracking branch 'brett/bug264-delete-comments-with-media'
Christopher Allan Webber [Sat, 17 Mar 2012 22:09:26 +0000 (17:09 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Sat, 17 Mar 2012 22:08:46 +0000 (17:08 -0500)]
mongo->sql conversion script now runs mongo migrations first, just in case
Jef van Schendel [Sat, 17 Mar 2012 21:58:33 +0000 (22:58 +0100)]
Remove sidedata class from html pages
Christopher Allan Webber [Sat, 17 Mar 2012 21:57:18 +0000 (16:57 -0500)]
Also ignore the /share/ directory
Jef van Schendel [Sat, 17 Mar 2012 21:56:25 +0000 (22:56 +0100)]
Small styling change for sidebar data
Christopher Allan Webber [Sat, 17 Mar 2012 21:48:28 +0000 (16:48 -0500)]
Make mediagoblin SQL models all use a consistent table naming scheme
Brett Smith [Sat, 17 Mar 2012 21:53:00 +0000 (17:53 -0400)]
When media is deleted, delete associated comments too.
The actual code is just a simple for loop; there might be a better
implementation but this is a fine start. I also extended test_delete to
check this too.
Christopher Allan Webber [Sat, 17 Mar 2012 17:31:11 +0000 (12:31 -0500)]
Mongosql imports made celery get set up before we wanted it via ./bin/gmg commands
Just moved the import into the actual function. That resolved the issue!
Elrond [Sat, 17 Mar 2012 12:18:43 +0000 (13:18 +0100)]
More/better translation.
- Try to preserve some translations (somehow).
- Mark "Tagged with" again for translation.
- Do not translate the empty string
Jef van Schendel [Fri, 16 Mar 2012 22:05:30 +0000 (23:05 +0100)]
Small formatting changes to footer text.
Elrond [Fri, 16 Mar 2012 17:13:46 +0000 (18:13 +0100)]
Create function to search media by slug.
Searching media by slug is easy on mongo. But doing the
joins in sqlalchemy is not as nice. So created a function
for doing it.
Well, and create the same function for mongo, so that it
also works.
Elrond [Fri, 16 Mar 2012 19:59:44 +0000 (20:59 +0100)]
Fix for mongo.
pymongo does not rewind a cursor after leaving a for loop.
So let us do it by hand. Well.
Elrond [Fri, 16 Mar 2012 16:57:27 +0000 (17:57 +0100)]
More efficient first element fetching and Dot-Notation.
_get_tag_name_from_entries:
1) Replace:
if q.count():
elem = q[0]
by:
for element in q:
...
break
this doesn't do two db queries but only one.
2) And another dose of Dot-Notation as usual.
Elrond [Fri, 16 Mar 2012 20:18:04 +0000 (21:18 +0100)]
Fix _get_tag_name_from_entries().
Replace == by =.
Elrond [Thu, 15 Mar 2012 11:38:09 +0000 (12:38 +0100)]
Fix uploading of images (sql: media_data, exif).
When uploading a new image the processing code wants to set
the media_data['exif'] part. As exif is not yet in sql,
there is no way to make this work now. So the workaround is
to check for "no row exists yet" and just ignore exif.
Elrond [Thu, 15 Mar 2012 11:35:58 +0000 (12:35 +0100)]
Fix media display for no media_data row in sql.
If there is no media_data row for the current media (for
whatever reason, there might be good ones), let
MediaEntry.media_data not raise an exception but just
return None.
The exif display part now handles this by checking whether
.media_data.exif is defined (None has no attribute exif, so
it's undefined, all fine).
Christopher Allan Webber [Wed, 14 Mar 2012 23:28:06 +0000 (18:28 -0500)]
Implemented the MediaEntry .media_data type fields for SQL
Christopher Allan Webber [Wed, 14 Mar 2012 21:03:09 +0000 (16:03 -0500)]
Removing an unnecessary line of whitespace AND crediting Hugo Boyer for the ipython code!
Thanks Hugo Boyer! I forgot to credit you in my last commit.
Christopher Allan Webber [Wed, 14 Mar 2012 21:00:53 +0000 (16:00 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Wed, 14 Mar 2012 21:00:34 +0000 (16:00 -0500)]
ipython support in ./bin/gmg shell!
Elrond [Wed, 14 Mar 2012 20:17:50 +0000 (21:17 +0100)]
Add gps_altitude and gps_direction to image media_data.
Elrond [Wed, 14 Mar 2012 20:17:07 +0000 (21:17 +0100)]
Convert (gps) image media_data.
Add mongo_to_sql convert part for converting the media_data
for images. This currently drops the exif data and thus
only converts gps data.
Elrond [Wed, 14 Mar 2012 19:15:04 +0000 (20:15 +0100)]
Change image processing to create new .gps_*.
The processing should also create .gps_* instead of the old
['gps']['x']. To ease forward porting, use the new
media.media_data_init() to set the gps data in the media.
Elrond [Wed, 14 Mar 2012 19:13:42 +0000 (20:13 +0100)]
Use .gps_* in the template and add translations.
Instead of .gps.x use .gps_x and add some "is defined" and
stuff.
Also mark some strings for translation in here.
Elrond [Wed, 14 Mar 2012 18:35:48 +0000 (19:35 +0100)]
Migration to move gps data around
Move media_data["gps"]["*"] to media_data["gps_*"].
In preparation for media_data.gps_*
Christopher Allan Webber [Wed, 14 Mar 2012 19:04:05 +0000 (14:04 -0500)]
Merge branch 'elrond-sql-convert_video_data'
Christopher Allan Webber [Wed, 14 Mar 2012 19:03:49 +0000 (14:03 -0500)]
Fix VideoData insertion
Christopher Allan Webber [Wed, 14 Mar 2012 17:44:19 +0000 (12:44 -0500)]
Preserve existing translation
Christopher Allan Webber [Wed, 14 Mar 2012 17:38:55 +0000 (12:38 -0500)]
Provide a source link so we can comply with the AGPL
Elrond [Tue, 13 Mar 2012 22:03:03 +0000 (23:03 +0100)]
Convert media_data for video
This creates fresh VideoData rows for all the videos in the
mongodb.
Christopher Allan Webber [Tue, 13 Mar 2012 20:40:59 +0000 (15:40 -0500)]
Merge remote-tracking branch 'refs/remotes/chemhacker/bug402_nicer_skin_for_video'
Conflicts:
mediagoblin/templates/mediagoblin/media_displays/video.html
Sacha De'Angeli [Tue, 13 Mar 2012 00:44:55 +0000 (19:44 -0500)]
adding the video.js wrapper
Christopher Allan Webber [Mon, 12 Mar 2012 23:38:35 +0000 (18:38 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Elrond [Mon, 12 Mar 2012 23:17:06 +0000 (00:17 +0100)]
Another .one -> .find_one
Same idea as in the previous commit.
Joar caught this one.
To reproduce
1. Create a user with an all-decimal ObjectId in mongo
2. Login using that user, while mongodb is enabled.
3. Switch instance to sql.
4. Restart.
5. Refresh any page.
This will error, because no user with that object id exists
any more.
While around, improved logging.
Christopher Allan Webber [Mon, 12 Mar 2012 23:19:03 +0000 (18:19 -0500)]
Merge remote-tracking branch 'derek-moore/bug293_non_ascii_password'
Derek Moore [Mon, 12 Mar 2012 23:02:42 +0000 (16:02 -0700)]
Changes for 293. Tests pass, encode UTF8 on password on registration (and also for subsequent logins once the user is created) is working.
Elrond [Fri, 27 Jan 2012 23:24:09 +0000 (00:24 +0100)]
Change user search from .one to .fine_one.
When searching for a user by username, there can either be
no result or one result. There is a unique constraint on
the db.
.one in mongokit raises an error for more than one result.
But that can't happen anyway. So no problem.
.one in sqlalchemy raises an error for more than one, but
that's not a problem anyway. It also raises an error for no
result. But no result is handled by the code anyway, so no
need to raise an exception.
.find_one doesn't raise an exception for more than one
result (no problem anyway) and just returns None for no
result. The later is handled by the code.
Elrond [Sat, 10 Mar 2012 20:01:45 +0000 (21:01 +0100)]
Better media_data sql table for images.
1. Change to the current primary key = media_entry id
layout
2. Add gps_{latitude,longitude} to the table.
Sacha De'Angeli [Mon, 12 Mar 2012 19:57:31 +0000 (14:57 -0500)]
adds video preload bug 375
Christopher Allan Webber [Mon, 12 Mar 2012 18:38:22 +0000 (13:38 -0500)]
Added m4v to list of media types and a comment stating we should
autogenerate extension list
Jef van Schendel [Sat, 10 Mar 2012 23:03:50 +0000 (00:03 +0100)]
Slight change to thumbnail gallery style
Elrond [Sat, 10 Mar 2012 21:34:06 +0000 (22:34 +0100)]
Improve logging of sql queries a bit.
Docs:
http://docs.sqlalchemy.org/en/latest/core/engines.html#configuring-logging
So for an application utilizing python logging for real
(and MediaGoblin should) the rule is:
- Don't use echo=True,
- but reconfigure the appropiate loggers' level.
So replaced the echo=True by a line to reconfigure the
appropiate logger to achieve the same effect.
This still dumps whole bloats of SQL queries into the main
log, but at least they're not duped any more.
Elrond [Wed, 7 Mar 2012 23:14:45 +0000 (00:14 +0100)]
Forgot to add FileKeynames to MODELS
Elrond [Fri, 24 Feb 2012 20:16:02 +0000 (21:16 +0100)]
Normalize MediaFile.name (make it a foreignkey)
The name part of a MediaFile is only using a very limited
number of items. Currently things like "original" or
"thumb".
So instead of storing the string on each entry, just store
a short integer referencing the FileKeynames table and have
the appropiate string there.
Joar Wandborg [Thu, 8 Mar 2012 00:02:40 +0000 (01:02 +0100)]
Changed from key-notation to dot-notation in edit_profile
Joar Wandborg [Thu, 8 Mar 2012 00:02:06 +0000 (01:02 +0100)]
SQL: Added MediaFile and MediaAttachmentFile to MODELS
Elrond [Sun, 19 Feb 2012 11:14:13 +0000 (12:14 +0100)]
Generic generate_slug for mongo and sql.
Using the new check_media_slug_used it is possible to have
one generic generate_slug in the mixin class instead of in
each db class.
In the sql variant self.id is not always set: If the slug
alone would create a dupe the current code decides for "no
slug at all".
Jef van Schendel [Wed, 7 Mar 2012 15:29:02 +0000 (16:29 +0100)]
Push another half-fix for portrait thumbnails. Man, this thing is breaking all over the place.
Jef van Schendel [Wed, 7 Mar 2012 15:24:23 +0000 (16:24 +0100)]
Sort-of fixes so the header does not collapse anymore. Header needs redesigning.
Jef van Schendel [Wed, 7 Mar 2012 15:17:21 +0000 (16:17 +0100)]
Header doesn't need a height
Jef van Schendel [Wed, 7 Mar 2012 15:11:24 +0000 (16:11 +0100)]
Actually decrease thumbnail size instead of just their containers
Elrond [Tue, 6 Mar 2012 13:49:42 +0000 (14:49 +0100)]
Translate less html.
Instead of translating <p ...>TEXT</p> just mark TEXT for
translation. That way formatting changes can be done
without affecting the translations.
Jef van Schendel [Mon, 5 Mar 2012 23:36:15 +0000 (00:36 +0100)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Jef van Schendel [Mon, 5 Mar 2012 23:35:55 +0000 (00:35 +0100)]
Revert thumbnail gallery change: switch back to tables
Jef van Schendel [Mon, 5 Mar 2012 23:31:34 +0000 (00:31 +0100)]
Fix merge conflict in prev_next.html
Elrond [Tue, 24 Jan 2012 20:47:40 +0000 (21:47 +0100)]
Generic check_media_slug_used db utility.
In two cases (generating a new slug and editing the slug)
it is nice to know in advance (before the db gets angry)
that the slug is used/free. So created a db utility
function to check for this on mongo and sql:
check_media_slug_used()
Elrond [Tue, 24 Jan 2012 22:03:33 +0000 (23:03 +0100)]
SQL: Tool to cleanup unused tag slugs.
The current SQL layout/sqlalchemy strucuture can't detect
whether a slug isn't needed any more and delete it. So
provide a tool function to cleanup unused slugs.
It's currently not hooked to any gmg function!
Jef van Schendel [Mon, 5 Mar 2012 18:27:26 +0000 (19:27 +0100)]
Stop failing if there is no previous/next to go to
Jef van Schendel [Mon, 5 Mar 2012 18:21:59 +0000 (19:21 +0100)]
Merge branch 'keyboard_nav'
Jef van Schendel [Mon, 5 Mar 2012 17:47:31 +0000 (18:47 +0100)]
Edit css rule to allow users to zoom
Joar Wandborg [Mon, 5 Mar 2012 16:15:43 +0000 (17:15 +0100)]
Added the sql_switch.py script to .gitignore
Elrond [Sun, 12 Feb 2012 21:58:08 +0000 (22:58 +0100)]
Implement atomic_update for SQL.
On sqlalchemy most updates are atomic enough for most use
cases. Anyway, here is an atomic_update that is compatible
to the mongo version.
Elrond [Sun, 29 Jan 2012 19:56:51 +0000 (20:56 +0100)]
Create atomic_update db utility function
In some cases (notably the mark_entry_failed function) it
is useful to have atomic update functionality on the db. On
mongo this requires special syntax.
So created an atomic_update function for mongo and started
to use it in mark_entry_failed.
Jef van Schendel [Sun, 4 Mar 2012 18:13:47 +0000 (19:13 +0100)]
Add sidebar again
Jef van Schendel [Sun, 4 Mar 2012 18:05:41 +0000 (19:05 +0100)]
Merge branch 'newlayout' into newlayout-stage
Elrond [Sat, 3 Mar 2012 20:25:20 +0000 (21:25 +0100)]
Merge branch 'media_data_start'
* media_data_start:
And media_data_init() for sql as a dummy
Create a fake MediaEntry.media_data for sql
Video media_data: Change layout in the mongo world
Elrond [Sat, 3 Mar 2012 20:12:57 +0000 (21:12 +0100)]
And media_data_init() for sql as a dummy
Needs to be implemented.
Elrond [Sat, 18 Feb 2012 21:20:32 +0000 (22:20 +0100)]
Create a fake MediaEntry.media_data for sql
So that the SQL backend is more useable, let the MediaEntry
have a faked media_data.
It's extremely fake: The returned dict is always a new one.
So any stored info is even lost!
Christopher Allan Webber [Thu, 1 Mar 2012 23:30:07 +0000 (17:30 -0600)]
Go go mediagoblin favico symmetry
Elrond [Thu, 1 Mar 2012 20:59:26 +0000 (21:59 +0100)]
Video media_data: Change layout in the mongo world
Change the media_data for video from
entry.media_data["video"] to use entry.media_data directly.
Also start a bare MediaEntry.media_data_init(**kwargs)
method for setting up the media_data and possibly
initialising it with kwargs.
Elrond [Thu, 1 Mar 2012 20:34:21 +0000 (21:34 +0100)]
SQL: Improve video media_data table
1. Make the foreignkey the primary_key.
2. Add width/height, as those are currently in use for the
media_data
Elrond [Sat, 28 Jan 2012 12:10:01 +0000 (13:10 +0100)]
Cleanup Session after each request.
It's good practice to cleanup the SQL session after each
request so that the next request gets a fresh one.
It's an application decision whether one wants a
just-in-case ROLLBACK or COMMIT. There are two ideas behind
it, really. I have decided for ROLLBACK. The idea is "if
you forget to commit your changes yourself, there's
something broken. Maybe you got an exception?".
Elrond [Sat, 25 Feb 2012 22:53:11 +0000 (23:53 +0100)]
Attachment support in the SQL backend
attachments working with the sql backend.
- SQL Schema for attachment files, ordering attachments by
their name, not by the submission order (as earlier).
- Dot-Notation for attachments, where missing.
- convert existing attachments over from mongo -> sql