[Bf-extensions-cvs] [d7d70e8e] master: BlenderKit: is_validator function for users
Vilém Duha
noreply at git.blender.org
Tue Jan 7 11:43:56 CET 2020
Commit: d7d70e8e86dee2694b1545996c40b5b6a87817c5
Author: Vilém Duha
Date: Wed Dec 18 14:31:23 2019 +0100
Branches: master
https://developer.blender.org/rBAd7d70e8e86dee2694b1545996c40b5b6a87817c5
BlenderKit: is_validator function for users
===================================================================
M blenderkit/search.py
M blenderkit/ui_panels.py
===================================================================
diff --git a/blenderkit/search.py b/blenderkit/search.py
index 414b9afc..844b7fd1 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -110,8 +110,8 @@ def fetch_server_data():
api_key = user_preferences.api_key
# Only refresh new type of tokens(by length), and only one hour before the token timeouts.
if user_preferences.enable_oauth and \
- len(user_preferences.api_key)<38 and \
- user_preferences.api_key_timeout<time.time()+ 3600:
+ len(user_preferences.api_key) < 38 and \
+ user_preferences.api_key_timeout < time.time() + 3600:
bkit_oauth.refresh_token_thread()
if api_key != '':
get_profile()
@@ -635,6 +635,11 @@ def write_profile(adata):
if user.get('remainingPrivateQuota') is not None:
user['remainingPrivateQuota'] /= (1024 * 1024)
+ if user.get('id') == 2:
+ user['exmenu'] = True
+ else:
+ user['exmenu'] = False
+
bpy.context.window_manager['bkit profile'] = adata
@@ -660,6 +665,7 @@ def fetch_profile(api_key):
utils.p(e)
+
def get_profile():
preferences = bpy.context.preferences.addons['blenderkit'].preferences
a = bpy.context.window_manager.get('bkit profile')
@@ -667,6 +673,11 @@ def get_profile():
thread.start()
return a
+def profile_is_validator():
+ a = bpy.context.window_manager.get('bkit profile')
+ if a is not None and a.get('exmenu'):
+ return True
+ return False
class Searcher(threading.Thread):
query = None
@@ -723,17 +734,20 @@ class Searcher(threading.Thread):
requeststring += '+'
# result ordering: _score - relevance, score - BlenderKit score
- if query.get('category_subtree') is not None:
- requeststring += '+order:-score,_score'
+
+ if query.get('author_id') is not None and profile_is_validator():
+ requeststring += '+order:-created'
else:
- requeststring += '+order:_score'
+ if query.get('category_subtree') is not None:
+ requeststring += '+order:-score,_score'
+ else:
+ requeststring += '+order:_score'
requeststring += '&addon_version=%s' % params['addon_version']
if params.get('scene_uuid') is not None:
requeststring += '&scene_uuid=%s' % params['scene_uuid']
urlquery = url + requeststring
-
try:
utils.p(urlquery)
r = rerequests.get(urlquery, headers=headers)
@@ -1111,27 +1125,27 @@ class SearchOperator(Operator):
name="category",
description="search only subtree of this category",
default="",
- options = {'SKIP_SAVE'}
+ options={'SKIP_SAVE'}
)
author_id: StringProperty(
name="Author ID",
description="Author ID - search only assets by this author",
default="",
- options = {'SKIP_SAVE'}
+ options={'SKIP_SAVE'}
)
get_next: BoolProperty(name="next page",
description="get next page from previous search",
default=False,
- options = {'SKIP_SAVE'}
- )
+ options={'SKIP_SAVE'}
+ )
keywords: StringProperty(
name="Keywords",
description="Keywords",
default="",
- options = {'SKIP_SAVE'}
+ options={'SKIP_SAVE'}
)
@classmethod
@@ -1163,7 +1177,7 @@ def register_search():
for c in classes:
bpy.utils.register_class(c)
- bpy.app.timers.register(timer_update, persistent = True)
+ bpy.app.timers.register(timer_update, persistent=True)
categories.load_categories()
@@ -1175,4 +1189,3 @@ def unregister_search():
bpy.utils.unregister_class(c)
if bpy.app.timers.is_registered(timer_update):
bpy.app.timers.unregister(timer_update)
-
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index a31a0392..d8ca90fc 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -771,12 +771,13 @@ class OBJECT_MT_blenderkit_asset_menu(bpy.types.Menu):
profile = wm.get('bkit profile')
if profile is not None:
# validation by admin
- if profile['user']['id'] == 2:
+ if profile['user']['exmenu']:
if asset_data['verificationStatus'] != 'validated':
op = layout.operator('object.blenderkit_change_status', text='Validate')
op.asset_id = asset_data['id']
op.state = 'validated'
+
if author_id == str(profile['user']['id']):
layout.label(text='Management tools:')
row = layout.row()
More information about the Bf-extensions-cvs
mailing list