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'
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.
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
Christopher Allan Webber [Tue, 28 Feb 2012 19:31:03 +0000 (13:31 -0600)]
Fix tests given recent celery "case" change
Luke Slater [Tue, 28 Feb 2012 16:47:38 +0000 (16:47 +0000)]
Accidentally overwrote the celery/__init__.py, fixed this and removed the upper correctly
Luke Slater [Tue, 28 Feb 2012 16:40:37 +0000 (16:40 +0000)]
Changed celery config keys to upper case and removed upper casing of keys when initialising the config as per issue #214
Elrond [Sun, 19 Feb 2012 11:13:48 +0000 (12:13 +0100)]
Let mark_entry_failed log unknown exceptions
I don't know exactly why, but an exception during
processing hasn't found its way up. The entry was marked as
failed and that was it. So I decided to add a _log.warn to
the part of mark_entry_failed that handles general
exceptions.
Elrond [Mon, 27 Feb 2012 20:55:02 +0000 (21:55 +0100)]
Merge remote-tracking branch 'cwebber/celerysql'
* cwebber/celerysql:
Adjust unit tests to match new celery/kombu sqlalchemy setup
"database" is not the sqlalchemy kombu transport... should be "sqlalchemy"
Celery and kombu databases should also be .gitignore'd
kombu-sqlalchemy a requirement in order for kombu sqlalchemy transport to work
Move mediagoblin dbs out of user_dev for race condition directory-creation reasons.
Give kombu its own db. Responding to Elrond "sqlite will lock all the time!" :)
Apparently an absolute path is three slashes after sqlite:. Thx elrond.
Should be all that's needed to switch celery/kombu settings to sqlalchemy
Christopher Allan Webber [Sun, 26 Feb 2012 21:51:11 +0000 (15:51 -0600)]
Committing extracted and compiled translations
Christopher Allan Webber [Sun, 26 Feb 2012 21:51:00 +0000 (15:51 -0600)]
Committing present MediaGoblin translations before pushing extracted messages
Christopher Allan Webber [Sun, 26 Feb 2012 21:45:58 +0000 (15:45 -0600)]
Adjust unit tests to match new celery/kombu sqlalchemy setup
Christopher Allan Webber [Sun, 26 Feb 2012 19:27:09 +0000 (13:27 -0600)]
"database" is not the sqlalchemy kombu transport... should be "sqlalchemy"
Christopher Allan Webber [Sun, 26 Feb 2012 19:26:44 +0000 (13:26 -0600)]
Celery and kombu databases should also be .gitignore'd
Christopher Allan Webber [Sun, 26 Feb 2012 19:24:49 +0000 (13:24 -0600)]
kombu-sqlalchemy a requirement in order for kombu sqlalchemy transport to work
Elrond [Sun, 19 Feb 2012 11:14:58 +0000 (12:14 +0100)]
Let SQL objects support .setdefault() and .delete()
Some parts in the code like to use .setdefault(). So make
them happy and provide a minimal version. It ignores the
given default and expects the attribute to already exist.
Other parts use .delete() to delete a complete object. This
version expects the object to live in a session and also
does the final commit.
Elrond [Sun, 12 Feb 2012 22:49:37 +0000 (23:49 +0100)]
Dot-Notation: MediaComment and some random places
Elrond [Sun, 26 Feb 2012 17:45:35 +0000 (18:45 +0100)]
Let Main Server emit startup notice including version
There was no place in the software telling the user the
version in use. So start by having the main server emit a
startup notice including the version string. Uses python
logging, so should be easy to reconfigure, etc.
Christopher Allan Webber [Sun, 26 Feb 2012 14:20:17 +0000 (08:20 -0600)]
Move mediagoblin dbs out of user_dev for race condition directory-creation reasons.
Christopher Allan Webber [Sun, 26 Feb 2012 13:58:40 +0000 (07:58 -0600)]
Give kombu its own db. Responding to Elrond "sqlite will lock all the time!" :)
Christopher Allan Webber [Sun, 26 Feb 2012 13:46:23 +0000 (07:46 -0600)]
Apparently an absolute path is three slashes after sqlite:. Thx elrond.
sqlite:///////////////////////////////////whaaaaaa.db
Christopher Allan Webber [Sun, 26 Feb 2012 04:39:08 +0000 (22:39 -0600)]
Should be all that's needed to switch celery/kombu settings to sqlalchemy
Elrond [Sun, 25 Dec 2011 15:01:59 +0000 (16:01 +0100)]
Allow .id instead of ._id for the Mongo backend
To allow easier migration to the SQLAlchemy style .id give
the User and MediaEntry mongo classes an alias attribute of
.id that maps to ['_id'].
Use it in the upload process, because this was one of the
last positions with a ['_id'] instead of ._id (due to a bug
in mongokit).
Elrond [Thu, 16 Feb 2012 23:09:30 +0000 (00:09 +0100)]
Create "gmg convert_mongo_to_sql" command
Finally, to make testing of sql a bit easier, create a
bin/gmg command to do the conversion from mongo to sql.
It's currently named "convert_mongo_to_sql".
The most important option is the gmg -cf option to give a
configfile with the appropiate sql_engine definition.
Elrond [Sun, 22 Jan 2012 15:57:56 +0000 (16:57 +0100)]
mongo to sql convert: Better Ordering
Order the conversion by the "created" attribute. That way
the sql ids are mostly in the order they would have been,
if sql was used earlier.
Makes things nicer to look at in a db dump.
Elrond [Sun, 19 Feb 2012 11:13:26 +0000 (12:13 +0100)]
Use task_id in generating the queue file path
The task_id is created anyway as a UUID. So it is very
unique per definition. The only thing needed for the queue
file path is a unique part.
Before the objectid of the MediaEntry was used instead. But
in the sql world the objectid is only available after an
"insert" on the db. And creating the queue_file_path
afterwards would require an "update" on the db. We can save
that. ... for now.
Christopher Allan Webber [Sun, 19 Feb 2012 21:30:38 +0000 (15:30 -0600)]
We now require sqlalchemy and sqlalchemy-migrate
Christopher Allan Webber [Sun, 19 Feb 2012 05:19:41 +0000 (23:19 -0600)]
Commenting out the migrations that don't exist yet
Christopher Allan Webber [Sun, 19 Feb 2012 05:19:09 +0000 (23:19 -0600)]
Updates so that dbupdate command works
- Various fixes to dbupdate itself
- Switching db/sql/migrations.py to use a dict instead of a list
- Registering the function
Christopher Allan Webber [Sat, 18 Feb 2012 21:33:29 +0000 (15:33 -0600)]
Merge branch 'master' into sqlmigrate
Elrond [Sat, 18 Feb 2012 10:00:13 +0000 (11:00 +0100)]
Start having useful defaults for SQL
Mostly this means: Havintg a config_spec.ini that has a
local (relative to mediagoblin.ini) sqlite db with the name
"mediagoblin.db".
Also:
- Add to .gitignore
- Add a notice to mediagoblin.ini about the db
Elrond [Sat, 18 Feb 2012 18:22:00 +0000 (19:22 +0100)]
Fix MediaTag __init__ to handle no args
Let the init code also handle createing a fresh clean
instance without any attrs set.
Elrond [Sun, 12 Feb 2012 22:49:01 +0000 (23:49 +0100)]
SQL: fail_metadata as JSON encoded field
fail_metadata used to be a dict in mongo. So a json encoded
field should be okay too.
We could use a pickled field instead, which would be more
flexible.
Christopher Allan Webber [Sat, 18 Feb 2012 16:01:47 +0000 (10:01 -0600)]
Merge branch 'master' into sqlmigrate
Conflicts:
mediagoblin/db/sql/models.py
Elrond [Sat, 18 Feb 2012 10:32:28 +0000 (11:32 +0100)]
Drop pre-rendered html: MediaComment.content_html
After a bit of discussion, we decided to drop the
pre-rendered html from the database and render it on
the fly.
In another step, we will use some proper caching method to
cache this stuff.
This commit affects the MediaComment.content_html part.
Elrond [Mon, 13 Feb 2012 12:42:59 +0000 (13:42 +0100)]
Drop pre-rendered html: MediaEntry.description_html
After a bit of discussion, we decided to drop the
pre-rendered html from the database and render it on
the fly.
In another step, we will use some proper caching method to
cache this stuff.
This commit affects the MediaEntry.description_html part.
Elrond [Sat, 4 Feb 2012 19:55:55 +0000 (20:55 +0100)]
Drop pre-rendered html: User.bio_html
After a bit of discussion, we decided to drop the
pre-rendered html from the database and render it on
the fly.
In another step, we will use some proper caching method to
cache this stuff.
This commit affects the User.bio_html part.
Jef van Schendel [Tue, 14 Feb 2012 15:59:31 +0000 (16:59 +0100)]
Add left and right arrow keys navigation (add new JS file, link it from media.html; add new navigation_right class to right button)
Christopher Allan Webber [Tue, 14 Feb 2012 03:31:11 +0000 (21:31 -0600)]
Revert "Layout overhaul time!"
This reverts a whole bunch of commits,
fb1dc4f5 thru
92e8ca79, where
an experimental new layout was played with. Unfortunately, this
layout broke the look and feel of master, even though it was going in
the right direction for mobile stuff. Jef said he'll do things in a
branch!
Elrond [Mon, 13 Feb 2012 22:11:49 +0000 (23:11 +0100)]
47: Only lowercase host part of email
According to most documentation it seems that the local
part of an email adress is/can be case sensitive. While
the host part is not.
So we lowercase only the host part of the given adress.
See: http://issues.mediagoblin.org/ticket/47
Christopher Allan Webber [Mon, 13 Feb 2012 02:36:46 +0000 (20:36 -0600)]
Our javascript is actually AGPLv3+, not LGPL*. Correcting.
Jef van Schendel [Sun, 12 Feb 2012 20:02:02 +0000 (21:02 +0100)]
Wait, scratch that. This commit uses a better way.
Jef van Schendel [Sun, 12 Feb 2012 20:00:20 +0000 (21:00 +0100)]
Add navigation button styles for mobile
Jef van Schendel [Sun, 12 Feb 2012 19:47:25 +0000 (20:47 +0100)]
Fix comment input field width/padding; change some text; remove weird #form_comment duplicate rules; move Edit/Delete buttons next to title
Jef van Schendel [Sun, 12 Feb 2012 18:33:05 +0000 (19:33 +0100)]
Make media thumbnail gallery a list instead of a table
Jef van Schendel [Sun, 12 Feb 2012 17:39:55 +0000 (18:39 +0100)]
Corrections for mobile layout
Jef van Schendel [Sun, 12 Feb 2012 17:25:52 +0000 (18:25 +0100)]
Move "Added on" date to sidebar
Jef van Schendel [Sun, 12 Feb 2012 17:23:18 +0000 (18:23 +0100)]
Style sidedata h3; revert sidebar margin change
Jef van Schendel [Sun, 12 Feb 2012 17:12:23 +0000 (18:12 +0100)]
Fix sidebar margins
Jef van Schendel [Sun, 12 Feb 2012 15:30:21 +0000 (16:30 +0100)]
Move Attachments from sidebar to default pane
Jef van Schendel [Sun, 12 Feb 2012 15:28:42 +0000 (16:28 +0100)]
Consistencify sidebar bits (same headers and such)
Jef van Schendel [Sun, 12 Feb 2012 15:18:58 +0000 (16:18 +0100)]
Restore sidebar
Jef van Schendel [Sat, 11 Feb 2012 22:04:02 +0000 (23:04 +0100)]
Layout overhaul time!
Elrond [Fri, 10 Feb 2012 23:38:21 +0000 (00:38 +0100)]
sql db design suggestions by Svavar Kjarrval
Many thanks go to Svavar Kjarrval who has taken a deeper
look at our current sql db design and made a bunch of
suggestions. The suggestions are currently put as TODO
items in the docstrings. This way we can keep track of
them directly where we need it.
Jef van Schendel [Thu, 9 Feb 2012 20:46:57 +0000 (21:46 +0100)]
Fix for ticket #386
Will Kahn-Greene [Thu, 9 Feb 2012 16:00:30 +0000 (11:00 -0500)]
Fix docs version
Will Kahn-Greene [Thu, 9 Feb 2012 15:49:50 +0000 (10:49 -0500)]
Update version to 0.3.0-dev
Will Kahn-Greene [Thu, 9 Feb 2012 15:44:36 +0000 (10:44 -0500)]
Update version numbers
Christopher Allan Webber [Thu, 9 Feb 2012 15:30:26 +0000 (09:30 -0600)]
Committing extracted and compiled translations
Will Kahn-Greene [Thu, 9 Feb 2012 15:23:03 +0000 (10:23 -0500)]
Removing youcanhelp stuff
This was never used. It doesn't support Texinfo files. It was only half
completed. Best to remove it.
Will Kahn-Greene [Thu, 9 Feb 2012 15:20:42 +0000 (10:20 -0500)]
Update copyright headers for shell scripts
Christopher Allan Webber [Thu, 9 Feb 2012 15:15:23 +0000 (09:15 -0600)]
Added info on how to enable ascii art
Christopher Allan Webber [Thu, 9 Feb 2012 15:10:08 +0000 (09:10 -0600)]
Updating codebase.rst to reflect the modern mediagoblin world
- adding/removing libraries listed as appropriate
- buildout->virtualenv references
- Updating directory structure description to reflect current reality
Will Kahn-Greene [Wed, 8 Feb 2012 16:07:19 +0000 (11:07 -0500)]
Minor rewording
Tried to address confusion I had when I read the document and tweaked
some formatting.
Will Kahn-Greene [Wed, 8 Feb 2012 15:46:33 +0000 (10:46 -0500)]
Fix copyright statements; add LICENSE for EXIF.py
Christopher Allan Webber [Wed, 8 Feb 2012 15:29:24 +0000 (09:29 -0600)]
Fully qualify the import of asciitoimage
Christopher Allan Webber [Wed, 8 Feb 2012 03:25:41 +0000 (21:25 -0600)]
Added CC0 header to all MediaGoblin docs in docs/source/
Christopher Allan Webber [Sun, 5 Feb 2012 22:23:29 +0000 (16:23 -0600)]
Committing extracted and compiled translations
Christopher Allan Webber [Sun, 5 Feb 2012 22:23:18 +0000 (16:23 -0600)]
Committing present MediaGoblin translations before pushing extracted messages
Christopher Allan Webber [Sun, 5 Feb 2012 22:21:14 +0000 (16:21 -0600)]
Committing present MediaGoblin translations before pushing extracted messages
Elrond [Sat, 4 Feb 2012 19:54:14 +0000 (20:54 +0100)]
Fix EXIF based image rotation test
The test checks for a pixel value after rotation (good
idea!). But the value seems to be a bit different on some
platforms, so use a list of seen values.
Not the perfect solution, but it works.
Joar Wandborg [Sat, 4 Feb 2012 19:51:05 +0000 (20:51 +0100)]
ASCII media support - Fixes
- Added debug logging in
- mediagoblin.processing
- mediagoblin.media_types.ascii.processing
- mediagoblin.media_types.ascii.asciitoimage
Joar Wandborg [Thu, 2 Feb 2012 20:28:21 +0000 (21:28 +0100)]
ASCII art support - Fixes
- Improved(?) character set detection, chardet will not win
over UTF-8 unless it is >= 90% sure.
- Changed the unicode.txt to ascii-portable.txt, since there is
no unicode in the file.
- etc.
Joar Wandborg [Thu, 2 Feb 2012 18:54:47 +0000 (19:54 +0100)]
Added extensions 'asc' and 'nfo' to ASCII media type
Christopher Allan Webber [Thu, 2 Feb 2012 15:44:13 +0000 (09:44 -0600)]
It's 2012 all up in here
Christopher Allan Webber [Thu, 2 Feb 2012 15:29:25 +0000 (09:29 -0600)]
Updating deployment guide so that it can handle the current virtualenv site-packages changes
Now it should try using --system-site-packages and if that
fails (older version) it tries it without the argument.
Christopher Allan Webber [Mon, 30 Jan 2012 04:19:53 +0000 (22:19 -0600)]
Explained why migration #1 commented out.
Christopher Allan Webber [Mon, 30 Jan 2012 04:19:03 +0000 (22:19 -0600)]
Excepting that migration 1 doesn't work(!), sqlalchemy migration branch working
The reason migration 1 doesn't work, and is commented out, is because
of sqlalchemy-migrate not handling certain constraints while dropping
binary sqlite columns right. See also:
http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=143&thanks=143&ts=
1327882242
Christopher Allan Webber [Mon, 30 Jan 2012 03:45:05 +0000 (21:45 -0600)]
Update the string outputs to match our tests: newlines, ...->:, etc.
Christopher Allan Webber [Sun, 29 Jan 2012 23:28:25 +0000 (17:28 -0600)]
db_conn.engine -> db_conn.bind
Christopher Allan Webber [Sun, 29 Jan 2012 23:26:23 +0000 (17:26 -0600)]
migrations_to_run here a list, so no reason to call it
Christopher Allan Webber [Sun, 29 Jan 2012 23:23:27 +0000 (17:23 -0600)]
Migration manager's current migration should be 3, not 7, after running all migrations!
Christopher Allan Webber [Sun, 29 Jan 2012 23:22:29 +0000 (17:22 -0600)]
Fixed the descriptions for the necroplex!
Christopher Allan Webber [Sun, 29 Jan 2012 23:21:44 +0000 (17:21 -0600)]
assert column type from Unicode -> VARCHAR. SQLAlchemy reflection only so smart ;)
Christopher Allan Webber [Sun, 29 Jan 2012 23:11:41 +0000 (17:11 -0600)]
printer = CollectingPrinter -> printer = CollectingPrinter()
Christopher Allan Webber [Sun, 29 Jan 2012 23:10:18 +0000 (17:10 -0600)]
CollectingPrinter is a class, not a function!
Christopher Allan Webber [Sun, 29 Jan 2012 23:08:38 +0000 (17:08 -0600)]
self.latest_migration now a property, so we shouldn't __call__ it!
Christopher Allan Webber [Sun, 29 Jan 2012 23:07:47 +0000 (17:07 -0600)]
For clarity, self.database -> self.session.
Actually, I'm not even sure *that* is ideal! But better than what we
had...
Christopher Allan Webber [Sun, 29 Jan 2012 23:06:19 +0000 (17:06 -0600)]
Yet *another* self.database -> self.database.bind fix!