Christopher Allan Webber [Sun, 1 Apr 2012 20:36:11 +0000 (15:36 -0500)]
Merge remote-tracking branch 'refs/remotes/elrond/sql/final'
Conflicts:
mediagoblin/tests/test_submission.py
Also, WHOO SQL SWITCHOVER PARTY!
ASCII DANCE PARTY
/_o_/ \ / \o_ o
( _|_ ) //)
/\ / o \ /| /|
*BMCH BMCH BMCH BMCH*
%
/_o_/ HHHYAAaaaaa
/_
/ /
%
AAAAAHAHAHAHAHHHAAHA
,, .------
o_o ;; /\\ \ $ __
'\/ || // \\ # /_/
\// // //\\ \
) \\ \ %
\\ \\_____\
| ) //-------
/_/_ // //
SWITCH YOUR DATABASE
FLIP A FUKKEN BOOLEAN
%
__________
.-' '-.
.' '.
.' _--_ _--_ '.
/ / (_). / (_). \
. | | | | .
| ._____, ._____, |
| ____________________ |
| | | |
' \ / '
\ '. .----./ /
\ '._ / / /
'. '--------' .'
'._ _.'
'----------'
Elrond [Sun, 1 Apr 2012 20:02:06 +0000 (22:02 +0200)]
Fix unit tests for sql: cache media_id.
Attributes of SQLAlchemy objects get "lost". So "cache"
them locally in the code.
This is really the simple explanation for some scarry
sqlalchemy details.
Elrond [Sun, 1 Apr 2012 19:46:36 +0000 (21:46 +0200)]
Finally enable SQL for everybody!
This switches the whole source code over to use sql instead
of mongodb. It's a pretty easy change, but changes nearly
the complete way things work. Hopefully everythong works!
Elrond [Sun, 1 Apr 2012 17:55:15 +0000 (19:55 +0200)]
Switch JSONEncoded from VARCHAR to TEXT
The JSON fields are really "dumb stuff in here" fields.
They are not intended to get indexed or anything. And they
can get large. For example the exif_all field in one of my
simple tests is nearly 7 kB large. Although VARCHAR might
work, TEXT feels just better as the storage type.
Jef van Schendel [Sun, 1 Apr 2012 16:06:49 +0000 (18:06 +0200)]
JS: fix first part of #422; make items in drop-down acutally work
Jef van Schendel [Sun, 1 Apr 2012 15:25:50 +0000 (17:25 +0200)]
CSS: change padding-left to margin-left
Jef van Schendel [Sun, 1 Apr 2012 15:25:25 +0000 (17:25 +0200)]
CSS: change comment margins
Jef van Schendel [Sun, 1 Apr 2012 15:22:37 +0000 (17:22 +0200)]
HTML/CSS: comment style changes
Jef van Schendel [Sun, 1 Apr 2012 15:11:57 +0000 (17:11 +0200)]
HTML: remove elements for comment button style change
Jef van Schendel [Sun, 1 Apr 2012 15:07:52 +0000 (17:07 +0200)]
CSS: remove background
Jef van Schendel [Sun, 1 Apr 2012 15:04:50 +0000 (17:04 +0200)]
Logo margin fix
Jef van Schendel [Sun, 1 Apr 2012 14:02:23 +0000 (16:02 +0200)]
Add dropdown to header
Jef van Schendel [Sat, 31 Mar 2012 14:55:35 +0000 (16:55 +0200)]
Revert changes from last commit; I am an idiot
Jef van Schendel [Sat, 31 Mar 2012 14:48:06 +0000 (16:48 +0200)]
Switch over content to new layout/text; slight css edits
Jef van Schendel [Sat, 31 Mar 2012 12:25:37 +0000 (14:25 +0200)]
Increase bottom margin header
Jef van Schendel [Sat, 31 Mar 2012 12:10:58 +0000 (14:10 +0200)]
Small CSS changes to header
Joar Wandborg [Fri, 30 Mar 2012 15:50:56 +0000 (17:50 +0200)]
Added pygst.require('0.10') since it's absence breaks stuff
Joar Wandborg [Thu, 29 Mar 2012 22:18:54 +0000 (00:18 +0200)]
Updated Video docs, so that I won't forget
Joar Wandborg [Thu, 29 Mar 2012 21:53:05 +0000 (23:53 +0200)]
Cleaned up media_types.video.transcoders
Elrond [Thu, 29 Mar 2012 21:05:34 +0000 (23:05 +0200)]
And remove some now useless methods.
Elrond [Thu, 29 Mar 2012 20:52:39 +0000 (22:52 +0200)]
Remove the DictReadProxy thing.
And some other stuff, that the converter does not need.
Elrond [Thu, 29 Mar 2012 20:31:51 +0000 (22:31 +0200)]
Fix some simple errors.
Elrond [Thu, 29 Mar 2012 20:12:34 +0000 (22:12 +0200)]
Change models to a _v0 suffix.
And add the image and video media_data tables.
And start to rewrite the convert tool.
Elrond [Thu, 29 Mar 2012 19:36:07 +0000 (21:36 +0200)]
Make a copy of models for v0.
Joar Wandborg [Thu, 29 Mar 2012 21:01:40 +0000 (23:01 +0200)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Joar Wandborg [Thu, 29 Mar 2012 20:52:39 +0000 (22:52 +0200)]
Cleanded up video imports, removed PyGTK dependency
Elrond [Thu, 29 Mar 2012 19:52:26 +0000 (21:52 +0200)]
Audio: And add empty migrations.
Elrond [Thu, 29 Mar 2012 19:45:05 +0000 (21:45 +0200)]
Audio: Add models and disable media_data.
1. Add a super-minimal media_data table for audio.
It currently contains nothing.
Like the ascii one.
2. To avoid media_data trouble -- for now -- disable the
creation of media_data completrly.
Joar Wandborg [Thu, 29 Mar 2012 14:19:11 +0000 (16:19 +0200)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Joar Wandborg [Thu, 29 Mar 2012 14:06:36 +0000 (16:06 +0200)]
Seeking works in firefox
- Added support for indicating multiple buffered
ranges (Firefox)
- Added volume slider (Chromium)
- Replaced stop button with faux pause button
- Added 'ended' event handler
Elrond [Thu, 29 Mar 2012 11:15:38 +0000 (13:15 +0200)]
The video media_type needs pygtk/gtk.
Note in the docs, that the video media_type needs the gtk
and pygtk modules and where to get them on debian.
Elrond [Wed, 28 Mar 2012 11:19:11 +0000 (13:19 +0200)]
411: Add relationship and backrefs to media_data tables.
Adding proper relationship()s and especially backref()s
will delete media_data rows along with the main MediaEntry.
This fixes #411.
Joar Wandborg [Tue, 27 Mar 2012 21:43:15 +0000 (23:43 +0200)]
Changed audio.* Image* imports
so that they no longer import from PIL explicitly.
This is due to explicit PIL.Image* imports failing
on a Ubuntu machine within virtualenv.
PIL is a mystery I have yet to find the energy to unravel.
The 'implicit' approach works both for the affected
machine and my local machine and I've seen it more often
out in the wild, so I'm assuming it is the right way.
Joar Wandborg [Tue, 27 Mar 2012 14:38:41 +0000 (16:38 +0200)]
Fixed test_submission -> test_evil_file test
Joar Wandborg [Tue, 27 Mar 2012 10:05:09 +0000 (12:05 +0200)]
Merge remote-tracking branch 'joar/audio+sniffing'
Conflicts:
mediagoblin/media_types/image/processing.py
mediagoblin/media_types/video/__init__.py
mediagoblin/media_types/video/processing.py
mediagoblin/tests/test_submission.py
Christopher Allan Webber [Mon, 26 Mar 2012 20:11:05 +0000 (15:11 -0500)]
Removing superfluous whitespace
Christopher Allan Webber [Mon, 26 Mar 2012 20:09:35 +0000 (15:09 -0500)]
Merge remote-tracking branch 'remotes/slikdigit/bassam'
Conflicts:
mediagoblin/media_types/image/processing.py
Christopher Allan Webber [Mon, 26 Mar 2012 19:33:12 +0000 (14:33 -0500)]
Merge remote-tracking branch 'remotes/bretts/bug261-resized-filenames'
Elrond [Sun, 26 Feb 2012 14:14:50 +0000 (15:14 +0100)]
Reload the user for current values.
This might not be needed, but it helped at one point.
Elrond [Sun, 26 Feb 2012 14:15:10 +0000 (15:15 +0100)]
Reload and detach the test user.
The code often needs to know some fields of the test user
even after doing some sql and stuff. The solultion is to
reload it and properly detach it from its Session. That way
all its fields are available and the whole thing is not
connected to a session. It feels like a normal object.
Jef van Schendel [Mon, 26 Mar 2012 18:23:49 +0000 (20:23 +0200)]
Add comment in JavaScript file about duplicating the password field
Brett Smith [Mon, 26 Mar 2012 18:10:22 +0000 (14:10 -0400)]
Merge remote branch 'origin/master' into bug261-resized-filenames
This merge involved moving the new FilenameBuilder class to
processing/__init__.py, and putting the comment deletion tests back into
test_submission.py using the refactored functions.
Brett Smith [Mon, 26 Mar 2012 17:40:35 +0000 (13:40 -0400)]
Rename to FilenameBuilder, with a main method named fill.
I think these names better convey what's actually going on. I updated the
documentation a bit while I was at it.
Christopher Allan Webber [Mon, 26 Mar 2012 16:59:34 +0000 (11:59 -0500)]
TestSubission's tag check stuff passing now
Christopher Allan Webber [Mon, 26 Mar 2012 16:50:36 +0000 (11:50 -0500)]
Remove the user_dev directory on tests ending
(We used to remove the mongo db on tests ending...)
Christopher Allan Webber [Mon, 26 Mar 2012 16:31:09 +0000 (11:31 -0500)]
Suggest we move to an in-memory database ;)
Christopher Allan Webber [Mon, 26 Mar 2012 16:14:11 +0000 (11:14 -0500)]
SQL based tests and refactored Celery setup stuff
- Changed config files of test configs to use SQL
- Updated celery initialization tools, factored them to be able to
use the "big instance" application stuff
Joar Wandborg [Mon, 26 Mar 2012 15:44:08 +0000 (17:44 +0200)]
Media type refractors, pep8, lint
- Removed THUMB_SIZE, MEDIUM_SIZE constants, depend on
configuration values instead.
- pep8 refractoring
Jef van Schendel [Sun, 25 Mar 2012 19:34:00 +0000 (21:34 +0200)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Elrond [Sun, 25 Mar 2012 19:34:05 +0000 (21:34 +0200)]
Merge remote-tracking branch 'gandaro/forgot-password-autofillin'
* gandaro/forgot-password-autofillin:
set username default server-side
Fill username automatically in (Forget Password)
Jakob Kramer [Sun, 25 Mar 2012 19:51:09 +0000 (21:51 +0200)]
set username default server-side
Jef van Schendel [Sun, 25 Mar 2012 19:33:52 +0000 (21:33 +0200)]
Header style change
Brett Smith [Sun, 25 Mar 2012 17:32:25 +0000 (13:32 -0400)]
Refactor video processing to use FilenameMunger.
Brett Smith [Sun, 25 Mar 2012 17:26:57 +0000 (13:26 -0400)]
Use FilenameMunger.
Brett Smith [Sun, 25 Mar 2012 16:16:19 +0000 (12:16 -0400)]
Add documentation to the FilenameMunger class.
Brett Smith [Sun, 25 Mar 2012 16:11:13 +0000 (12:11 -0400)]
Add FilenameMunger class to processing, with tests.
Munging filenames is something all media type processors want to be able to
do, so I'm refactoring it out into a nice bite-sized class.
Elrond [Sun, 25 Mar 2012 12:56:24 +0000 (14:56 +0200)]
Drop debug from migration.
Elrond [Sat, 24 Mar 2012 09:55:34 +0000 (10:55 +0100)]
Cleanup mongo->sql converter.
1. No need to drop media_data['exif'], we only have and
want media_data['exif_all'].
2. Use media['_id'] instead of media._id (better not use
dot-notation on mongo objects in such a low level tool).
Elrond [Fri, 23 Mar 2012 18:42:02 +0000 (19:42 +0100)]
Do not fill media_data['exif'] any more.
Elrond [Sat, 24 Mar 2012 10:43:12 +0000 (11:43 +0100)]
Migration fixup: Drop empty exif_all.
If the exif info is totally empty, do not add it at all to
the media_data dict in mongo.
Elrond [Thu, 22 Mar 2012 19:59:28 +0000 (20:59 +0100)]
Create migration to move exif data around in media_data.
Move media_data['exif']['clean'] to media_data['exif_all']
drop media_data['exif']['useful']
drop media_data['exif']
Elrond [Fri, 23 Mar 2012 17:35:43 +0000 (18:35 +0100)]
Use exif_display_iter in the template.
As the newly created entries have media_data.exif_all use
the exif_display_iter method to calculate the exif entries
for displaying on the fly.
After the mongo migration all the old entries will also
have exif_all and will work again.
Elrond [Sun, 25 Mar 2012 12:12:53 +0000 (14:12 +0200)]
Start to fill media_data.exif_all in addition.
In addition to filling the normal slot media_data['exif'],
now also fill media_data.exif_all. This is the new slot
used by SQL.
For a few moments this will create duplicated entries in
the mongo db. But this shouldn't hurt.
Jakob Kramer [Sat, 24 Mar 2012 16:36:12 +0000 (17:36 +0100)]
Fill username automatically in (Forget Password)
Fill the username automatically in the "Forget Password" form
if the user already entered his username on the login page
Christopher Allan Webber [Sat, 24 Mar 2012 14:58:26 +0000 (09:58 -0500)]
Merge remote-tracking branch 'remotes/gandaro/wipealldata-from-db_name'
Jakob Kramer [Sat, 24 Mar 2012 14:33:36 +0000 (15:33 +0100)]
Wipe the configured database, not the default one
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?
Joar Wandborg [Thu, 22 Mar 2012 00:27:19 +0000 (01:27 +0100)]
Faster sniffing
- Sniffing now goes through the old extension-based filter before
doing it the bitsniffing way.
- Refractored get_media_type_and_manager(filename).
- Removed ogg extension from video accepted extensions, audio
will take care of that.
- Added custom audio player, still WIP,but working.
- Added test for sniffing. This only tests for the
mediagoblin.media_types.image type, as that is the only
one enabled from start.
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'
Brett Smith [Wed, 21 Mar 2012 03:59:28 +0000 (23:59 -0400)]
Add tests for image processing. Check filenames and image sizes.
This test helps verify that bug #261 is actually fixed.
In order to test that all the processed images are smaller, I needed to add
an image that's bigger than processing.MEDIUM_SIZE, hence bigblue.png.
Brett Smith [Wed, 21 Mar 2012 03:03:11 +0000 (23:03 -0400)]
Make a function to generate test image filenames.
Brett Smith [Wed, 21 Mar 2012 02:40:32 +0000 (22:40 -0400)]
Prefer nose assert_* methods to the assert built-in.
Brett Smith [Wed, 21 Mar 2012 02:36:56 +0000 (22:36 -0400)]
Refactor false image tests.
Brett Smith [Wed, 21 Mar 2012 02:30:57 +0000 (22:30 -0400)]
Refactor normal upload tests.
This is nice because it means we do *all* the normal sanity tests for *all*
the normal uploads. check_url() can be used in other tests too.
Brett Smith [Wed, 21 Mar 2012 02:16:28 +0000 (22:16 -0400)]
Refactor MediaEntry fetches/checks into check_media().
Brett Smith [Wed, 21 Mar 2012 02:07:32 +0000 (22:07 -0400)]
Refactor data posts into one do_post function.
All the data posts in these tests had a lot of common code. Putting all
that into a function makes it easier to write more tests (which I'll be
doing in a bit) and see what's really being tested.
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 13:35:14 +0000 (09:35 -0400)]
small readability improvements in resize_image
Brett Smith [Sun, 18 Mar 2012 03:43:46 +0000 (23:43 -0400)]
Refactor image resize code, with better filenames (#261)
The code to make thumbnail- and medium-sized images in processing.py is
pretty similar, so I rolled that out into a separate function that we call
with different arguments as appropriate.
The new function should work identically to the old code, except it saves
images with filenames based on the original filename, like
`foobar.medium.jpg` instead of just `medium.jpg`. This fixes bug #261.