aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixed the binary stl loader.Aeva Ntsc2012-12-031-26/+5
|
* Disabled thingiview for obj models, since thingiview's support for them ↵Aeva Ntsc2012-12-031-0/+2
| | | | seems to be broken.
* Added a table to store the file extension of a model.Aeva Ntsc2012-12-032-1/+4
|
* Updated the template for viewing stl models.Aeva Ntsc2012-12-031-28/+102
|
* Added preview rendering for a bunch of different shots.Aeva Ntsc2012-12-031-2/+66
|
* Catching ValueError when trying to use ObjModel on binary stl files.Aeva Ntsc2012-12-031-0/+2
|
* Added script for manually testing the blender renderer.Aeva Ntsc2012-12-031-0/+29
|
* Added blender rendererAeva Ntsc2012-12-032-0/+84
|
* made 3d viewer a little cleanerAeva Ntsc2012-12-031-11/+22
|
* disabled auto rotateAeva Ntsc2012-12-031-6/+10
|
* Added the stl/obj mediatype.Aeva Ntsc2012-12-035-0/+348
|
* Added a rudimentary template for the stl/obj viewer.Aeva Ntsc2012-12-031-0/+63
|
* Added the thingiview.js library.Aeva Ntsc2012-12-031-0/+165
|
* Added the thingiview.js library.Aeva Ntsc2012-12-036-0/+1604
|
* Committing extracted and compiled translationsChristopher Allan Webber2012-12-0354-3671/+4187
|
* Committing present MediaGoblin translations before pushing extracted messagesChristopher Allan Webber2012-12-033-0/+3099
|
* Fix translations around.Elrond2012-12-034-11/+19
| | | | | | | This includes: - Mark more strings for translation - Don't mark html-only nonsense for translation - Mark a better part for translation.
* Go back to pre-login URL after loging inSebastian Spaeth2012-12-031-1/+2
| | | | | | | | Simply append the current URL (sans querystring) as a ?next= parameter to the login URL. This will always take us back to the original page where we were pre-login. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Provide jinja2 urlencode filterSebastian Spaeth2012-12-031-0/+4
| | | | | | | | | | | Astonishingly, the great jinja2 does not provide a builtin urlquote filter, although it is obviously needed. (jina1 had one) This is: https://github.com/mitsuhiko/jinja2/issues/17 Provide an urlencode filter, based on werkzeug's url_quote_plus function. This is dead easy to implement and gives us all the freedom we want. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Add extlibs to packagingSebastian Spaeth2012-12-031-0/+1
| | | | | | | setup.py bdist fails as it can't find the extlib's. DOH, that is because we don't package them. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Use pypi-compatible license signatureSebastian Spaeth2012-12-031-1/+1
| | | | | | | | | | It complains about a non-compatible license string. so use the GNU AGPL v3+ string that is listed at http://pypi.python.org/pypi?%3Aaction=list_classifiers With this change, we are able to create a pypi mediagoblin package. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* en_US is always availableSebastian Spaeth2012-12-023-11/+10
| | | | | | | | | | | We were using "en" as fallback only when no preferred language matched. This is obviously bad. Always insert en_US as available locale, so we can match it with the accept_languages. Don't set available_locales as mg_global, per discussion with paroneaya, make it a global var in translate.py Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Fixing bug where not all conditions returned a language in ↵Christopher Allan Webber2012-12-011-1/+2
| | | | | | get_locale_from_request() Just had to change the indentation level of the last commit.
* Fall back to "en" if we don't find matching translationsSebastian Spaeth2012-12-021-1/+1
| | | | | | | | In case of no matching translations, target_lang was "None" which blew up things. Fall back to "en" in case we don't find a corresponding translation. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Also package i18n/*.moSebastian Spaeth2012-12-021-0/+1
| | | | | | | .... and I wondered why my production site fails to display German pages... Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Honor user's browser language (#558)Sebastian Spaeth2012-12-025-12/+33
| | | | | | | | | | | | | Previously we would attempt to satisfy the user's first language preference, immediately falling back to english if that was not possible. Now, we will get the best match of the user's preferred languages. This requires storing the available locales on app startup, so we have mg_globals.available_locales ready to compare them against the list of preferred user languages. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Fix i18n in our browserSebastian Spaeth2012-12-013-18/+15
| | | | | | | | | | | | | | | | | | We only ever served english pages since the switch to werkzeug's requests. Fix this by actually checking the accepted languages that our web browser sends and using that or falling back to english. This is not optimal, imaging our browser sends "klingon, de" as accepted languages and we happen to not have a klingon translation ready (a deficiency that should be corrected immediately anyway!!). We would then fall back to english rather than sending the sensible and pleasant German language which the user would understand. This will require more backend work though. Removing the gettext.find() in mg_globals.py. It looked in the wrong directory anyway (mediagoblin/translations) and as that does not exist, had always returned None without anyone noticing. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* docs: Add trim_whitespaces plugin to relnotes and documentationSebastian Spaeth2012-12-012-9/+19
| | | | | | | | Rather than mentioning a hypothetical module restrictfive, we use the existing plugin mediagoblin-licenses that people can install. Also, mention that plugin in the release notes. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* trim_whitespace meddleware pluginSebastian Spaeth2012-12-012-0/+98
| | | | | | | | | | | | | Our HTML output is very verbose (=whitespacy) as our templates are written with an 80 char limit and lots of newlines between blocks, variables etc.... This is a plugin that naively strips of all but the first whitespace from the HTML response. We might want to have an all-fancy html tidy interface here at some point, but it nicely decreases the HTML size about a third on some simple pages. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Make ENABLED_MEDDLEWARES a list and not a tuple, so we can modify itSebastian Spaeth2012-12-011-2/+2
| | | | | | | | | | Plugins may want to insert meddlewares, so this list should be modifiable at very list (if we don't want to provide helper methods for this, which seems a tad overkill for now). This change is required for the upcoming trim_whitespace plugin. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Remove the NoOp meddlewareSebastian Spaeth2012-12-012-28/+0
| | | | | | | There is really no reason to provide and enable a meddleware that does exactly... NOTHING ...by default. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Implement licenses.get_license_by_urlSebastian Spaeth2012-11-302-1/+11
| | | | | | | | | Rather than exploding in the user's face (for example if we custom-configure licenses in our MG instance, and there are still media with now "unknown" licenses in the db), simply return a License object as a fallback, where all attributes are set to the URL we were handed. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Improve mediagoblin.tools.licensesSebastian Spaeth2012-11-301-34/+38
| | | | | | | | | "Objectify" our licenses to have .uri, .abbreviation, .name attributes that we can pass into the templates and use there. namedtuples are a good poor man's choice to make a License a class. (a named tuple really) Document and optimize licenses_as_choices(), it is a one-liner really. No need for verbose appends here...
* Use mediagoblin import machinerySebastian Spaeth2012-11-301-4/+5
| | | | | | | | | | | Rather than manually __importing__ the MEDIA_MANAGER, we should have been using tools.common.import_component in the first place. But even better to use the existing get_media_manager() function that exists for exactly our purpose. Also improve documentation of what happens in case of failure. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Remove importlib (python2.7'ism)Sebastian Spaeth2012-11-301-3/+1
| | | | | | | | importlib is cool, but only included in python2.7 which is beyond our minimum python version that we support. So simply use plain old __import__. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Merge remote-tracking branch 'spaetz/formerge/538_FORBIDDEN_admin_pages'Elrond2012-11-293-15/+34
|\ | | | | | | | | | | | | * spaetz/formerge/538_FORBIDDEN_admin_pages: Fix error page text Return code 403 when accessing admin pages Implement generic error pages
| * Fix error page textSebastian Spaeth2012-11-291-2/+2
| | | | | | | | | | | | | | Thanks to Elrond for noticing. We wrap error messages in <p> tags, so there is no need to start the error message with <p>. DOH Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
| * Return code 403 when accessing admin pagesSebastian Spaeth2012-11-291-3/+4
| | | | | | | | | | | | | | | | without being an admin. Previously we were just returning a 404 page and this confused the heck out of me, as I did not understand why the admin pages were not there at all (I was no admin). Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
| * Implement generic error pagesSebastian Spaeth2012-11-292-12/+30
| | | | | | | | | | | | | | | | | | | | | | Rather than having a 404.html, a 403.html, a 500.html,... we have a generic error.html template that we pass in an error code, a title and a (html'ish) error message. Implement the common render_404 and render_403 shortcuts. More exotic cases can be achieved by the generic render_error function. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* | Merge remote-tracking branch 'spaetz/formerge/bundle_xml_templates_too'Elrond2012-11-291-1/+1
|\ \ | | | | | | | | | | | | * spaetz/formerge/bundle_xml_templates_too: Also package webfinger.xml
| * | Also package webfinger.xmlSebastian Spaeth2012-11-291-1/+1
| |/ | | | | | | | | | | | | | | MANIFEST.in did not include *.xml for our templates, so the webfinger template files got left out of our packaging with e.g. "setup.py install". Fixed. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* | Merge remote-tracking branch 'spaetz/formerge/507_remove_routes'Elrond2012-11-292-8/+4
|\ \ | |/ |/| | | | | * spaetz/formerge/507_remove_routes: Purge routes package from MG (#507)
| * Purge routes package from MG (#507)Sebastian Spaeth2012-11-202-8/+4
| | | | | | | | | | | | | | | | | | We were not actually using the routes package anymore, but it was still mentioned in the documention. Adapt the plugin documentation to actually represent reality, although I don't like the API design. (but this is for another day) Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* | Merge some small bits by spaetz. Needed later.Elrond2012-11-282-6/+8
|\ \ | | | | | | | | | | | | | | | * commit '9437ea4742': Add commit argument to clean_orphan_tags Add "commit" argument to Base model delete()
| * | Add commit argument to clean_orphan_tagsSebastian Spaeth2012-11-281-4/+4
| | | | | | | | | | | | So we can prevent the session from being committed if we don't want it.
| * | Add "commit" argument to Base model delete()Elrond2012-11-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | In case we want to bundle db actions into a single transaction, we can now use delete(commit=False) to prevent the transaction from being committed immediately. This is useful when e.g. deleting a User() and thousands of his MediaEntries in a single commit. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* | | Merge remote-tracking branch 'spaetz/focus_on_user_creation'Jef van Schendel2012-11-271-0/+2
|\ \ \
| * | | Autofocus the username field on user creationSebastian Spaeth2012-11-261-0/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | On a page with the single purpose to enter new user data, we should auto-focus the username field. It is very annoying to have to click in that field before starting to type. Theoretically, there is the "autofocus" attribute in html5, but IE does not support that. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* | | Merge remote-tracking branch 'refs/remotes/elrond/sql/migrate_new_tables'Christopher Allan Webber2012-11-262-40/+130
|\ \ \ | |/ / |/| |
| * | SQL Migrations: Rewrite table creation completely.Elrond2012-11-242-40/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have migrations creating new tables. Those currently use "raw" table definitions. This easily gives errors (we already had this problem). So instead rewrite those to use declarative tables and use those to create new tables. Just copy the new table over to the migration, strip it down to the bare minimum, rename to _v0, base it on declarative_base() and be done! Do this for the current migrations.