Set timezone for creation and modification dates of comments
This commit is contained in:
parent
dd0255fd5d
commit
16123e268b
@ -2,6 +2,7 @@ from AccessControl import getSecurityManager
|
|||||||
from AccessControl import Unauthorized
|
from AccessControl import Unauthorized
|
||||||
from Acquisition import aq_inner
|
from Acquisition import aq_inner
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from datetime import timezone
|
||||||
from DateTime import DateTime
|
from DateTime import DateTime
|
||||||
from plone.app.discussion import _
|
from plone.app.discussion import _
|
||||||
from plone.app.discussion.browser.validator import CaptchaValidator
|
from plone.app.discussion.browser.validator import CaptchaValidator
|
||||||
@ -192,8 +193,8 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
|
|||||||
setattr(comment, attribute, data[attribute])
|
setattr(comment, attribute, data[attribute])
|
||||||
|
|
||||||
# Set dates
|
# Set dates
|
||||||
comment.creation_date = datetime.utcnow()
|
comment.creation_date = datetime.now(timezone.utc)
|
||||||
comment.modification_date = datetime.utcnow()
|
comment.modification_date = datetime.now(timezone.utc)
|
||||||
|
|
||||||
# Get author name and email
|
# Get author name and email
|
||||||
comment.author_name, comment.author_email = self.get_author(data)
|
comment.author_name, comment.author_email = self.get_author(data)
|
||||||
|
@ -6,6 +6,7 @@ from Acquisition import aq_base
|
|||||||
from Acquisition import aq_parent
|
from Acquisition import aq_parent
|
||||||
from Acquisition import Implicit
|
from Acquisition import Implicit
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from datetime import timezone
|
||||||
from OFS.owner import Owned
|
from OFS.owner import Owned
|
||||||
from OFS.role import RoleManager
|
from OFS.role import RoleManager
|
||||||
from OFS.Traversable import Traversable
|
from OFS.Traversable import Traversable
|
||||||
@ -119,7 +120,7 @@ class Comment(
|
|||||||
# IConversation.addComment().
|
# IConversation.addComment().
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.creation_date = self.modification_date = datetime.utcnow()
|
self.creation_date = self.modification_date = datetime.now(timezone.utc)
|
||||||
self.mime_type = "text/plain"
|
self.mime_type = "text/plain"
|
||||||
|
|
||||||
user = getSecurityManager().getUser()
|
user = getSecurityManager().getUser()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<metadata>
|
<metadata>
|
||||||
<version>2000</version>
|
<version>2001</version>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>profile-plone.resource:default</dependency>
|
<dependency>profile-plone.resource:default</dependency>
|
||||||
<dependency>profile-plone.app.registry:default</dependency>
|
<dependency>profile-plone.app.registry:default</dependency>
|
||||||
|
@ -2,6 +2,8 @@ from plone.app.discussion.interfaces import IDiscussionSettings
|
|||||||
from plone.registry.interfaces import IRegistry
|
from plone.registry.interfaces import IRegistry
|
||||||
from Products.CMFCore.utils import getToolByName
|
from Products.CMFCore.utils import getToolByName
|
||||||
from zope.component import getUtility
|
from zope.component import getUtility
|
||||||
|
from plone import api
|
||||||
|
from datetime import timezone
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@ -77,3 +79,24 @@ def add_js_to_plone_legacy(context):
|
|||||||
def extend_review_workflow(context):
|
def extend_review_workflow(context):
|
||||||
"""Apply changes made to review workflow."""
|
"""Apply changes made to review workflow."""
|
||||||
upgrade_comment_workflows_retain_current_workflow(context)
|
upgrade_comment_workflows_retain_current_workflow(context)
|
||||||
|
|
||||||
|
|
||||||
|
def set_timezone_on_dates(context):
|
||||||
|
"""Ensure timezone data is stored against all creation/modified dates"""
|
||||||
|
pc = api.portal.get_tool('portal_catalog')
|
||||||
|
creations = 0
|
||||||
|
modifieds = 0
|
||||||
|
logger.info('Setting timezone information on comment dates')
|
||||||
|
comments = pc.search({'Type': 'Comment'})
|
||||||
|
for cbrain in comments:
|
||||||
|
comment = cbrain.getObject()
|
||||||
|
if not comment.creation_date.tzinfo:
|
||||||
|
creations += 1
|
||||||
|
comment.creation_date = \
|
||||||
|
comment.creation_date.astimezone(timezone.utc)
|
||||||
|
if not comment.modification_date.tzinfo:
|
||||||
|
modifieds += 1
|
||||||
|
comment.modification_date = \
|
||||||
|
comment.modification_date.astimezone(timezone.utc)
|
||||||
|
logger.info('Updated %i creation dates and %i modification dates' %
|
||||||
|
(creations, modifieds))
|
||||||
|
@ -88,4 +88,15 @@
|
|||||||
handler=".upgrades.upgrade_comment_workflows" />
|
handler=".upgrades.upgrade_comment_workflows" />
|
||||||
</genericsetup:upgradeSteps>
|
</genericsetup:upgradeSteps>
|
||||||
|
|
||||||
|
<genericsetup:upgradeSteps
|
||||||
|
source="2000"
|
||||||
|
destination="2001"
|
||||||
|
profile="plone.app.discussion:default">
|
||||||
|
<genericsetup:upgradeStep
|
||||||
|
title="Set timezone on comment dates"
|
||||||
|
description="Ensure the timezone is set for comment dates"
|
||||||
|
handler=".upgrades.set_timezone_on_dates"
|
||||||
|
/>
|
||||||
|
</genericsetup:upgradeSteps>
|
||||||
|
|
||||||
</configure>
|
</configure>
|
||||||
|
Loading…
Reference in New Issue
Block a user