labimotion 2.1.0 → 2.2.0.rc5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b97ee960a48914097f872e1b421ada368d5bdee1bb6b05e7f14a36248955020
4
- data.tar.gz: 5dc30139a5c87ed6cd8a86f3f9c583f3973eceb7cb5fd01ac2c245630815c425
3
+ metadata.gz: 5aa32269487161d9b1e5647154e1d55ec3fae34dc50082e538adae80679afdf9
4
+ data.tar.gz: 5df8ec5d405a7c64ee0840cfffe1dd8a60537997447c898d2f1d8870b3910830
5
5
  SHA512:
6
- metadata.gz: abfbd09a8bcab8d5cfc47dea6c6ee098cbd0b54985d16d888f63a5ee2ba6f53673e4a105af59576d689c5b58cefbdde36a1c7649fa760dd4178a999df4975858
7
- data.tar.gz: af957c39d2675b38d01a0c14c018c49b584c15f6b1785d76f36ca5c2833c408e82e396a88e82bb59d625069ac0dc267b24d91b16f2c8c4ab97de5bc6d77fd77b
6
+ metadata.gz: 68ebbb1d5ebbe512808bcab3f34b3452c9ee0dbeceebbed183db20904e433b0aa06cd533f66a0896e7d3824e615307d25edd669cb1de5c0f0415213c2f349e1f
7
+ data.tar.gz: 14a545856a83b9d5778910eefd06c2cb4b865e696036c8e7e1901c18e2688726c6447aca3af8a65703e788d2fc95357acfe1fd5e6177706a3f0dc62b712e885d
@@ -87,12 +87,13 @@ module Labimotion
87
87
  }
88
88
  element = Labimotion::Element.new(attributes)
89
89
 
90
- if params[:collection_id]
90
+ all_coll = Collection.get_all_collection_for_user(current_user.id)
91
+ element.collections << all_coll
92
+
93
+ if params[:collection_id] && params[:collection_id] != all_coll.id
91
94
  collection = current_user.collections.find(params[:collection_id])
92
95
  element.collections << collection
93
96
  end
94
- all_coll = Collection.get_all_collection_for_user(current_user.id)
95
- element.collections << all_coll
96
97
  element.save!
97
98
  element.properties = update_sample_association(params[:properties], current_user, element)
98
99
  # element.properties = update_vocabularies(_properties, current_user, element)
@@ -246,27 +247,21 @@ module Labimotion
246
247
  end
247
248
 
248
249
  def list_serialized_elements(params, current_user)
249
- collection_id =
250
- if params[:collection_id]
251
- Collection
252
- .belongs_to_or_shared_by(current_user.id, current_user.group_ids)
253
- .find_by(id: params[:collection_id])&.id
254
- elsif params[:sync_collection_id]
255
- current_user
256
- .all_sync_in_collections_users
257
- .find_by(id: params[:sync_collection_id])&.collection&.id
258
- end
250
+ scope = Labimotion::Element.none
259
251
 
260
- scope =
261
- if collection_id
262
- Labimotion::Element
263
- .joins(:element_klass, :collections_elements)
264
- .where(
265
- element_klasses: { name: params[:el_type] },
266
- collections_elements: { collection_id: collection_id },
267
- ).includes(:tag, collections: :sync_collections_users)
252
+ if params[:collection_id]
253
+ begin
254
+ collection = Collection.accessible_for(current_user).find(params[:collection_id])
255
+ scope = collection.elements
256
+ .joins(:element_klass)
257
+ .where(element_klasses: { name: params[:el_type] })
258
+ .includes(:tag)
259
+ rescue ActiveRecord::RecordNotFound
260
+ Labimotion::Element.none
261
+ end
268
262
  else
269
- Labimotion::Element.none
263
+ # All collection of current_user
264
+ scope = Labimotion::Element.for_user(current_user.id)
270
265
  end
271
266
 
272
267
  ## TO DO: refactor labimotion
@@ -12,7 +12,7 @@ module Labimotion
12
12
  end
13
13
 
14
14
  def self.elements_search(params, current_user, c_id, dl)
15
- collection = Collection.belongs_to_or_shared_by(current_user.id, current_user.group_ids).find(c_id)
15
+ collection = Collection.accessible_for(current_user).find(c_id)
16
16
  element_scope = Labimotion::Element.joins(:collections_elements).where('collections_elements.collection_id = ?', collection.id).joins(:element_klass).where('element_klasses.id = elements.element_klass_id AND element_klasses.name = ?', params[:selection][:genericElName])
17
17
  element_scope = element_scope.where('elements.name like (?)', "%#{params[:selection][:searchName]}%") if params[:selection][:searchName].present?
18
18
  element_scope = element_scope.where('elements.short_label like (?)', "%#{params[:selection][:searchShowLabel]}%") if params[:selection][:searchShowLabel].present?
@@ -97,7 +97,7 @@ module Labimotion
97
97
  def self.samples_search(c_id = @c_id)
98
98
  sqls = []
99
99
  sps = params[:selection][:searchProperties]
100
- collection = Collection.belongs_to_or_shared_by(current_user.id, current_user.group_ids).find(c_id)
100
+ collection = Collection.accessible_for(current_user).find(c_id)
101
101
  element_scope = Sample.joins(:collections_samples).where('collections_samples.collection_id = ?', collection.id)
102
102
  return element_scope if sps.empty?
103
103
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  ## Labimotion Version
4
4
  module Labimotion
5
- VERSION = '2.1.0'
5
+ VERSION = '2.2.0.rc5'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: labimotion
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0.rc5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chia-Lin Lin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-01-29 00:00:00.000000000 Z
12
+ date: 2026-03-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: caxlsx
@@ -98,7 +98,6 @@ files:
98
98
  - lib/labimotion/helpers/vocabulary_helpers.rb
99
99
  - lib/labimotion/libs/attachment_handler.rb
100
100
  - lib/labimotion/libs/converter.rb
101
- - lib/labimotion/libs/data/layer/StdDataset.json
102
101
  - lib/labimotion/libs/data/mapper/Chemwiki.json
103
102
  - lib/labimotion/libs/data/mapper/Source.json
104
103
  - lib/labimotion/libs/data/vocab/Standard.json
@@ -183,9 +182,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
182
  version: '3.4'
184
183
  required_rubygems_version: !ruby/object:Gem::Requirement
185
184
  requirements:
186
- - - ">="
185
+ - - ">"
187
186
  - !ruby/object:Gem::Version
188
- version: '0'
187
+ version: 1.3.1
189
188
  requirements: []
190
189
  rubygems_version: 3.1.6
191
190
  signing_key:
@@ -1,212 +0,0 @@
1
- {
2
- "layers": {
3
- "std_general": {
4
- "wf": false,
5
- "key": "std_general",
6
- "std": true,
7
- "cols": 4,
8
- "color": "default",
9
- "label": "Standard General description",
10
- "style": "panel_generic_heading",
11
- "fields": [
12
- {
13
- "type": "text",
14
- "field": "title",
15
- "label": "title",
16
- "default": "",
17
- "ontology": {
18
- "id": "afo:class:http://purl.allotrope.org/ontologies/result#AFR_0001080",
19
- "iri": "http://purl.allotrope.org/ontologies/result#AFR_0001080",
20
- "type": "class",
21
- "label": "title",
22
- "obo_id": "AFR:0001080",
23
- "short_form": "AFR_0001080",
24
- "description": [
25
- "A title is a prefix or suffix added to a personal name. A title can be a title of honor, that is a title bestowed as an award, a honorary title (academic), that is a recognition of contributions by a non-employee or employee, a hereditary title, that is a title that remains in a family or a job title, that is a designation of a person's position in an organization. [Wikipedia]"
26
- ],
27
- "ontology_name": "afo",
28
- "ontology_prefix": "AFO"
29
- },
30
- "position": 1,
31
- "required": false,
32
- "sub_fields": [],
33
- "text_sub_fields": []
34
- },
35
- {
36
- "type": "text",
37
- "field": "data_type",
38
- "label": "Type of the data ",
39
- "default": "",
40
- "readonly": true,
41
- "position": 2,
42
- "required": false,
43
- "sub_fields": [],
44
- "description": "Ontologies!!!! type of entity",
45
- "placeholder": "e.g. sample or reaction analysis",
46
- "text_sub_fields": []
47
- },
48
- {
49
- "type": "text",
50
- "field": "date",
51
- "label": "date",
52
- "default": "",
53
- "position": 3,
54
- "required": false,
55
- "sub_fields": [],
56
- "text_sub_fields": []
57
- },
58
- {
59
- "type": "text",
60
- "field": "time",
61
- "label": "starting time",
62
- "default": "",
63
- "position": 4,
64
- "required": false,
65
- "sub_fields": [],
66
- "text_sub_fields": []
67
- },
68
- {
69
- "type": "text",
70
- "field": "contributor",
71
- "label": "contributor",
72
- "default": "",
73
- "position": 5,
74
- "required": false,
75
- "sub_fields": [],
76
- "description": "",
77
- "text_sub_fields": []
78
- },
79
- {
80
- "type": "text",
81
- "field": "creator",
82
- "label": "creator",
83
- "default": "",
84
- "position": 6,
85
- "required": false,
86
- "sub_fields": [],
87
- "description": "the person who upload the analysis",
88
- "text_sub_fields": []
89
- },
90
- {
91
- "type": "text",
92
- "field": "operator",
93
- "label": "operator",
94
- "default": "",
95
- "position": 7,
96
- "required": false,
97
- "sub_fields": [],
98
- "text_sub_fields": []
99
- },
100
- {
101
- "type": "text",
102
- "field": "comments",
103
- "label": "comments",
104
- "default": "",
105
- "position": 8,
106
- "required": false,
107
- "sub_fields": [],
108
- "text_sub_fields": []
109
- },
110
- {
111
- "opid": 8,
112
- "type": "text",
113
- "field": "Producer",
114
- "label": "Producer of the sample",
115
- "is_voc": true,
116
- "source": "Segment",
117
- "default": "",
118
- "field_id": "Producer",
119
- "layer_id": "bsi",
120
- "ontology": {
121
- "id": "schema:property:https://schema.org/producer",
122
- "iri": "https://schema.org/producer",
123
- "type": "property",
124
- "label": "producer",
125
- "obo_id": "schema:producer",
126
- "short_form": "schema_producer",
127
- "description": [
128
- "The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.)."
129
- ],
130
- "ontology_name": "schema",
131
- "ontology_prefix": "schema"
132
- },
133
- "position": 9,
134
- "source_id": "dce363d5-56d0-4324-9914-0476be999016",
135
- "identifier": "357b7cd3-ca47-49e0-be47-154d907c2cf5",
136
- "sub_fields": [],
137
- "text_sub_fields": []
138
- }
139
- ],
140
- "position": -2,
141
- "condition": "",
142
- "wf_position": 0
143
- },
144
- "std_sample_details": {
145
- "wf": false,
146
- "key": "std_sample_details",
147
- "cols": 3,
148
- "std": true,
149
- "color": "none",
150
- "label": "Standard Sample details",
151
- "style": "panel_generic_heading",
152
- "fields": [
153
- {
154
- "type": "text",
155
- "field": "label",
156
- "label": "label",
157
- "default": "",
158
- "position": 1,
159
- "required": false,
160
- "sub_fields": [],
161
- "text_sub_fields": []
162
- },
163
- {
164
- "type": "text",
165
- "field": "id",
166
- "label": "id",
167
- "default": "",
168
- "position": 2,
169
- "required": false,
170
- "sub_fields": [],
171
- "text_sub_fields": []
172
- },
173
- {
174
- "type": "text",
175
- "field": "amount",
176
- "label": "amount",
177
- "default": "",
178
- "position": 3,
179
- "required": false,
180
- "sub_fields": [],
181
- "text_sub_fields": []
182
- },
183
- {
184
- "type": "text",
185
- "field": "volume",
186
- "label": "volume",
187
- "default": "",
188
- "position": 4,
189
- "required": false,
190
- "sub_fields": [],
191
- "text_sub_fields": []
192
- },
193
- {
194
- "type": "text",
195
- "field": "size",
196
- "label": "size",
197
- "default": "",
198
- "position": 5,
199
- "required": false,
200
- "sub_fields": [],
201
- "text_sub_fields": []
202
- }
203
- ],
204
- "position": -1,
205
- "timeRecord": "",
206
- "wf_position": 0
207
- }
208
- },
209
- "version": "0.1",
210
- "select_options": {
211
- }
212
- }