girder-sample-tracker 2.0.3__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.
- {girder_sample_tracker-2.0.3/girder_sample_tracker.egg-info → girder_sample_tracker-2.0.4}/PKG-INFO +1 -1
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/models/sample.py +1 -1
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/rest/sample.py +20 -4
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4/girder_sample_tracker.egg-info}/PKG-INFO +1 -1
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/setup.py +1 -1
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/.github/workflows/release.yml +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/.gitignore +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/LICENSE +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/README.md +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/__init__.py +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/models/__init__.py +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/rest/__init__.py +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/web_client/dist/girder-plugin-sample-tracker.umd.cjs +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/web_client/dist/style.css +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/SOURCES.txt +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/dependency_links.txt +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/entry_points.txt +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/not-zip-safe +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/requires.txt +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker.egg-info/top_level.txt +0 -0
- {girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/setup.cfg +0 -0
{girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/rest/sample.py
RENAMED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import csv
|
|
1
2
|
import datetime
|
|
3
|
+
import io
|
|
2
4
|
import math
|
|
3
5
|
from urllib.parse import urlparse
|
|
4
6
|
|
|
@@ -97,7 +99,7 @@ class Sample(Resource):
|
|
|
97
99
|
sample["description"] = description
|
|
98
100
|
if eventTypes != sample.get("eventTypes", []):
|
|
99
101
|
sample["eventTypes"] = eventTypes
|
|
100
|
-
sample["updated"] = datetime.datetime.
|
|
102
|
+
sample["updated"] = datetime.datetime.now(datetime.UTC)
|
|
101
103
|
return SampleModel().save(sample)
|
|
102
104
|
|
|
103
105
|
@access.user
|
|
@@ -301,7 +303,7 @@ class Sample(Resource):
|
|
|
301
303
|
user = self.getCurrentUser()
|
|
302
304
|
event = {
|
|
303
305
|
"comment": comment,
|
|
304
|
-
"created": datetime.datetime.
|
|
306
|
+
"created": datetime.datetime.now(datetime.UTC),
|
|
305
307
|
"creator": user["_id"],
|
|
306
308
|
"creatorName": f"{user['firstName']} {user['lastName']}",
|
|
307
309
|
"eventType": eventType,
|
|
@@ -367,15 +369,29 @@ class Sample(Resource):
|
|
|
367
369
|
|
|
368
370
|
def stream():
|
|
369
371
|
_zip = ziputil.ZipGenerator()
|
|
372
|
+
csv_data = io.StringIO()
|
|
373
|
+
csv_writer = csv.writer(csv_data)
|
|
374
|
+
csv_writer.writerow(["Sample ID", "Sample Name", "Add Event URL"])
|
|
370
375
|
for sample_id in ids:
|
|
371
376
|
doc = SampleModel().load(sample_id, user=user, level=AccessType.READ)
|
|
372
377
|
qr_img = SampleModel().qr_code(doc, girder_base)
|
|
378
|
+
csv_writer.writerow(
|
|
379
|
+
[
|
|
380
|
+
str(doc["_id"]),
|
|
381
|
+
doc["name"],
|
|
382
|
+
f"{girder_base}/#sample/{doc['_id']}/add"
|
|
383
|
+
]
|
|
384
|
+
)
|
|
373
385
|
|
|
374
386
|
def qr_stream():
|
|
375
387
|
yield qr_img.getvalue()
|
|
376
388
|
|
|
377
|
-
|
|
378
|
-
|
|
389
|
+
yield from _zip.addFile(qr_stream, f"{doc['name']}.png")
|
|
390
|
+
|
|
391
|
+
def csv_stream():
|
|
392
|
+
csv_data.seek(0)
|
|
393
|
+
yield csv_data.getvalue()
|
|
394
|
+
yield from _zip.addFile(csv_stream, "samples.csv")
|
|
379
395
|
yield _zip.footer()
|
|
380
396
|
|
|
381
397
|
return stream
|
|
@@ -9,7 +9,7 @@ setup(
|
|
|
9
9
|
name="girder-sample-tracker",
|
|
10
10
|
long_description=long_description,
|
|
11
11
|
long_description_content_type="text/markdown",
|
|
12
|
-
version="2.0.
|
|
12
|
+
version="2.0.4",
|
|
13
13
|
description="Girder Plugin adding a simple tracker for material samples",
|
|
14
14
|
packages=find_packages(),
|
|
15
15
|
include_package_data=True,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/__init__.py
RENAMED
|
File without changes
|
{girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/models/__init__.py
RENAMED
|
File without changes
|
{girder_sample_tracker-2.0.3 → girder_sample_tracker-2.0.4}/girder_sample_tracker/rest/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|