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
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Cédric Le Ninivin
erp5
Commits
c9e818a1
Commit
c9e818a1
authored
Jan 10, 2023
by
Cédric Le Ninivin
Committed by
Cédric Le Ninivin
Mar 09, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_api_style: WIP Introduce latests indexation timestamp object of the hash
parent
b30a934a
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
146 additions
and
18 deletions
+146
-18
bt5/erp5_api_style/MixinTemplateItem/portal_components/mixin.erp5.JIOAPIRevisionMixin.py
...eItem/portal_components/mixin.erp5.JIOAPIRevisionMixin.py
+22
-15
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Alarm_activateUpdateJIOAPIRevision.py
...pi_jio_sql_revision/Alarm_activateUpdateJIOAPIRevision.py
+5
-0
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zCreatejIOAPIRevisionTable.sql
..._api_jio_sql_revision/Base_zCreatejIOAPIRevisionTable.sql
+1
-0
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zGetFromIOAPIRevisionTable.sql
..._api_jio_sql_revision/Base_zGetFromIOAPIRevisionTable.sql
+1
-1
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zSelectOutdatedjIOAPIRevisionTable.sql
..._sql_revision/Base_zSelectOutdatedjIOAPIRevisionTable.sql
+1
-0
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zSelectOutdatedjIOAPIRevisionTable.xml
..._sql_revision/Base_zSelectOutdatedjIOAPIRevisionTable.xml
+71
-0
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdateTimeStampjIOAPIRevisionTable.sql
...sql_revision/Base_zUpdateTimeStampjIOAPIRevisionTable.sql
+6
-0
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdateTimeStampjIOAPIRevisionTable.xml
...sql_revision/Base_zUpdateTimeStampjIOAPIRevisionTable.xml
+35
-0
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdatejIOAPIRevisionTable.sql
..._api_jio_sql_revision/Base_zUpdatejIOAPIRevisionTable.sql
+2
-1
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdatejIOAPIRevisionTable.xml
..._api_jio_sql_revision/Base_zUpdatejIOAPIRevisionTable.xml
+2
-1
No files found.
bt5/erp5_api_style/MixinTemplateItem/portal_components/mixin.erp5.JIOAPIRevisionMixin.py
View file @
c9e818a1
...
...
@@ -28,6 +28,7 @@
##############################################################################
from
AccessControl
import
ClassSecurityInfo
from
DateTime
import
DateTime
from
MySQLdb
import
ProgrammingError
from
Products.ERP5Type
import
Permissions
...
...
@@ -55,10 +56,10 @@ class JIOAPIRevisionMixin:
result
=
self
.
Base_zGetFromIOAPIRevisionTable
(
uid
=
self
.
getUid
())
except
ProgrammingError
:
# jio_api_revision table is not created
return
None
,
None
return
None
,
None
,
None
if
result
:
return
result
[
0
].
revision
,
result
[
0
].
hash
return
None
,
None
return
result
[
0
].
revision
,
result
[
0
].
hash
,
result
[
0
].
indexation_timestamp
return
None
,
None
,
None
def
_calculateHash
(
self
):
hash_method
=
self
.
getTypeBasedMethod
(
"calculatejIOAPIRevisionHash"
)
...
...
@@ -71,27 +72,33 @@ class JIOAPIRevisionMixin:
"""
Update jIO API Revision
"""
indexation_timestamp
=
int
(
DateTime
(
self
.
getPortalObject
().
portal_catalog
(
uid
=
self
.
getUid
(),
select_list
=
(
'indexation_timestamp'
,)
)[
0
].
indexation_timestamp
))
calculated_hash
=
self
.
_calculateHash
()
if
not
calculated_hash
:
self
.
_unindexJIOAPIRevision
()
return
stored_hash
=
None
_
,
stored_hash
=
self
.
_getJIOAPIRevisionTuple
()
_
,
stored_hash
,
stored_timestamp
=
self
.
_getJIOAPIRevisionTuple
()
stored_timestamp
=
int
(
DateTime
(
stored_timestamp
))
if
stored_hash
==
calculated_hash
:
if
stored_timestamp
!=
indexation_timestamp
:
self
.
Base_zUpdateTimeStampjIOAPIRevisionTable
(
uid
=
self
.
getUid
(),
indexation_timestamp
=
indexation_timestamp
,
)
return
new_revision
=
self
.
Base_getNewjIOAPIRevision
()
try
:
self
.
Base_zUpdatejIOAPIRevisionTable
(
uid
=
self
.
getUid
(),
revision
=
new_revision
,
hash
=
calculated_hash
,
)
except
ProgrammingError
:
# jio_api_revision table is not created
pass
self
.
Base_zUpdatejIOAPIRevisionTable
(
uid
=
self
.
getUid
(),
revision
=
new_revision
,
hash
=
calculated_hash
,
indexation_timestamp
=
indexation_timestamp
,
)
return
security
.
declareProtected
(
Permissions
.
AccessContentsInformation
,
...
...
@@ -102,7 +109,7 @@ class JIOAPIRevisionMixin:
Fixing is not offered as it needs to be centralised to avoid missing a new revision for an object
"""
calculated_hash
=
self
.
_calculateHash
()
_
,
stored_hash
=
self
.
_getJIOAPIRevisionTuple
()
_
,
stored_hash
,
_
=
self
.
_getJIOAPIRevisionTuple
()
if
calculated_hash
!=
stored_hash
:
return
[
self
.
Base_translateString
(
"Stored Hash ${stored_hash} difer from calculated hash ${calculated_hash}"
,
...
...
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Alarm_activateUpdateJIOAPIRevision.py
View file @
c9e818a1
...
...
@@ -22,4 +22,9 @@ object_list = portal.portal_catalog(**kw)
for
element
in
object_list
:
element
.
getObject
().
updateJIOAPIRevision
()
# Catch any objects that might have fell through the cracks
object_list
=
context
.
Base_zSelectOutdatedjIOAPIRevisionTable
()
for
element
in
object_list
:
portal
.
unrestrictedTraverse
(
element
.
relative_url
).
updateJIOAPIRevision
()
context
.
activate
(
after_tag
=
tag
).
getId
()
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zCreatejIOAPIRevisionTable.sql
View file @
c9e818a1
...
...
@@ -2,5 +2,6 @@ CREATE TABLE `jio_api_revision` (
`uid`
BIGINT
UNSIGNED
NOT
NULL
,
`revision`
varchar
(
255
)
NOT
NULL
UNIQUE
,
`hash`
varchar
(
255
),
`indexation_timestamp`
TIMESTAMP
(
6
),
PRIMARY
KEY
(
`uid`
)
)
ENGINE
=
InnoDB
\ No newline at end of file
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zGetFromIOAPIRevisionTable.sql
View file @
c9e818a1
SELECT
revision
,
hash
revision
,
hash
,
indexation_timestamp
FROM
jio_api_revision
WHERE
...
...
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zSelectOutdatedjIOAPIRevisionTable.sql
0 → 100644
View file @
c9e818a1
select
catalog
.
uid
,
catalog
.
relative_url
from
catalog
join
jio_api_revision
on
CAST
(
catalog
.
indexation_timestamp
AS
INT
)
!=
CAST
(
jio_api_revision
.
indexation_timestamp
AS
INT
)
AND
catalog
.
uid
=
jio_api_revision
.
uid
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zSelectOutdatedjIOAPIRevisionTable.xml
0 → 100644
View file @
c9e818a1
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"SQL"
module=
"Products.ZSQLMethods.SQL"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_col
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
name
</string>
</key>
<value>
<string>
uid
</string>
</value>
</item>
<item>
<key>
<string>
null
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
l
</string>
</value>
</item>
<item>
<key>
<string>
width
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key>
<string>
name
</string>
</key>
<value>
<string>
relative_url
</string>
</value>
</item>
<item>
<key>
<string>
null
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
type
</string>
</key>
<value>
<string>
t
</string>
</value>
</item>
<item>
<key>
<string>
width
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
</dictionary>
</list>
</value>
</item>
<item>
<key>
<string>
arguments_src
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
connection_id
</string>
</key>
<value>
<string>
erp5_sql_connection
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Base_zSelectOutdatedjIOAPIRevisionTable
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdateTimeStampjIOAPIRevisionTable.sql
0 → 100644
View file @
c9e818a1
UPDATE
jio_api_revision
SET
indexation_timestamp
=<
dtml
-
sqlvar
indexation_timestamp
type
=
datetime
>
WHERE
<
dtml
-
sqltest
uid
op
=
eq
type
=
int
>
\ No newline at end of file
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdateTimeStampjIOAPIRevisionTable.xml
0 → 100644
View file @
c9e818a1
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"SQL"
module=
"Products.ZSQLMethods.SQL"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_col
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
arguments_src
</string>
</key>
<value>
<string>
uid\n
indexation_timestamp
</string>
</value>
</item>
<item>
<key>
<string>
connection_id
</string>
</key>
<value>
<string>
cmf_activity_sql_connection
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Base_zUpdateTimeStampjIOAPIRevisionTable
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdatejIOAPIRevisionTable.sql
View file @
c9e818a1
...
...
@@ -13,6 +13,7 @@ VALUES
(
<
dtml
-
sqlvar
expr
=
"uid"
type
=
"int"
>
,
<
dtml
-
sqlvar
expr
=
"revision"
type
=
"string"
optional
>
,
<
dtml
-
sqlvar
expr
=
"hash"
type
=
"string"
optional
>
<
dtml
-
sqlvar
expr
=
"hash"
type
=
"string"
optional
>
,
<
dtml
-
sqlvar
expr
=
"indexation_timestamp"
type
=
"datetime"
optional
>
)
bt5/erp5_api_style/SkinTemplateItem/portal_skins/erp5_api_jio_sql_revision/Base_zUpdatejIOAPIRevisionTable.xml
View file @
c9e818a1
...
...
@@ -10,7 +10,8 @@
<key>
<string>
arguments_src
</string>
</key>
<value>
<string>
uid\n
revision\n
hash
</string>
</value>
hash\n
indexation_timestamp
</string>
</value>
</item>
<item>
<key>
<string>
connection_id
</string>
</key>
...
...
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