[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