7f4ad85781
Count comments and replies, not just top-level comments
2016-10-19 17:16:27 +02:00
ea2be0f13d
Major revision of comment system.
...
- Comments are stored in HTML as well as Markdown, so that conversion
only happens when saving (rather than when viewing).
- Added 'markdown' Jinja filter for easy development. This is quite
a heavy filter, so it shouldn't be used (much) in production.
- Added CLI command to update schemas on existing node types.
2016-10-19 16:57:17 +02:00
eea934a86a
Added username to public user fields
2016-10-19 16:57:17 +02:00
f2f66d7a6c
Moved subquery.py from Attract to Pillar, as it's useful for comments too.
...
It's an attempt to speed up common queries which would ordinarily be
embedded by Eve. We want to move away from embedding due to security
issues (allowing the embedding of users leaks privacy-sensitive info).
2016-10-18 15:34:39 +02:00
aca54d76e0
Moved find_url_for_node() to its own module and made more pluggable.
...
Extensions can now register custom node URL finders using the
@pillar.web.nodes.finders.register_node_finder(node_type_name) decorator.
2016-10-18 12:03:06 +02:00
6af3dfdb51
Use local bootstrap 3.3.7
2016-10-13 16:02:38 +02:00
8043caf187
Font Pillar: Question mark icon
2016-10-13 14:25:18 +02:00
aa953f76a1
Cache FlaskInternalApi object on request keyed by authentication token.
2016-10-13 10:01:29 +02:00
10ecb2158e
Log error when URLer service is used but not configured.
2016-10-13 10:01:11 +02:00
96c9e12f7f
doc_diff() optionally no longer reports differences between falsey values.
...
If falsey_is_equal=True, all Falsey values compare as equal, i.e. this
function won't report differences between DoesNotExist, False, '', and 0.
2016-10-12 17:09:48 +02:00
7c310e12ef
Added util function to compute the difference between two dicts.
2016-10-12 16:01:30 +02:00
26aa155b9e
Cache Pillar API Object on request object.
2016-10-12 14:29:47 +02:00
0146b568c0
Allow extra fields in activities.
2016-10-12 14:29:28 +02:00
ade62033ba
Added only_for_node_type_decorator(node_type_name) decorator factory func
...
This allows you to create a decorator for Eve hooks. The decorator returns
a decorator that checks its first argument's node type.
If the node type is not of the required node type, returns None,
otherwise calls the wrapped function.
2016-10-12 13:41:16 +02:00
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