Commit Graph

914 Commits

Author SHA1 Message Date
8aab88bdc2 Activities now have explicit project ID
This allows for directly querying activity on a certain project.
Used in Attract for task/shot activity streams.
2016-10-12 13:40:27 +02:00
f4b34f1d02 Error handler: set 'code' and 'description' defaults separately. 2016-10-12 10:22:25 +02:00
4eb8319697 Better logging of OAuth issues, in the hope to figure out what's going on. 2016-10-11 17:09:02 +02:00
5dd49fa5dd Pillar Extensions can now add links to the sidebar. 2016-10-11 16:33:44 +02:00
6429c3df21 Modernised flask.ext.login imports → flask_login 2016-10-11 15:23:40 +02:00
14a8be6329 Fix 'Latest Assets' list not being updated
Was simply missing project_id
2016-10-07 15:05:57 +02:00
c71186f318 Allow project membership to be managed by ppl with admin role.
This was already mentioned as possible in the frontend, but not implemented
in the backend.
2016-10-05 14:36:07 +02:00
d1610da5f9 JStree: HREF attribute link to actual node instead of #
This allows things like middle click on an item to load in a separate tab, yay!

Idea and help by Dr. Sybren
2016-10-04 12:38:08 +02:00
0de8772c98 Removed __all__, as we didn't keep it up to date anyway. 2016-10-04 11:58:46 +02:00
e2921c8da8 nodes_latest was missing the content_type 2016-09-30 18:07:36 +02:00
dd58d4ad04 Created AbstractPillarTest.create_project_admin() function. 2016-09-30 12:54:21 +02:00
b429933737 Added 'required_after_creation' Eve schema validator. 2016-09-30 12:54:21 +02:00
e2236864e7 Filter out '^attract_.*' node types from jstree
While we're at it, also filter out comment & post from the query, rather
than later in Python code.
2016-09-29 17:34:24 +02:00
dcef372e4f Gracefully handle project without node types.
This can happen when a projection excludes node types.
2016-09-29 09:55:49 +02:00
7931428312 Clipboard icons on pillar-font 2016-09-27 17:01:07 +02:00
407aefb9ad Added CLI command for moving top-level nodes between projects.
Also introduces a slightly nicer way to get the database interface, and
an object-oriented way to allow dependency injection.
2016-09-27 12:57:57 +02:00
c64fbf61ba Removed project node type 2016-09-27 12:57:57 +02:00
063023c69a PEP8 2016-09-27 12:57:57 +02:00
7968c6ca37 Added node_type_utils to assign permissions to certain node types.
This separates "mechanism" from "policy".
2016-09-23 17:13:26 +02:00
e0f92b6185 Don't log entire exception when forwarding a 412 Precondition Failed. 2016-09-23 09:40:05 +02:00
0f23ee7a08 Added handler for 412 Precondition Failed from SDK. 2016-09-22 18:09:43 +02:00
cd8707207b Made format_undertitle() Jinja filter None-safe 2016-09-22 10:33:51 +02:00
7f9f89853d Properly handle embed/non-embed error renders for some SDK exceptions. 2016-09-22 09:25:59 +02:00
78824c9c2a Allow extensions to define custom project properties 2016-09-20 15:59:39 +02:00
40896fc70b Better logging when bad extension class is given.
This was necessary to debug an issue with different unit tests influencing
each other in Attract.
2016-09-20 15:59:39 +02:00
df8afb8b14 Append license notes to Algolia index
So we can keep nodes without description or uploaded by other users (like
textures), with clean names and still be able to search them easily by
their copyright notes.

Reviewers: sybren, fsiddi

Reviewed By: sybren, fsiddi

Differential Revision: https://developer.blender.org/D2225
2016-09-14 09:39:19 +02:00
76b0f5fc46 Moved login-code into a separate function.
This makes it easier to log in users by their token from unittests.
2016-09-08 12:03:51 +02:00
68666f0650 Updated unittest code so that we can create 100% valid projects.
This means also creating a user and groups so that the references are
valid.
2016-09-08 12:03:17 +02:00
4313284dab Added 'hide_none' Jinja filter, which replaces None with an empty string 2016-09-07 17:01:56 +02:00
9e6b998c50 Refactored static file handling so that extensions can provide static files 2016-09-07 16:36:25 +02:00
b2e8711ac4 Moved Jinja2 stuff to its own module, and added |undertitle filter. 2016-09-07 16:03:40 +02:00
2730a7a2b2 Added error handlers for some PillarSDK exceptions. 2016-09-07 12:23:48 +02:00
f21b708085 Made it easier for extensions to register multiple blueprints at different URLs
The blueprint's own url_prefix='/xxx' setting is now taken into account.
2016-09-07 11:40:24 +02:00
8a6cd96198 Added pi-users icon + documented regeneration of pillar-font. 2016-09-07 11:14:36 +02:00
4ae36a0dc3 Allow custom template dirs for extensions 2016-09-06 18:39:35 +02:00
eac49ab810 Use BLENDER_ID_ENDPOINT to get roles from BlenderID
Also refactored some code.
2016-09-06 17:27:14 +02:00
49c08cba10 Custom error handlers: also properly handle non-Werkzeug exceptions. 2016-09-06 17:10:50 +02:00
cf30bb5d62 Use BlenderID-side roles to grant demo role. 2016-09-06 16:42:48 +02:00
ab5a4a6b6c Custom error pages.
These make a distinction between API requests on /api/ (which will return
a JSON response) and other requests (which will return HTML).

Fixes T49212
2016-09-06 14:22:52 +02:00
3bb55fd3db User admin: properly handle AJAX errors.
Added specific handling for clicking on non-existing users. The styling
might need some tweaking (it's pretty ugly), but then again, it's just
for us admins.
2016-09-06 11:27:49 +02:00
486686f1f9 File upload: Removed JS-side file size check.
Instead, the size of the entire HTTP request body is checked against the
maximum file size. This allows for slightly smaller files (in the order
of 200-300 bytes), which shouldn't be noticeable given our 32 MiB limit
for non-subscribers. This check is performed before accessing
request.files[], and thus before the file even starts uploading.

This also allows unlimited file uploads to subscribers and demo users.
This was already possible using the API, so now the web interface is
consistent. Limits can be set using config[_local].py.

This closes T49264: Allow large uploads for admins
2016-09-06 10:33:28 +02:00
e58f29a9d0 Fix missing pictures on latest blog posts and node updates 2016-09-05 16:00:45 +02:00
fa050da8e2 Display Blog on the sidebar, if available 2016-09-05 16:00:45 +02:00
3d9b9e40d4 Added PillarExtension.setup_app(app)
It's called on each extension after all extensions have been processed,
and after all built-in Pillar modules have had their setup_app() called.
Call order is random.
2016-08-31 16:03:45 +02:00
4cf779e040 Keep reference to loaded extension, and refuse to load twice.
The Pillar extensions are now stored, by their name, in a dictionary.
2016-08-31 16:02:55 +02:00
a0cc76259e Renamed TestPillarServer to PillarTestServer
TestXXX classes are seen as unit tests by py.test, so anything that's not
a unit test should not be called TestXXX.
2016-08-31 11:29:16 +02:00
5ebec42e6d Removed unused, commented-out code 2016-08-30 15:58:58 +02:00
4529d0597b Gracefully handle nodes of a type for which we don't have a template.
Before, it would simply return a 500 Internal Server Error.
2016-08-30 15:52:55 +02:00
3039aef7d3 Removed Attract node types.
Those are moved into the new Blender Cloud server's Attract module.
2016-08-30 14:24:14 +02:00
cb84e6f0b7 Allow CLI commands to set the current user to a non-existing admin user. 2016-08-30 14:24:14 +02:00