aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Moving thingiview.js into extlib/Christopher Allan Webber2012-12-038-4/+4
|
* Switch stl processing over to using the workbenchChristopher Allan Webber2012-12-031-11/+16
| | | | | Previously this was writing directly to the public store... that won't work with cloudfiles backend, for example :)
* Correcting minor typo in exception string: Empyt->EmptyChristopher Allan Webber2012-12-031-1/+1
|
* Removing unused conversions subdirChristopher Allan Webber2012-12-031-4/+0
|
* Moving blender render files to be accessed via pkg_resourcesChristopher Allan Webber2012-12-033-11/+28
| | | | | | Previously the .blend and .py files had to be in the same directory mediagoblin/celery launched from. This is now fixed so it pulls them out of the package proper.
* Removing render_test.py, which isn't usedChristopher Allan Webber2012-12-031-29/+0
|
* Removed debug info from the sidebar.Aeva Ntsc2012-12-031-9/+4
|
* tweaking the templateAeva Ntsc2012-12-031-1/+6
|
* 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)