Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
138
Merge Requests
138
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
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
d55ed003
Commit
d55ed003
authored
Feb 07, 2024
by
Jérome Perrin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dms: py3
parent
4eea613c
Changes
29
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
106 additions
and
125 deletions
+106
-125
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocToDocx.py
...eItem/portal_components/module.erp5.TransformDocToDocx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocToHtml.py
...eItem/portal_components/module.erp5.TransformDocToHtml.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocxToDocy.py
...Item/portal_components/module.erp5.TransformDocxToDocy.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocxToOdt.py
...eItem/portal_components/module.erp5.TransformDocxToOdt.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocyToDocx.py
...Item/portal_components/module.erp5.TransformDocyToDocx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToHtml.py
...eItem/portal_components/module.erp5.TransformOdpToHtml.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToPdf.py
...teItem/portal_components/module.erp5.TransformOdpToPdf.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToPptx.py
...eItem/portal_components/module.erp5.TransformOdpToPptx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToSxi.py
...teItem/portal_components/module.erp5.TransformOdpToSxi.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdsToHtml.py
...eItem/portal_components/module.erp5.TransformOdsToHtml.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdsToPdf.py
...teItem/portal_components/module.erp5.TransformOdsToPdf.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdsToXlsx.py
...eItem/portal_components/module.erp5.TransformOdsToXlsx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdtToDocx.py
...eItem/portal_components/module.erp5.TransformOdtToDocx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdtToHtml.py
...eItem/portal_components/module.erp5.TransformOdtToHtml.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPdfToBmp.py
...teItem/portal_components/module.erp5.TransformPdfToBmp.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptToPptx.py
...eItem/portal_components/module.erp5.TransformPptToPptx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptxToOdp.py
...eItem/portal_components/module.erp5.TransformPptxToOdp.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptxToPpty.py
...Item/portal_components/module.erp5.TransformPptxToPpty.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptyToPptx.py
...Item/portal_components/module.erp5.TransformPptyToPptx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformSxiToHtml.py
...eItem/portal_components/module.erp5.TransformSxiToHtml.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformSxiToOdp.py
...teItem/portal_components/module.erp5.TransformSxiToOdp.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsToOds.py
...teItem/portal_components/module.erp5.TransformXlsToOds.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsToXlsx.py
...eItem/portal_components/module.erp5.TransformXlsToXlsx.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsxToOds.py
...eItem/portal_components/module.erp5.TransformXlsxToOds.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsxToXlsy.py
...Item/portal_components/module.erp5.TransformXlsxToXlsy.py
+1
-1
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsyToXlsx.py
...Item/portal_components/module.erp5.TransformXlsyToXlsx.py
+1
-1
bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_getRelatedDocumentList.py
.../portal_skins/erp5_dms/Document_getRelatedDocumentList.py
+1
-1
bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/FCKeditor_getSetReferenceUrl.py
...tem/portal_skins/erp5_dms/FCKeditor_getSetReferenceUrl.py
+4
-7
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testERP5WebWithDms.py
...ateItem/portal_components/test.erp5.testERP5WebWithDms.py
+75
-91
No files found.
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocToDocx.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class DocToDocx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
doc
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
docx
=
doc
.
convertTo
(
'docx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocToHtml.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class DocToHtml:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
doc
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
html
=
doc
.
convertTo
(
'html'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocxToDocy.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class DocxToDocy:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
docx
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
docy
=
docx
.
convertTo
(
'docy'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocxToOdt.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class DocxToOdt:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
docx
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
odt
=
docx
.
convertTo
(
'odt'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformDocyToDocx.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class DocyToDocx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
docy
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
docx
=
docy
.
convertTo
(
'docx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToHtml.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdpToHtml:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
odp
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
html
=
odp
.
convertTo
(
'html'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToPdf.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdpToPdf:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
odp
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
pdf
=
odp
.
convertTo
(
'pdf'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToPptx.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdpToPptx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
odp
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
pptx
=
odp
.
convertTo
(
'pptx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdpToSxi.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdpToSxi:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
odp
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
sxi
=
odp
.
convertTo
(
'sxi'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdsToHtml.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdsToHtml:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
ods
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
html
=
ods
.
convertTo
(
'html'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdsToPdf.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdsToPdf:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
ods
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
pdf
=
ods
.
convertTo
(
'pdf'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdsToXlsx.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class OdsToXlsx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
ods
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
xlsx
=
ods
.
convertTo
(
'xlsx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdtToDocx.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdtToDocx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
odt
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
docx
=
odt
.
convertTo
(
'docx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformOdtToHtml.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class OdtToHtml:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
odt
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
html
=
odt
.
convertTo
(
'html'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPdfToBmp.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class PdfToBmp:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
pdf
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
bmp
=
pdf
.
convertTo
(
'bmp'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptToPptx.py
View file @
d55ed003
...
...
@@ -27,7 +27,7 @@ class PptToPptx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
ppt
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
pptx
=
ppt
.
convertTo
(
'pptx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptxToOdp.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class PptxToOdp:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
pptx
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
odp
=
pptx
.
convertTo
(
'odp'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptxToPpty.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class PptxToPpty:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
pptx
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
ppty
=
pptx
.
convertTo
(
'ppty'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformPptyToPptx.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class PptyToPptx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
ppty
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
pptx
=
ppty
.
convertTo
(
'pptx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformSxiToHtml.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class SxiToHtml:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
sxi
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
html
=
sxi
.
convertTo
(
'html'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformSxiToOdp.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class SxiToOdp:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
sxi
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
odp
=
sxi
.
convertTo
(
'odp'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsToOds.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class XlsToOds:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
xls
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
ods
=
xls
.
convertTo
(
'ods'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsToXlsx.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class XlsToXlsx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
xls
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
xlsx
=
xls
.
convertTo
(
'xlsx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsxToOds.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class XlsxToOds:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
xlsx
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
ods
=
xlsx
.
convertTo
(
'ods'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsxToXlsy.py
View file @
d55ed003
...
...
@@ -24,7 +24,7 @@ class XlsxToXlsy:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
xlsx
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
xlsy
=
xlsx
.
convertTo
(
'xlsy'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/ModuleComponentTemplateItem/portal_components/module.erp5.TransformXlsyToXlsx.py
View file @
d55ed003
...
...
@@ -23,7 +23,7 @@ class XlsyToXlsx:
raise
AttributeError
(
attr
)
def
convert
(
self
,
orig
,
data
,
cache
=
None
,
filename
=
None
,
context
=
None
,
**
kwargs
):
data
=
str
(
orig
)
data
=
bytes
(
orig
)
xlsy
=
OOOdCommandTransform
(
context
,
filename
,
data
,
self
.
inputs
[
0
])
xlsx
=
xlsy
.
convertTo
(
'xlsx'
)
if
cache
is
not
None
:
...
...
bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_getRelatedDocumentList.py
View file @
d55ed003
...
...
@@ -41,6 +41,6 @@ if relation_id == 'all':
for
obj
in
(
predecessor_value_list
+
successor_value_list
+
similar_value_list
):
dic
[
obj
]
=
None
return
dic
.
keys
(
)
return
list
(
dic
.
keys
()
)
return
[]
# failover - undefined relation
bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/FCKeditor_getSetReferenceUrl.py
View file @
d55ed003
...
...
@@ -5,10 +5,7 @@ if brain.getValidationState() == 'embedded':
else
:
reference
=
brain
.
getReference
()
return
unicode
(
"javascript:SelectFile('%s?format=%s')"
%
(
return
"javascript:SelectFile('%s?format=%s')"
%
(
reference
.
replace
(
"'"
,
"
\
\
'"
),
context
.
getPortalObject
().
portal_preferences
.
getPreferredImageFormat
()
),
'utf-8'
,
)
\ No newline at end of file
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testERP5WebWithDms.py
View file @
d55ed003
...
...
@@ -31,8 +31,8 @@ import unittest
import
os
import
quopri
import
functools
import
io
import
requests
from
six.moves
import
cStringIO
as
StringIO
from
lxml
import
etree
from
base64
import
b64decode
,
b64encode
from
email.parser
import
Parser
as
EmailParser
...
...
@@ -51,7 +51,7 @@ from six.moves import range
LANGUAGE_LIST
=
(
'en'
,
'fr'
,
'de'
,
'bg'
,)
IMAGE_COMPARE_TOLERANCE
=
850
XSMALL_SVG_IMAGE_ICON_DATA
=
'''<svg width="30" height="35" xmlns="http://www.w3.org/2000/svg">
XSMALL_SVG_IMAGE_ICON_DATA
=
b
'''<svg width="30" height="35" xmlns="http://www.w3.org/2000/svg">
<path d="m5,5l15,0l0,5l5,0l0,20l-20,0z" stroke-width="1.5" stroke="gray" fill="skyblue"/>
<path d="m6,29l8,-8l5,5l2,-2l3,3l0,2z" stroke-width="0" fill="green"/>
<path d="m25,10l0,-1l-4,-4l-1,0l0,5z" stroke-width="1.5" stroke="gray" fill="white"/>
...
...
@@ -73,11 +73,6 @@ def makeFilePath(name):
from
Products.ERP5
import
tests
return
os
.
path
.
join
(
tests
.
__path__
[
0
],
'test_data'
,
name
)
def
makeFileUpload
(
name
,
as_name
=
None
):
if
as_name
is
None
:
as_name
=
name
path
=
makeFilePath
(
name
)
return
FileUpload
(
path
,
as_name
)
def
process_image
(
image
,
size
=
(
40
,
40
)):
# open the images to compare, resize them, and convert to grayscale
...
...
@@ -85,6 +80,7 @@ def process_image(image, size=(40, 40)):
image
=
Image
.
open
(
image
)
return
list
(
image
.
resize
(
size
).
convert
(
"L"
).
getdata
())
def
compare_image
(
image_data_1
,
image_data_2
):
""" Find the total difference in RGB value for all pixels in the images
and return the "amount" of differences that the 2 images contains. """
...
...
@@ -92,6 +88,7 @@ def compare_image(image_data_1, image_data_2):
data2
=
process_image
(
image_data_2
)
return
abs
(
sum
([
data1
[
x
]
-
data2
[
x
]
for
x
in
range
(
len
(
data1
))]))
def
customScript
(
script_id
,
script_param
,
script_code
):
def
wrapper
(
func
):
@
functools
.
wraps
(
func
)
...
...
@@ -113,11 +110,10 @@ def customScript(script_id, script_param, script_code):
return
wrapped
return
wrapper
class
TestERP5WebWithDms
(
ERP5TypeTestCase
,
ZopeTestCase
.
Functional
):
"""Test for erp5_web business template.
"""
run_all_test
=
1
quiet
=
0
manager_username
=
'zope'
manager_password
=
'zope'
website_id
=
'test'
...
...
@@ -125,7 +121,7 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
def
getTitle
(
self
):
return
"ERP5WebWithDms"
def
login
(
self
,
quiet
=
0
,
run
=
run_all_test
):
def
login
(
self
):
uf
=
self
.
getPortal
().
acl_users
uf
.
_doAddUser
(
self
.
manager_username
,
self
.
manager_password
,
[
'Manager'
],
[])
user
=
uf
.
getUserById
(
self
.
manager_username
).
__of__
(
uf
)
...
...
@@ -157,9 +153,18 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self
.
tic
()
def
beforeTearDown
(
self
):
return
self
.
clearModule
(
self
.
portal
.
web_site_module
)
self
.
clearModule
(
self
.
portal
.
web_page_module
)
def
makeFileUpload
(
self
,
name
,
as_name
=
None
):
if
as_name
is
None
:
as_name
=
name
path
=
makeFilePath
(
name
)
fu
=
FileUpload
(
path
,
as_name
)
self
.
addCleanup
(
fu
.
close
)
return
fu
def
setupWebSite
(
self
,
**
kw
):
"""
Setup Web Site
...
...
@@ -229,28 +234,24 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
return
webpage_list
def
test_01_WebPageVersioning
(
self
,
quiet
=
quiet
,
run
=
run_all_test
):
def
test_01_WebPageVersioning
(
self
):
"""
Simple Case of showing the proper most recent public Web Page based on
(language, version)
"""
if
not
run
:
return
if
not
quiet
:
message
=
'
\
n
test_01_WebPageVersioning'
ZopeTestCase
.
_print
(
message
)
portal
=
self
.
getPortal
()
self
.
setupWebSite
()
websection
=
self
.
setupWebSection
()
page_reference
=
'default-webpage-versionning'
self
.
setupWebSitePages
(
prefix
=
page_reference
)
self
.
setupWebSitePages
(
prefix
=
page_reference
)
# set default web page for section
found_by_reference
=
portal
.
portal_catalog
(
reference
=
page_reference
,
language
=
'en'
,
portal_type
=
'Web Page'
)
found_by_reference
=
portal
.
portal_catalog
(
reference
=
page_reference
,
language
=
'en'
,
portal_type
=
'Web Page'
)
en_01
=
found_by_reference
[
0
].
getObject
()
# set it as default web page for section
websection
.
edit
(
categories_list
=
[
'aggregate/%s'
%
en_01
.
getRelativeUrl
(),])
websection
.
edit
(
categories_list
=
[
'aggregate/%s'
%
en_01
.
getRelativeUrl
(),])
self
.
assertEqual
([
en_01
.
getReference
(),],
websection
.
getAggregateReferenceList
())
...
...
@@ -275,15 +276,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self
.
assertEqual
(
'0.2'
,
default_document
.
getVersion
())
self
.
assertEqual
(
'published'
,
default_document
.
getValidationState
())
def
test_02_WebSectionAuthorizationForced
(
self
,
quiet
=
quiet
,
run
=
run_all_test
):
def
test_02_WebSectionAuthorizationForced
(
self
):
""" Check that when a document is requested within a Web Section we have a chance to
require user to login.
Whether or not an user will login is controlled by a property on Web Section (authorization_forced).
"""
if
not
run
:
return
if
not
quiet
:
message
=
'
\
n
test_02_WebSectionAuthorizationForced'
ZopeTestCase
.
_print
(
message
)
request
=
self
.
app
.
REQUEST
website
=
self
.
setupWebSite
()
websection
=
self
.
setupWebSection
()
...
...
@@ -319,25 +316,19 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self
.
logout
()
self
.
assertRaises
(
Unauthorized
,
websection
.
_getExtensibleContent
,
request
,
document_reference
)
def
test_03_LatestContent
(
self
,
quiet
=
quiet
,
run
=
run_all_test
):
def
test_03_LatestContent
(
self
):
""" Test latest content for a Web Section. Test different use case like languaeg, workflow state.
"""
if
not
run
:
return
if
not
quiet
:
message
=
'
\
n
test_03_LatestContent'
ZopeTestCase
.
_print
(
message
)
portal
=
self
.
getPortal
()
self
.
setupWebSite
()
websection
=
self
.
setupWebSection
()
portal_categories
=
portal
.
portal_categories
publication_section_category_id_list
=
[
'documentation'
,
'administration'
]
for
category_id
in
publication_section_category_id_list
:
portal_categories
.
publication_section
.
newContent
(
portal_type
=
'Category'
,
id
=
category_id
)
#set predicate on web section using 'publication_section'
websection
.
edit
(
membership_criterion_base_category
=
[
'publication_section'
],
membership_criterion_category
=
[
'publication_section/%s'
%
publication_section_category_id_list
[
0
]])
portal_categories
.
publication_section
.
newContent
(
portal_type
=
'Category'
,
id
=
category_id
)
# set predicate on web section using 'publication_section'
websection
.
edit
(
membership_criterion_base_category
=
[
'publication_section'
],
membership_criterion_category
=
[
'publication_section/%s'
%
publication_section_category_id_list
[
0
]])
self
.
tic
()
self
.
assertEqual
(
0
,
len
(
websection
.
getDocumentValueList
()))
...
...
@@ -370,15 +361,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self
.
assertEqual
(
1
,
len
(
websection
.
getDocumentValueList
()))
self
.
assertEqual
(
web_page_en
,
websection
.
getDocumentValueList
()[
0
].
getObject
())
def
test_04_WebSectionAuthorizationForcedForDefaultDocument
(
self
,
quiet
=
quiet
,
run
=
run_all_test
):
def
test_04_WebSectionAuthorizationForcedForDefaultDocument
(
self
):
""" Check that when a Web Section contains a default document not accessible by user we have a chance to
require user to login.
Whether or not an user will login is controlled by a property on Web Section (authorization_forced).
"""
if
not
run
:
return
if
not
quiet
:
message
=
'
\
n
test_04_WebSectionAuthorizationForcedForDefaultDocument'
ZopeTestCase
.
_print
(
message
)
self
.
setupWebSite
()
websection
=
self
.
setupWebSection
()
web_page_reference
=
'default-document-reference'
...
...
@@ -429,15 +416,11 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self
.
commit
()
self
.
assertEqual
(
5
,
len
(
websection
.
getDocumentValueList
(
limit
=
5
)))
def
test_05_deadProxyFields
(
self
,
quiet
=
quiet
,
run
=
run_all_test
):
def
test_05_deadProxyFields
(
self
):
"""
check that all proxy fields defined in business templates have a valid
target
"""
if
not
run
:
return
if
not
quiet
:
message
=
'
\
n
test_05_deadProxyFields'
ZopeTestCase
.
_print
(
message
)
skins_tool
=
self
.
portal
.
portal_skins
for
field_path
,
field
in
skins_tool
.
ZopeFind
(
skins_tool
,
obj_metatypes
=
[
'ProxyField'
],
search_sub
=
1
):
...
...
@@ -481,7 +464,7 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self
.
assertEqual
(
modification_date
,
last_modified_header
)
# Upload a presentation with 3 pages.
upload_file
=
makeFileUpload
(
'P-DMS-Presentation.3.Pages-001-en.odp'
)
upload_file
=
self
.
makeFileUpload
(
'P-DMS-Presentation.3.Pages-001-en.odp'
)
document
=
document_module
.
newContent
(
portal_type
=
'Presentation'
,
file
=
upload_file
)
reference
=
'P-DMS-Presentation.3.Pages'
...
...
@@ -538,7 +521,7 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
document_reference
=
'NXD-Presentation'
document_module
=
portal
.
getDefaultModule
(
portal_type
=
'Presentation'
)
upload_file
=
makeFileUpload
(
'P-DMS-Presentation.3.Pages-001-en.odp'
)
upload_file
=
self
.
makeFileUpload
(
'P-DMS-Presentation.3.Pages-001-en.odp'
)
document
=
document_module
.
newContent
(
portal_type
=
'Presentation'
,
reference
=
document_reference
,
file
=
upload_file
)
...
...
@@ -546,7 +529,7 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
image_reference
=
'NXD-IMAGE'
image_module
=
portal
.
getDefaultModule
(
portal_type
=
'Image'
)
upload_file
=
makeFileUpload
(
'tiolive-ERP5.Freedom.TioLive.Logo-001-en.png'
)
upload_file
=
self
.
makeFileUpload
(
'tiolive-ERP5.Freedom.TioLive.Logo-001-en.png'
)
image
=
image_module
.
newContent
(
portal_type
=
'Image'
,
file
=
upload_file
,
reference
=
image_reference
)
...
...
@@ -558,15 +541,14 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
web_page_reference
,
credential
)
self
.
assertEqual
(
response
.
getHeader
(
'content-type'
),
'text/html; charset=utf-8'
)
self
.
assertIn
(
'<form'
,
response
.
getBody
())
# means the web_page
# is rendered in web_site context
# means the web_page is rendered in web_site context
self
.
assertIn
(
b'<form'
,
response
.
getBody
())
response
=
self
.
publish
(
website
.
absolute_url_path
()
+
'/'
+
\
web_page_reference
,
credential
)
self
.
assertEqual
(
response
.
getHeader
(
'content-type'
),
'text/html; charset=utf-8'
)
self
.
assertIn
(
'<form'
,
response
.
getBody
())
# means the web_page
# is rendered in web_site context
self
.
assertIn
(
b'<form'
,
response
.
getBody
())
response
=
self
.
publish
(
website
.
absolute_url_path
()
+
'/'
+
\
web_page_reference
+
'?format=pdf'
,
credential
)
...
...
@@ -645,7 +627,7 @@ class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
self
.
assertEqual
(
modification_date
,
last_modified_header
)
# Upload a presentation with 3 pages.
upload_file
=
makeFileUpload
(
'P-DMS-Presentation.3.Pages-001-en.odp'
)
upload_file
=
self
.
makeFileUpload
(
'P-DMS-Presentation.3.Pages-001-en.odp'
)
document
=
document_module
.
newContent
(
portal_type
=
'Presentation'
,
file
=
upload_file
)
reference
=
'P-DMS-Presentation-001-.3.Pages'
...
...
@@ -713,7 +695,7 @@ return True
website
.
newContent
(
portal_type
=
web_section_portal_type
)
document_reference
=
'tiolive-ERP5.Freedom.TioLive'
upload_file
=
makeFileUpload
(
'tiolive-ERP5.Freedom.TioLive-001-en.odp'
)
upload_file
=
self
.
makeFileUpload
(
'tiolive-ERP5.Freedom.TioLive-001-en.odp'
)
document
=
self
.
portal
.
document_module
.
newContent
(
portal_type
=
'Presentation'
,
reference
=
document_reference
,
...
...
@@ -727,7 +709,7 @@ return True
credential
)
self
.
assertTrue
(
response
.
getHeader
(
'content-type'
).
startswith
(
'text/html'
))
html
=
response
.
getBody
()
self
.
assert
True
(
'<img'
in
html
,
html
)
self
.
assert
In
(
b'<img'
,
html
)
# find the img src
img_list
=
etree
.
HTML
(
html
).
findall
(
'.//img'
)
...
...
@@ -739,7 +721,7 @@ return True
credential
)
self
.
assertEqual
(
response
.
getHeader
(
'content-type'
),
'image/png'
)
png
=
response
.
getBody
()
self
.
assertTrue
(
png
.
startswith
(
'
\
x89
PNG'
))
self
.
assertTrue
(
png
.
startswith
(
b
'
\
x89
PNG'
))
# then publish the document and access it anonymously by reference through
# the web site
...
...
@@ -751,7 +733,7 @@ return True
website
.
absolute_url_path
(),
document_reference
))
self
.
assertTrue
(
response
.
getHeader
(
'content-type'
).
startswith
(
'text/html'
))
html
=
response
.
getBody
()
self
.
assert
True
(
'<img'
in
html
,
html
)
self
.
assert
In
(
b'<img'
,
html
)
# find the img src
img_list
=
etree
.
HTML
(
html
).
findall
(
'.//img'
)
...
...
@@ -763,7 +745,7 @@ return True
website
.
absolute_url_path
(),
document_reference
,
src
))
self
.
assertEqual
(
response
.
getHeader
(
'content-type'
),
'image/png'
)
png
=
response
.
getBody
()
self
.
assertTrue
(
png
.
startswith
(
'
\
x89
PNG'
))
self
.
assertTrue
(
png
.
startswith
(
b
'
\
x89
PNG'
))
# Now purge cache and let Anonymous user converting the document.
self
.
login
()
...
...
@@ -773,7 +755,7 @@ return True
website
.
absolute_url_path
(),
document_reference
))
self
.
assertTrue
(
response
.
getHeader
(
'content-type'
).
startswith
(
'text/html'
))
html
=
response
.
getBody
()
self
.
assert
True
(
'<img'
in
html
,
html
)
self
.
assert
In
(
b'<img'
,
html
)
# find the img src
img_list
=
etree
.
HTML
(
html
).
findall
(
'.//img'
)
...
...
@@ -805,10 +787,9 @@ return True
text_content
=
content
)
web_page
.
publish
()
image_reference
=
'NXD-IMAGE'
module
=
portal
.
getDefaultModule
(
portal_type
=
image_portal_type
)
upload_file
=
makeFileUpload
(
'tiolive-ERP5.Freedom.TioLive.Logo-001-en.png'
)
upload_file
=
self
.
makeFileUpload
(
'tiolive-ERP5.Freedom.TioLive.Logo-001-en.png'
)
image
=
module
.
newContent
(
portal_type
=
image_portal_type
,
file
=
upload_file
,
reference
=
image_reference
)
...
...
@@ -878,7 +859,7 @@ return True
"""
portal
=
self
.
portal
module
=
portal
.
getDefaultModule
(
portal_type
=
portal_type
)
upload_file
=
makeFileUpload
(
'%s.svg'
%
filename
)
upload_file
=
self
.
makeFileUpload
(
'%s.svg'
%
filename
)
image
=
module
.
newContent
(
portal_type
=
portal_type
,
file
=
upload_file
,
reference
=
"NXD-DOCUMENT"
)
...
...
@@ -887,10 +868,10 @@ return True
self
.
assertEqual
(
image
.
getContentType
(),
'image/svg+xml'
)
mime
,
converted_data
=
image
.
convert
(
"png"
)
self
.
assertEqual
(
mime
,
'image/png'
)
expected_image
=
makeFileUpload
(
'%s.png'
%
filename
)
expected_image
=
self
.
makeFileUpload
(
'%s.png'
%
filename
)
# Compare images and accept some minimal difference,
difference_value
=
compare_image
(
String
IO
(
converted_data
),
expected_image
)
difference_value
=
compare_image
(
io
.
Bytes
IO
(
converted_data
),
expected_image
)
self
.
assertTrue
(
difference_value
<
IMAGE_COMPARE_TOLERANCE
,
"Conversion from svg to png create one too small image, "
+
\
"so it failed to download the image. (%s >= %s)"
%
(
difference_value
,
...
...
@@ -902,8 +883,8 @@ return True
"""
portal
=
self
.
portal
module
=
portal
.
getDefaultModule
(
portal_type
=
portal_type
)
upload_file
=
makeFileUpload
(
'user-TESTSVG-CASE-URL-TEMPLATE.svg'
)
svg_content
=
upload_file
.
read
().
replace
(
"REPLACE_THE_URL_HERE"
,
image_url
)
upload_file
=
self
.
makeFileUpload
(
'user-TESTSVG-CASE-URL-TEMPLATE.svg'
)
svg_content
=
upload_file
.
read
().
replace
(
b"REPLACE_THE_URL_HERE"
,
image_url
.
encode
()
)
# Add image using data instead file this time as it is not the goal of
# This test assert this topic.
...
...
@@ -917,10 +898,10 @@ return True
self
.
assertEqual
(
image
.
getContentType
(),
'image/svg+xml'
)
mime
,
converted_data
=
image
.
convert
(
"png"
)
self
.
assertEqual
(
mime
,
'image/png'
)
expected_image
=
makeFileUpload
(
'user-TESTSVG-CASE-URL.png'
)
expected_image
=
self
.
makeFileUpload
(
'user-TESTSVG-CASE-URL.png'
)
# Compare images and accept some minimal difference,
difference_value
=
compare_image
(
String
IO
(
converted_data
),
expected_image
)
difference_value
=
compare_image
(
io
.
Bytes
IO
(
converted_data
),
expected_image
)
self
.
assertTrue
(
difference_value
<
IMAGE_COMPARE_TOLERANCE
,
"Conversion from svg to png create one too small image, "
+
\
"so it failed to download the image. (%s >= %s)"
%
(
difference_value
,
...
...
@@ -944,7 +925,7 @@ return True
"""
portal
=
self
.
portal
module
=
portal
.
getDefaultModule
(
portal_type
=
portal_type
)
upload_file
=
makeFileUpload
(
'user-TESTSVG-BACKGROUND-IMAGE.png'
)
upload_file
=
self
.
makeFileUpload
(
'user-TESTSVG-BACKGROUND-IMAGE.png'
)
background_image
=
module
.
newContent
(
portal_type
=
portal_type
,
file
=
upload_file
,
reference
=
"NXD-BACKGROUND"
)
...
...
@@ -965,14 +946,13 @@ return True
"""
portal
=
self
.
portal
module
=
portal
.
getDefaultModule
(
portal_type
=
portal_type
)
upload_file
=
makeFileUpload
(
'user-TESTSVG-CASE-URL-TEMPLATE.svg'
)
svg_content
=
upload_file
.
read
().
replace
(
"REPLACE_THE_URL_HERE"
,
"http://soidjsoidjqsoijdqsoidjqsdoijsqd.idjsijds/../user-XXX-XXX"
)
upload_file
=
makeFileUpload
(
'user-TESTSVG-CASE-URL-TEMPLATE.svg'
)
svg2_content
=
upload_file
.
read
().
replace
(
"REPLACE_THE_URL_HERE"
,
"https://www.erp5.com/usXXX-XXX"
)
upload_file
=
self
.
makeFileUpload
(
'user-TESTSVG-CASE-URL-TEMPLATE.svg'
)
svg_content
=
upload_file
.
read
().
replace
(
b"REPLACE_THE_URL_HERE"
,
b"http://soidjsoidjqsoijdqsoidjqsdoijsqd.idjsijds/../user-XXX-XXX"
)
upload_file
=
self
.
makeFileUpload
(
'user-TESTSVG-CASE-URL-TEMPLATE.svg'
)
svg2_content
=
upload_file
.
read
().
replace
(
b"REPLACE_THE_URL_HERE"
,
b"https://www.erp5.com/usXXX-XXX"
)
# Add image using data instead file this time as it is not the goal of
# This test assert this topic.
...
...
@@ -1677,7 +1657,7 @@ return True
break
else
:
raise
LookupError
(
"No action with reference 'web_view' found"
)
assert
action
.
getVisible
()
is
1
self
.
assertTrue
(
action
.
getVisible
())
# check when the file is empty
document_object
=
portal
[
module_id
].
newContent
(
portal_type
=
portal_type
)
...
...
@@ -1689,6 +1669,10 @@ return True
document_object
.
getId
())
response_a
=
self
.
publish
(
path
)
action
.
setVisible
(
0
)
def
cleanup
():
action
.
setVisible
(
1
)
self
.
tic
()
self
.
addCleanup
(
cleanup
)
self
.
tic
()
response_b
=
self
.
publish
(
path
)
self
.
assertNotEqual
(
response_a
.
getBody
(),
response_b
.
getBody
())
...
...
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