Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wendelin
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
wendelin
Commits
54c47e5e
Commit
54c47e5e
authored
Nov 27, 2017
by
Klaus Wölfel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
data analysis creation: automaticall add items such as device configuration and data configuration
parent
41fc9bb3
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
19 deletions
+24
-19
bt5/erp5_wendelin/SkinTemplateItem/portal_skins/erp5_wendelin/ERP5Site_createDataAnalysisList.py
...al_skins/erp5_wendelin/ERP5Site_createDataAnalysisList.py
+24
-19
No files found.
bt5/erp5_wendelin/SkinTemplateItem/portal_skins/erp5_wendelin/ERP5Site_createDataAnalysisList.py
View file @
54c47e5e
...
@@ -25,7 +25,7 @@ for movement in portal_catalog(query):
...
@@ -25,7 +25,7 @@ for movement in portal_catalog(query):
if
movement
.
DataIngestionLine_hasMissingRequiredItem
():
if
movement
.
DataIngestionLine_hasMissingRequiredItem
():
raise
ValueError
(
"Transformation requires movement to have "
+
raise
ValueError
(
"Transformation requires movement to have "
+
"aggregated data ingestion batch"
)
"aggregated data ingestion batch"
)
d
ata_ingestion
=
movement
.
getParentValue
()
d
elivery
=
movement
.
getParentValue
()
# Get applicable transformation
# Get applicable transformation
for
transformation
in
portal_catalog
(
for
transformation
in
portal_catalog
(
portal_type
=
"Data Transformation"
,
portal_type
=
"Data Transformation"
,
...
@@ -35,23 +35,24 @@ for movement in portal_catalog(query):
...
@@ -35,23 +35,24 @@ for movement in portal_catalog(query):
data_analysis
=
portal_catalog
.
getResultValue
(
data_analysis
=
portal_catalog
.
getResultValue
(
portal_type
=
"Data Analysis"
,
portal_type
=
"Data Analysis"
,
specialise_relative_url
=
transformation
.
getRelativeUrl
(),
specialise_relative_url
=
transformation
.
getRelativeUrl
(),
causality_relative_url
=
d
ata_ingestion
.
getRelativeUrl
())
causality_relative_url
=
d
elivery
.
getRelativeUrl
())
if
data_analysis
is
not
None
:
if
data_analysis
is
not
None
:
continue
continue
data_supply
=
delivery
.
getSpecialiseValueList
(
portal_type
=
"Data Supply"
)
# Create Analysis
# Create Analysis
data_analysis
=
portal
.
data_analysis_module
.
newContent
(
data_analysis
=
portal
.
data_analysis_module
.
newContent
(
portal_type
=
"Data Analysis"
,
portal_type
=
"Data Analysis"
,
title
=
transformation
.
getTitle
(),
title
=
transformation
.
getTitle
(),
reference
=
d
ata_ingestion
.
getReference
(),
reference
=
d
elivery
.
getReference
(),
start_date
=
now
,
start_date
=
now
,
specialise_value
=
transformation
,
specialise_value
_list
=
[
transformation
]
+
data_supply
,
causality_value
=
d
ata_ingestion
,
causality_value
=
d
elivery
,
source
=
d
ata_ingestion
.
getSource
(),
source
=
d
elivery
.
getSource
(),
source_section
=
d
ata_ingestion
.
getSourceSection
(),
source_section
=
d
elivery
.
getSourceSection
(),
source_project
=
d
ata_ingestion
.
getSourceProject
(),
source_project
=
d
elivery
.
getSourceProject
(),
destination
=
d
ata_ingestion
.
getDestination
(),
destination
=
d
elivery
.
getDestination
(),
destination_section
=
d
ata_ingestion
.
getDestinationSection
(),
destination_section
=
d
elivery
.
getDestinationSection
(),
destination_project
=
d
ata_ingestion
.
getDestinationProject
())
destination_project
=
d
elivery
.
getDestinationProject
())
# create input and output lines
# create input and output lines
for
transformation_line
in
transformation
.
objectValues
(
for
transformation_line
in
transformation
.
objectValues
(
...
@@ -62,14 +63,8 @@ for movement in portal_catalog(query):
...
@@ -62,14 +63,8 @@ for movement in portal_catalog(query):
if
isinstance
(
quantity
,
tuple
):
if
isinstance
(
quantity
,
tuple
):
quantity
=
quantity
[
0
]
quantity
=
quantity
[
0
]
aggregate_set
=
set
()
aggregate_set
=
set
()
# manually add device
and device configuration
to every line
# manually add device to every line
aggregate_set
.
add
(
movement
.
getAggregateDevice
())
aggregate_set
.
add
(
movement
.
getAggregateDevice
())
# workaround the case that no device configuration portal type exists
# without this work around aggregate from any portal type
# would be returned, because getAggregateValue(portal_type=[]) does not
# return None as expected. This must be fixed properly in generic erp5
if
portal
.
getPortalDeviceConfigurationTypeList
():
aggregate_set
.
add
(
movement
.
getAggregateDeviceConfiguration
())
if
transformation_line
.
getPortalType
()
==
\
if
transformation_line
.
getPortalType
()
==
\
"Data Transformation Resource Line"
:
"Data Transformation Resource Line"
:
# at the moment, we only check for positive or negative quantity
# at the moment, we only check for positive or negative quantity
...
@@ -107,13 +102,23 @@ for movement in portal_catalog(query):
...
@@ -107,13 +102,23 @@ for movement in portal_catalog(query):
item
=
module
.
newContent
(
portal_type
=
item_type
,
item
=
module
.
newContent
(
portal_type
=
item_type
,
title
=
transformation
.
getTitle
(),
title
=
transformation
.
getTitle
(),
reference
=
"%s-%s"
%
(
transformation
.
getTitle
(),
reference
=
"%s-%s"
%
(
transformation
.
getTitle
(),
data_ingestion
.
getReference
()),
delivery
.
getReference
()),
version
=
'001'
)
version
=
'001'
)
try
:
try
:
item
.
validate
()
item
.
validate
()
except
AttributeError
:
except
AttributeError
:
pass
pass
aggregate_set
.
add
(
item
.
getRelativeUrl
())
aggregate_set
.
add
(
item
.
getRelativeUrl
())
elif
transformation_line
.
getPortalType
()
==
\
"Data Transformation Operation Line"
:
# find other items such as device configuration and data configuration
# from data ingestion and data supply
composed
=
data_analysis
.
asComposedDocument
()
line_list
=
[
l
for
l
in
delivery
.
objectValues
(
portal_type
=
"Data Ingestion Line"
)]
line_list
+=
[
l
for
l
in
composed
.
objectValues
(
portal_type
=
"Data Supply Line"
)]
for
line
in
line_list
:
if
line
.
getResourceValue
().
getPortalType
()
==
"Data Operation"
:
aggregate_set
.
update
(
line
.
getAggregateList
())
data_analysis
.
newContent
(
data_analysis
.
newContent
(
portal_type
=
"Data Analysis Line"
,
portal_type
=
"Data Analysis Line"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment