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
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
erp5
Commits
c3304c6f
Commit
c3304c6f
authored
Jan 09, 2019
by
Romain Courteaud
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ERP5/WebSite] Allow document to be indexed when accessed from language temp web site
parent
7a5286f5
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
256 additions
and
1 deletion
+256
-1
bt5/erp5_web/TestTemplateItem/portal_components/test.erp5.testWebSiteLanguage.py
...teItem/portal_components/test.erp5.testWebSiteLanguage.py
+121
-0
bt5/erp5_web/TestTemplateItem/portal_components/test.erp5.testWebSiteLanguage.xml
...eItem/portal_components/test.erp5.testWebSiteLanguage.xml
+121
-0
bt5/erp5_web/bt/template_test_id_list
bt5/erp5_web/bt/template_test_id_list
+1
-0
bt5/erp5_web/bt/test_dependency_list
bt5/erp5_web/bt/test_dependency_list
+4
-0
product/ERP5/Document/WebSite.py
product/ERP5/Document/WebSite.py
+9
-1
No files found.
bt5/erp5_web/TestTemplateItem/portal_components/test.erp5.testWebSiteLanguage.py
0 → 100644
View file @
c3304c6f
##############################################################################
#
# Copyright (c) 2019 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
import
unittest
WEB_SITE_ID
=
"test_language_indexation"
class
TestWebSiteLanguageIndexation
(
ERP5TypeTestCase
):
def
getTitle
(
self
):
return
"Test Web Site Language Indexation."
def
getBusinessTemplateList
(
self
):
return
(
"erp5_base"
,
"erp5_web"
,
"erp5_ui_test_core"
,
"erp5_ui_test"
,
"erp5_l10n_fr"
)
def
setupWebSite
(
self
,
**
kw
):
"""
Setup Web Site
"""
if
WEB_SITE_ID
in
self
.
portal
.
web_site_module
:
self
.
portal
.
web_site_module
.
manage_delObjects
(
WEB_SITE_ID
)
website
=
self
.
portal
.
web_site_module
.
newContent
(
portal_type
=
"Web Site"
,
id
=
WEB_SITE_ID
,
available_language_list
=
[
'en'
,
'fr'
],
**
kw
)
website
.
publish
()
return
website
def
assertDocumentIndexed
(
self
,
doc
,
expected_result
):
sql_foo_list
=
self
.
portal
.
portal_catalog
(
relative_url
=
doc
.
getRelativeUrl
())
self
.
assertEquals
(
len
(
sql_foo_list
),
int
(
expected_result
))
def
test_isSubtreeIndexable
(
self
):
web_site
=
self
.
setupWebSite
()
self
.
tic
()
# Check that web site itself is indexable
self
.
assertDocumentIndexed
(
web_site
,
True
)
# Test that document created in the context of a web site
# is correctly indexed
foo_module
=
web_site
.
restrictedTraverse
(
'foo_module'
)
foo
=
foo_module
.
newContent
(
portal_type
=
'Foo'
)
self
.
tic
()
self
.
assertDocumentIndexed
(
foo
,
True
)
# Test that document created in an "asContext" web site
# is not indexed
foo_module
=
web_site
.
asContext
().
restrictedTraverse
(
'foo_module'
)
foo
=
foo_module
.
newContent
(
portal_type
=
'Foo'
)
self
.
tic
()
self
.
assertDocumentIndexed
(
foo
,
False
)
# Test that document created in the context of a temp web site
# is not indexed
tmp_web_site
=
web_site
.
getParentValue
().
newContent
(
temp_object
=
True
,
portal_type
=
'Web Site'
)
foo_module
=
tmp_web_site
.
restrictedTraverse
(
'foo_module'
)
foo
=
foo_module
.
newContent
(
portal_type
=
'Foo'
)
self
.
tic
()
self
.
assertDocumentIndexed
(
foo
,
False
)
# Test that document created in the context of a temp web section
# is not indexed
web_section
=
web_site
.
newContent
(
temp_object
=
True
,
portal_type
=
'Web Section'
)
foo_module
=
web_section
.
restrictedTraverse
(
'foo_module'
)
foo
=
foo_module
.
newContent
(
portal_type
=
'Foo'
)
self
.
tic
()
self
.
assertDocumentIndexed
(
foo
,
False
)
# Test that document created in the context of a temp web site
# for language is correctly indexed
foo_module
=
web_site
.
restrictedTraverse
(
'fr/foo_module'
)
foo
=
foo_module
.
newContent
(
portal_type
=
'Foo'
)
self
.
tic
()
self
.
assertDocumentIndexed
(
foo
,
True
)
# Test that document created in the context of a temp web site
# for language inside a temp web site is not indexed
foo_module
=
web_site
.
asContext
().
restrictedTraverse
(
'fr/foo_module'
)
foo
=
foo_module
.
newContent
(
portal_type
=
'Foo'
)
self
.
tic
()
self
.
assertDocumentIndexed
(
foo
,
False
)
bt5/erp5_web/TestTemplateItem/portal_components/test.erp5.testWebSiteLanguage.xml
0 → 100644
View file @
c3304c6f
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_recorded_property_dict
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testWebSiteLanguage
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string>
Check indexation of documents created/modified in a temporary web site
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testWebSiteLanguage
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.patches.WorkflowTool"
/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
bt5/erp5_web/bt/template_test_id_list
0 → 100644
View file @
c3304c6f
test.erp5.testWebSiteLanguage
\ No newline at end of file
bt5/erp5_web/bt/test_dependency_list
0 → 100644
View file @
c3304c6f
erp5_full_text_mroonga_catalog
erp5_ui_test_core
erp5_ui_test
erp5_l10n_fr
\ No newline at end of file
product/ERP5/Document/WebSite.py
View file @
c3304c6f
...
...
@@ -185,9 +185,17 @@ class WebSite(WebSection):
query_string
=
request
.
get
(
'QUERY_STRING'
)
if
query_string
:
request
[
'minimum_language_redirect_url'
]
+=
'?'
+
query_string
return
self
.
getOriginalDocument
().
asContext
(
id
=
name
)
return
self
.
getOriginalDocument
().
asContext
(
id
=
name
,
__language_web_site
=
True
)
return
WebSection
.
getExtensibleContent
(
self
,
request
,
name
)
security
.
declarePublic
(
'isSubtreeIndexable'
)
def
isSubtreeIndexable
(
self
):
if
self
.
isTempObject
()
and
getattr
(
self
,
'__language_web_site'
,
False
):
# temp Web Site used to select a language must not prevent
# document indexation
return
self
.
aq_inner
.
aq_parent
.
isSubtreeIndexable
()
return
super
(
WebSite
,
self
).
isSubtreeIndexable
()
def
_getExtensibleContent
(
self
,
request
,
name
):
"""
Legacy API
...
...
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