girder-jsonforms 2.0.2__tar.gz → 2.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. {girder_jsonforms-2.0.2/girder_jsonforms.egg-info → girder_jsonforms-2.0.4}/PKG-INFO +1 -1
  2. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/__init__.py +12 -5
  3. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/models/entry.py +1 -1
  4. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/models/form.py +3 -3
  5. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/rest/entry.py +1 -1
  6. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/rest/form.py +2 -2
  7. girder_jsonforms-2.0.4/girder_jsonforms/settings.py +26 -0
  8. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/web_client/dist/girder-plugin-jsonforms.umd.cjs +17 -17
  9. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4/girder_jsonforms.egg-info}/PKG-INFO +1 -1
  10. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms.egg-info/SOURCES.txt +1 -0
  11. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/setup.py +1 -1
  12. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/.github/workflows/release.yml +0 -0
  13. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/.gitignore +0 -0
  14. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/LICENSE +0 -0
  15. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/README.md +0 -0
  16. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/lib/__init__.py +0 -0
  17. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/lib/google_drive.py +0 -0
  18. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/lib/jq.py +0 -0
  19. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/models/__init__.py +0 -0
  20. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/rest/__init__.py +0 -0
  21. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms/web_client/dist/style.css +0 -0
  22. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms.egg-info/dependency_links.txt +0 -0
  23. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms.egg-info/entry_points.txt +0 -0
  24. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms.egg-info/not-zip-safe +0 -0
  25. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms.egg-info/requires.txt +0 -0
  26. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/girder_jsonforms.egg-info/top_level.txt +0 -0
  27. {girder_jsonforms-2.0.2 → girder_jsonforms-2.0.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: girder-jsonforms
3
- Version: 2.0.2
3
+ Version: 2.0.4
4
4
  Summary: Girder plugin adding forms based on JSON-editor
5
5
  License: BSD-3-Clause
6
6
  Classifier: Development Status :: 4 - Beta
@@ -8,6 +8,7 @@ from girder import events
8
8
  from girder.constants import AccessType
9
9
  from girder.models.file import File
10
10
  from girder.models.item import Item
11
+ from girder.models.setting import Setting
11
12
  from girder.plugin import GirderPlugin, registerPluginStaticContent
12
13
  from girder.utility.model_importer import ModelImporter
13
14
 
@@ -16,6 +17,7 @@ from .models.entry import FormEntry as FormEntryModel
16
17
  from .models.form import Form as FormModel
17
18
  from .rest.entry import FormEntry
18
19
  from .rest.form import Form
20
+ from .settings import PluginSettings
19
21
 
20
22
  GDRIVE_SERVICE = None
21
23
  logger = logging.getLogger(__name__)
@@ -42,6 +44,9 @@ def annotate_uploads(event):
42
44
 
43
45
  def upload_to_gdrive(event):
44
46
  global GDRIVE_SERVICE
47
+ if GDRIVE_SERVICE is None:
48
+ logger.error("Google Drive integration is not enabled.")
49
+ return
45
50
  info = event.info
46
51
  file = info["file"]
47
52
 
@@ -66,14 +71,16 @@ class JSONFormsPlugin(GirderPlugin):
66
71
  ModelImporter.registerModel("form", FormModel, plugin="jsonforms")
67
72
  ModelImporter.registerModel("entry", FormEntryModel, plugin="jsonforms")
68
73
  global GDRIVE_SERVICE
69
- try:
70
- GDRIVE_SERVICE = authenticate_gdrive()
71
- except ValueError:
72
- logger.exception("Failed to authenticate with Google Drive")
74
+ if Setting().get(PluginSettings.GOOGLE_DRIVE_ENABLED):
75
+ try:
76
+ GDRIVE_SERVICE = authenticate_gdrive()
77
+ except ValueError:
78
+ logger.exception("Failed to authenticate with Google Drive")
73
79
  info["apiRoot"].form = Form()
74
80
  info["apiRoot"].entry = FormEntry()
75
81
  events.bind("data.process", "jsonforms", annotate_uploads)
76
- events.bind("gdrive.upload", "jsonforms", upload_to_gdrive)
82
+ if GDRIVE_SERVICE is not None:
83
+ events.bind("gdrive.upload", "jsonforms", upload_to_gdrive)
77
84
  registerPluginStaticContent(
78
85
  plugin="jsonforms",
79
86
  css=["/style.css"],
@@ -51,7 +51,7 @@ class FormEntry(acl_mixin.AccessControlMixin, Model):
51
51
  print("Error:", e)
52
52
  return None
53
53
 
54
- def create(self, form, data, source, destination, creator):
54
+ def create_entry(self, form, data, source, destination, creator):
55
55
  now = datetime.datetime.utcnow()
56
56
  unique_field = form.get("uniqueField")
57
57
  entry = {
@@ -44,7 +44,7 @@ class Form(AccessControlledModel):
44
44
  def validate(self, doc):
45
45
  return doc
46
46
 
47
- def create(
47
+ def create_form(
48
48
  self,
49
49
  name,
50
50
  description,
@@ -77,7 +77,7 @@ class Form(AccessControlledModel):
77
77
 
78
78
  return self.save(form)
79
79
 
80
- def update(
80
+ def update_form(
81
81
  self,
82
82
  form,
83
83
  name,
@@ -155,7 +155,7 @@ class Form(AccessControlledModel):
155
155
 
156
156
  return form
157
157
 
158
- def export(self, form, export_format):
158
+ def export_form(self, form, export_format):
159
159
  from .entry import FormEntry
160
160
 
161
161
  entries = [
@@ -108,7 +108,7 @@ class FormEntry(Resource):
108
108
  )
109
109
  @filtermodel(model=FormEntryModel, plugin="jsonforms")
110
110
  def createFormEntry(self, form, data, source, destination):
111
- return FormEntryModel().create(
111
+ return FormEntryModel().create_entry(
112
112
  form,
113
113
  data,
114
114
  source,
@@ -111,7 +111,7 @@ class Form(Resource):
111
111
  .errorResponse("Read access was denied on the form.", 403)
112
112
  )
113
113
  def exportForm(self, form, exportFormat):
114
- export = FormModel().export(form, exportFormat)
114
+ export = FormModel().export_form(form, exportFormat)
115
115
  setResponseHeader("Content-Length", export.getbuffer().nbytes)
116
116
  content_type = (
117
117
  "text/csv" if exportFormat == "csv" else "application/vnd.ms-excel"
@@ -199,7 +199,7 @@ class Form(Resource):
199
199
  serialize,
200
200
  uniqueField,
201
201
  ):
202
- return FormModel().create(
202
+ return FormModel().create_form(
203
203
  name,
204
204
  description,
205
205
  schema,
@@ -0,0 +1,26 @@
1
+ from girder.exceptions import ValidationException
2
+ from girder.utility import setting_utilities
3
+
4
+
5
+ class PluginSettings:
6
+ GOOGLE_DRIVE_ENABLED = "jsonforms.google_drive_enabled"
7
+
8
+
9
+ @setting_utilities.default(PluginSettings.GOOGLE_DRIVE_ENABLED)
10
+ def default_google_drive_enabled():
11
+ """
12
+ Default setting for enabling Google Drive integration.
13
+ """
14
+ return False
15
+
16
+
17
+ @setting_utilities.validator(PluginSettings.GOOGLE_DRIVE_ENABLED)
18
+ def validate_google_drive_enabled(doc):
19
+ """
20
+ Validate the Google Drive integration setting.
21
+ """
22
+ if not isinstance(doc["value"], bool):
23
+ raise ValidationException(
24
+ "Google Drive integration must be a boolean.",
25
+ "value",
26
+ )