Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ietf/api/management/commands/makeresources.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@


import os
import datetime
import collections
import io

Expand All @@ -14,6 +13,7 @@
from django.core.management.base import AppCommand
from django.db import models
from django.template import Template, Context
from django.utils import timezone

from tastypie.resources import ModelResource

Expand Down Expand Up @@ -89,7 +89,7 @@ def handle_app_config(self, app, **options):
info = dict(
app=app.name,
app_label=app.label,
date=datetime.datetime.now()
date=timezone.now()
)
new_models = {}
for model, rclass_name in missing_resources:
Expand Down
5 changes: 3 additions & 2 deletions ietf/bin/send-scheduled-mail
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# This script requires that the proper virtual python environment has been
# invoked before start

import datetime, os, sys
import os, sys
import syslog

# boilerplate
Expand All @@ -16,6 +16,7 @@ syslog.openlog(os.path.basename(__file__), syslog.LOG_PID, syslog.LOG_USER)

import django
django.setup()
from django.utils import timezone

from ietf.utils.mail import log_smtp_exception, send_error_email
from smtplib import SMTPException
Expand All @@ -32,7 +33,7 @@ from ietf.message.models import SendQueue

mode = sys.argv[1]

now = datetime.datetime.now()
now = timezone.now()

needs_sending = SendQueue.objects.filter(sent_at=None).select_related("message")
if mode == "specific":
Expand Down
5 changes: 3 additions & 2 deletions ietf/community/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import get_object_or_404, render
from django.contrib.auth.decorators import login_required
from django.utils import timezone
from django.utils.html import strip_tags

import debug # pyflakes:ignore
Expand Down Expand Up @@ -218,7 +219,7 @@ def feed(request, username=None, acronym=None, group_type=None):
significant = request.GET.get('significant', '') == '1'

documents = docs_tracked_by_community_list(clist).values_list('pk', flat=True)
since = datetime.datetime.now() - datetime.timedelta(days=14)
since = timezone.now() - datetime.timedelta(days=14)

events = DocEvent.objects.filter(
doc__id__in=documents,
Expand All @@ -243,7 +244,7 @@ def feed(request, username=None, acronym=None, group_type=None):
'title': title,
'subtitle': subtitle,
'id': feed_id.urn,
'updated': datetime.datetime.now(),
'updated': timezone.now(),
}, content_type='text/xml')


Expand Down
3 changes: 2 additions & 1 deletion ietf/doc/expire.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@


from django.conf import settings
from django.utils import timezone

import datetime, os, shutil, glob, re
from pathlib import Path
Expand Down Expand Up @@ -62,7 +63,7 @@ def get_expired_drafts():

def in_draft_expire_freeze(when=None):
if when == None:
when = datetime.datetime.now()
when = timezone.now()

meeting = Meeting.objects.filter(type='ietf', date__gte=when-datetime.timedelta(days=7)).order_by('date').first()

Expand Down
8 changes: 5 additions & 3 deletions ietf/doc/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from typing import Optional # pyflakes:ignore

from django.conf import settings
from django.utils import timezone

from ietf.doc.models import ( Document, DocEvent, NewRevisionDocEvent, DocAlias, State, DocumentAuthor,
StateDocEvent, BallotPositionDocEvent, BallotDocEvent, BallotType, IRSGBallotDocEvent, TelechatDocEvent,
Expand Down Expand Up @@ -38,7 +39,7 @@ class Meta:
rev = '00'
std_level_id = None # type: Optional[str]
intended_std_level_id = None
time = datetime.datetime.now()
time = timezone.now()
expires = factory.LazyAttribute(lambda o: o.time+datetime.timedelta(days=settings.INTERNET_DRAFT_DAYS_TO_EXPIRE))
pages = factory.fuzzy.FuzzyInteger(2,400)

Expand Down Expand Up @@ -357,7 +358,8 @@ class TelechatDocEventFactory(DocEventFactory):
class Meta:
model = TelechatDocEvent

telechat_date = datetime.datetime.today()+datetime.timedelta(days=14)
# note: this is evaluated at import time and not updated - all events will have the same telechat_date
telechat_date = timezone.now()+datetime.timedelta(days=14)
type = 'scheduled_for_telechat'

class NewRevisionDocEventFactory(DocEventFactory):
Expand Down Expand Up @@ -410,7 +412,7 @@ class IRSGBallotDocEventFactory(BallotDocEventFactory):
class Meta:
model = IRSGBallotDocEvent

duedate = datetime.datetime.now() + datetime.timedelta(days=14)
duedate = timezone.now() + datetime.timedelta(days=14)
ballot_type = factory.SubFactory(BallotTypeFactory, slug='irsg-approve')

class BallotPositionDocEventFactory(DocEventFactory):
Expand Down
3 changes: 2 additions & 1 deletion ietf/doc/feeds.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from django.urls import reverse as urlreverse
from django.template.defaultfilters import truncatewords, truncatewords_html, date as datefilter
from django.template.defaultfilters import linebreaks # type: ignore
from django.utils import timezone
from django.utils.html import strip_tags

from ietf.doc.models import Document, State, LastCallDocEvent, DocEvent
Expand Down Expand Up @@ -135,7 +136,7 @@ def items(self):
if self.year:
rfc_events = DocEvent.objects.filter(type='published_rfc',time__year=self.year).order_by('-time')
else:
cutoff = datetime.datetime.now() - datetime.timedelta(days=8)
cutoff = timezone.now() - datetime.timedelta(days=8)
rfc_events = DocEvent.objects.filter(type='published_rfc',time__gte=cutoff).order_by('-time')
results = [(e.doc, e.time) for e in rfc_events]
for doc,time in results:
Expand Down
5 changes: 3 additions & 2 deletions ietf/doc/mails.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from django.utils.html import strip_tags
from django.conf import settings
from django.urls import reverse as urlreverse
from django.utils import timezone
from django.utils.encoding import force_text

import debug # pyflakes:ignore
Expand Down Expand Up @@ -418,7 +419,7 @@ def generate_issue_ballot_mail(request, doc, ballot):

e = doc.latest_event(LastCallDocEvent, type="sent_last_call")
last_call_expires = e.expires if e else None
last_call_has_expired = last_call_expires and last_call_expires < datetime.datetime.now()
last_call_has_expired = last_call_expires and last_call_expires < timezone.now()

return render_to_string("doc/mail/issue_iesg_ballot_mail.txt",
dict(doc=doc,
Expand All @@ -437,7 +438,7 @@ def _send_irsg_ballot_email(request, doc, ballot, subject, template):
(to, cc) = gather_address_lists('irsg_ballot_issued', doc=doc)
sender = 'IESG Secretary <iesg-secretary@ietf.org>'

ballot_expired = ballot.duedate < datetime.datetime.now()
ballot_expired = ballot.duedate < timezone.now()
active_ballot = doc.active_ballot()
if active_ballot is None:
needed_bps = ''
Expand Down
3 changes: 2 additions & 1 deletion ietf/doc/management/commands/generate_draft_aliases.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

from django.conf import settings
from django.core.management.base import BaseCommand
from django.utils import timezone

import debug # pyflakes:ignore

Expand Down Expand Up @@ -101,7 +102,7 @@ class Command(BaseCommand):
'that have seen activity in the last %s years.' % (DEFAULT_YEARS))

def handle(self, *args, **options):
show_since = datetime.datetime.now() - datetime.timedelta(DEFAULT_YEARS*365)
show_since = timezone.now() - datetime.timedelta(DEFAULT_YEARS*365)

date = time.strftime("%Y-%m-%d_%H:%M:%S")
signature = '# Generated by %s at %s\n' % (os.path.abspath(__file__), date)
Expand Down
3 changes: 2 additions & 1 deletion ietf/doc/management/commands/generate_draft_bibxml_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from django.conf import settings
from django.core.management.base import BaseCommand
from django.template.loader import render_to_string
from django.utils import timezone

import debug # pyflakes:ignore

Expand Down Expand Up @@ -68,7 +69,7 @@ def handle(self, *args, **options):
if process_all:
doc_events = NewRevisionDocEvent.objects.filter(type='new_revision', doc__type_id='draft')
else:
start = datetime.datetime.now() - datetime.timedelta(days=days)
start = timezone.now() - datetime.timedelta(days=days)
doc_events = NewRevisionDocEvent.objects.filter(type='new_revision', doc__type_id='draft', time__gte=start)
doc_events = doc_events.order_by('time')

Expand Down
39 changes: 39 additions & 0 deletions ietf/doc/migrations/0045_use_timezone_now_for_doc_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Generated by Django 2.2.28 on 2022-07-12 11:24

from django.db import migrations, models
import django.utils.timezone


class Migration(migrations.Migration):

dependencies = [
('doc', '0044_procmaterials_states'),
]

operations = [
migrations.AlterField(
model_name='deletedevent',
name='time',
field=models.DateTimeField(default=django.utils.timezone.now),
),
migrations.AlterField(
model_name='docevent',
name='time',
field=models.DateTimeField(db_index=True, default=django.utils.timezone.now, help_text='When the event happened'),
),
migrations.AlterField(
model_name='dochistory',
name='time',
field=models.DateTimeField(default=django.utils.timezone.now),
),
migrations.AlterField(
model_name='document',
name='time',
field=models.DateTimeField(default=django.utils.timezone.now),
),
migrations.AlterField(
model_name='documentactionholder',
name='time_added',
field=models.DateTimeField(default=django.utils.timezone.now),
),
]
11 changes: 6 additions & 5 deletions ietf/doc/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from django.urls import reverse as urlreverse
from django.contrib.contenttypes.models import ContentType
from django.conf import settings
from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.html import mark_safe # type:ignore

Expand Down Expand Up @@ -85,7 +86,7 @@ class Meta:

class DocumentInfo(models.Model):
"""Any kind of document. Draft, RFC, Charter, IPR Statement, Liaison Statement"""
time = models.DateTimeField(default=datetime.datetime.now) # should probably have auto_now=True
time = models.DateTimeField(default=timezone.now) # should probably have auto_now=True

type = ForeignKey(DocTypeName, blank=True, null=True) # Draft, Agenda, Minutes, Charter, Discuss, Guideline, Email, Review, Issue, Wiki, External ...
title = models.CharField(max_length=255, validators=[validate_no_control_chars, ])
Expand Down Expand Up @@ -682,7 +683,7 @@ class DocumentActionHolder(models.Model):
"""Action holder for a document"""
document = ForeignKey('Document')
person = ForeignKey(Person)
time_added = models.DateTimeField(default=datetime.datetime.now)
time_added = models.DateTimeField(default=timezone.now)

CLEAR_ACTION_HOLDERS_STATES = ['approved', 'ann', 'rfcqueue', 'pub', 'dead'] # draft-iesg state slugs
GROUP_ROLES_OF_INTEREST = ['chair', 'techadv', 'editor', 'secr']
Expand Down Expand Up @@ -838,7 +839,7 @@ def past_telechat_date(self):

def previous_telechat_date(self):
"Return the most recent telechat date in the past, if any (even if there's another in the future)"
e = self.latest_event(TelechatDocEvent, type="scheduled_for_telechat", telechat_date__lt=datetime.datetime.now())
e = self.latest_event(TelechatDocEvent, type="scheduled_for_telechat", telechat_date__lt=timezone.now())
return e.telechat_date if e else None

def request_closed_time(self, review_req):
Expand Down Expand Up @@ -1208,7 +1209,7 @@ class DocReminder(models.Model):

class DocEvent(models.Model):
"""An occurrence for a document, used for tracking who, when and what."""
time = models.DateTimeField(default=datetime.datetime.now, help_text="When the event happened", db_index=True)
time = models.DateTimeField(default=timezone.now, help_text="When the event happened", db_index=True)
type = models.CharField(max_length=50, choices=EVENT_TYPES)
by = ForeignKey(Person)
doc = ForeignKey(Document)
Expand Down Expand Up @@ -1388,7 +1389,7 @@ class DeletedEvent(models.Model):
content_type = ForeignKey(ContentType)
json = models.TextField(help_text="Deleted object in JSON format, with attribute names chosen to be suitable for passing into the relevant create method.")
by = ForeignKey(Person)
time = models.DateTimeField(default=datetime.datetime.now)
time = models.DateTimeField(default=timezone.now)

def __str__(self):
return u"%s by %s %s" % (self.content_type, self.by, self.time)
Expand Down
11 changes: 6 additions & 5 deletions ietf/doc/templatetags/ietf_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.urls import NoReverseMatch
from django.utils import timezone

import debug # pyflakes:ignore

Expand Down Expand Up @@ -318,7 +319,7 @@ def timesince_days(date):
"""Returns the number of days since 'date' (relative to now)"""
if date.__class__ is not datetime.datetime:
date = datetime.datetime(date.year, date.month, date.day)
delta = datetime.datetime.now() - date
delta = timezone.now() - date
return delta.days

@register.filter
Expand Down Expand Up @@ -637,19 +638,19 @@ def action_holder_badge(action_holder):
>>> action_holder_badge(DocumentActionHolderFactory())
''

>>> action_holder_badge(DocumentActionHolderFactory(time_added=datetime.datetime.now() - datetime.timedelta(days=15)))
>>> action_holder_badge(DocumentActionHolderFactory(time_added=timezone.now() - datetime.timedelta(days=15)))
''

>>> action_holder_badge(DocumentActionHolderFactory(time_added=datetime.datetime.now() - datetime.timedelta(days=16)))
>>> action_holder_badge(DocumentActionHolderFactory(time_added=timezone.now() - datetime.timedelta(days=16)))
'<span class="badge bg-danger" title="In state for 16 days; goal is &lt;15 days."><i class="bi bi-clock-fill"></i> 16</span>'

>>> action_holder_badge(DocumentActionHolderFactory(time_added=datetime.datetime.now() - datetime.timedelta(days=30)))
>>> action_holder_badge(DocumentActionHolderFactory(time_added=timezone.now() - datetime.timedelta(days=30)))
'<span class="badge bg-danger" title="In state for 30 days; goal is &lt;15 days."><i class="bi bi-clock-fill"></i> 30</span>'

>>> settings.DOC_ACTION_HOLDER_AGE_LIMIT_DAYS = old_limit
"""
age_limit = settings.DOC_ACTION_HOLDER_AGE_LIMIT_DAYS
age = (datetime.datetime.now() - action_holder.time_added).days
age = (timezone.now() - action_holder.time_added).days
if age > age_limit:
return mark_safe(
'<span class="badge bg-danger" title="In state for %d day%s; goal is &lt;%d days."><i class="bi bi-clock-fill"></i> %d</span>'
Expand Down
Loading