From 1fe256ff3512436b15c6aa37e1374634fbdd2958 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vil=C3=A9m=20Duha?= <vilda.novak@gmail.com>
Date: Sat, 4 Jan 2020 00:08:36 +0100
Subject: [PATCH] BlenderKit: validation tools improvements People who can
 validate are now recognized from profile info In menu it's possible to put
 asset on hold besides validation reupload of thumbnails doesn't put asset
 back to pre-validation state, only main file upload.

---
 blenderkit/search.py    |  4 ++--
 blenderkit/ui_panels.py |  6 +++++-
 blenderkit/upload.py    |  2 +-
 blenderkit/upload_bg.py | 15 ++++++++-------
 4 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/blenderkit/search.py b/blenderkit/search.py
index 844b7fd1b..1dd7e6c21 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -635,7 +635,7 @@ def write_profile(adata):
     if user.get('remainingPrivateQuota') is not None:
         user['remainingPrivateQuota'] /= (1024 * 1024)
 
-    if user.get('id') == 2:
+    if adata.get('canEditAllAssets') is True:
         user['exmenu'] = True
     else:
         user['exmenu'] = False
@@ -675,7 +675,7 @@ def get_profile():
 
 def profile_is_validator():
     a = bpy.context.window_manager.get('bkit profile')
-    if a is not None and a.get('exmenu'):
+    if a is not None and a['user'].get('exmenu'):
         return True
     return False
 
diff --git a/blenderkit/ui_panels.py b/blenderkit/ui_panels.py
index d8ca90fca..4541de6ad 100644
--- a/blenderkit/ui_panels.py
+++ b/blenderkit/ui_panels.py
@@ -772,11 +772,15 @@ class OBJECT_MT_blenderkit_asset_menu(bpy.types.Menu):
         if profile is not None:
             # validation by admin
             if profile['user']['exmenu']:
+                layout.label(text='Validation tools:')
                 if asset_data['verificationStatus'] != 'validated':
                     op = layout.operator('object.blenderkit_change_status', text='Validate')
                     op.asset_id = asset_data['id']
                     op.state = 'validated'
-
+                if asset_data['verificationStatus'] != 'on_hold':
+                    op = layout.operator('object.blenderkit_change_status', text='Put on Hold')
+                    op.asset_id = asset_data['id']
+                    op.state = 'on_hold'
 
             if author_id == str(profile['user']['id']):
                 layout.label(text='Management tools:')
diff --git a/blenderkit/upload.py b/blenderkit/upload.py
index b44ae2f32..001c6211e 100644
--- a/blenderkit/upload.py
+++ b/blenderkit/upload.py
@@ -622,7 +622,7 @@ def start_upload(self, context, asset_type, reupload, upload_set):
     else:
         url += props.id + '/'
         try:
-            if upload_set != ['METADATA']:
+            if 'MAINFILE' in upload_set:
                 json_metadata["verificationStatus"] = "uploading"
             r = rerequests.put(url, json=json_metadata, headers=headers, verify=True, immediate=True)  # files = files,
             ui.add_report('uploaded metadata')
diff --git a/blenderkit/upload_bg.py b/blenderkit/upload_bg.py
index a9c9f19b5..2115649b6 100644
--- a/blenderkit/upload_bg.py
+++ b/blenderkit/upload_bg.py
@@ -197,17 +197,18 @@ if __name__ == "__main__":
 
         if uploaded:
             # mark on server as uploaded
-            confirm_data = {
-                "verificationStatus": "uploaded"
-            }
+            if 'MAINFILE' in upload_set:
+                confirm_data = {
+                    "verificationStatus": "uploaded"
+                }
 
-            url = paths.get_api_url() + 'assets/'
+                url = paths.get_api_url() + 'assets/'
 
-            headers = utils.get_headers(upload_data['token'])
+                headers = utils.get_headers(upload_data['token'])
 
-            url += upload_data["id"] + '/'
+                url += upload_data["id"] + '/'
 
-            r = rerequests.patch(url, json=confirm_data, headers=headers, verify=True)  # files = files,
+                r = rerequests.patch(url, json=confirm_data, headers=headers, verify=True)  # files = files,
 
             bg_blender.progress('upload finished successfully')
         else:
-- 
GitLab