Refactor timezone logic into methods of Thought
This commit is contained in:
parent
c5dc1cbc05
commit
de79cba49d
|
@ -20,16 +20,6 @@ app = JetforceApplication()
|
||||||
def index(request):
|
def index(request):
|
||||||
thoughts = Thought.objects.order_by("-posted")
|
thoughts = Thought.objects.order_by("-posted")
|
||||||
|
|
||||||
for thought in thoughts:
|
|
||||||
thought.timezone = timezone.get_fixed_timezone(-thought.timezone_offset)
|
|
||||||
offset_hours = -thought.timezone_offset / 60
|
|
||||||
if offset_hours == int(offset_hours):
|
|
||||||
offset_hours = int(offset_hours)
|
|
||||||
if offset_hours > 0:
|
|
||||||
offset_hours = "+" + str(offset_hours)
|
|
||||||
thought.offset_hours = offset_hours
|
|
||||||
|
|
||||||
|
|
||||||
rendered_text = render_to_string("whispermaphone/index.gmi", {
|
rendered_text = render_to_string("whispermaphone/index.gmi", {
|
||||||
"thoughts": thoughts,
|
"thoughts": thoughts,
|
||||||
})
|
})
|
||||||
|
|
|
@ -5,6 +5,7 @@ import magic
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django import forms
|
from django import forms
|
||||||
|
from django.utils import timezone
|
||||||
from django.utils.text import normalize_newlines
|
from django.utils.text import normalize_newlines
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
|
|
||||||
|
@ -24,6 +25,18 @@ class Thought(models.Model):
|
||||||
else:
|
else:
|
||||||
return os.path.splitext(self.media.path)[1][1:]
|
return os.path.splitext(self.media.path)[1][1:]
|
||||||
|
|
||||||
|
def get_timezone(self):
|
||||||
|
return timezone.get_fixed_timezone(-self.timezone_offset)
|
||||||
|
|
||||||
|
def get_offset_hours(self):
|
||||||
|
offset_hours = -self.timezone_offset / 60
|
||||||
|
# Convert 4.0 to 4
|
||||||
|
if offset_hours == int(offset_hours):
|
||||||
|
offset_hours = int(offset_hours)
|
||||||
|
if offset_hours > 0:
|
||||||
|
offset_hours = "+" + str(offset_hours)
|
||||||
|
return str(offset_hours)
|
||||||
|
|
||||||
|
|
||||||
# Honestly I'm so sick of this problem that writing out a comment here to explain why it is necessary is beyond me.
|
# Honestly I'm so sick of this problem that writing out a comment here to explain why it is necessary is beyond me.
|
||||||
# I'm calling this CharField and not MySpecialLineNormalizingCharField
|
# I'm calling this CharField and not MySpecialLineNormalizingCharField
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
{% endif %}{% if thought.media %}
|
{% endif %}{% if thought.media %}
|
||||||
=> gemini://thoughts.learnerpages.com{{ thought.media.url }}{% endif %}{% load tz %}
|
=> gemini://thoughts.learnerpages.com{{ thought.media.url }}{% endif %}{% load tz %}
|
||||||
```
|
```
|
||||||
{% timezone thought.timezone %}{{ thought.posted|time:"g:i a" }} {{ thought.posted|date:"M d, Y" }}, UTC{{ thought.offset_hours }}{% endtimezone %}
|
{% timezone thought.get_timezone %}{{ thought.posted|time:"g:i a" }} {{ thought.posted|date:"M d, Y" }}, UTC{{ thought.get_offset_hours }}{% endtimezone %}
|
||||||
```
|
```
|
||||||
▔▔▔
|
▔▔▔
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -41,11 +41,12 @@
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
<div class="thought-end">
|
<div class="thought-end">
|
||||||
<span class="timestamp">
|
<span class="timestamp">
|
||||||
{% timezone thought.timezone %}
|
{% timezone thought.get_timezone %}
|
||||||
{{ thought.posted|time:"g:i a" }}
|
{{ thought.posted|time:"g:i a" }}
|
||||||
{{ thought.posted|date:"M d, Y" }},
|
{{ thought.posted|date:"M d, Y" }},
|
||||||
|
|
||||||
UTC{{ thought.offset_hours }}
|
UTC{{ thought.get_offset_hours }}
|
||||||
|
{{ thought.get_season }}
|
||||||
{% endtimezone %}
|
{% endtimezone %}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,7 +5,6 @@ import subprocess
|
||||||
import magic
|
import magic
|
||||||
|
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.utils import timezone
|
|
||||||
from django.utils.crypto import constant_time_compare
|
from django.utils.crypto import constant_time_compare
|
||||||
|
|
||||||
from whispermaphone import settings
|
from whispermaphone import settings
|
||||||
|
@ -32,15 +31,6 @@ def index(request):
|
||||||
|
|
||||||
thoughts = Thought.objects.order_by("-posted")
|
thoughts = Thought.objects.order_by("-posted")
|
||||||
|
|
||||||
for thought in thoughts:
|
|
||||||
thought.timezone = timezone.get_fixed_timezone(-thought.timezone_offset)
|
|
||||||
offset_hours = -thought.timezone_offset / 60
|
|
||||||
if offset_hours == int(offset_hours):
|
|
||||||
offset_hours = int(offset_hours)
|
|
||||||
if offset_hours > 0:
|
|
||||||
offset_hours = "+" + str(offset_hours)
|
|
||||||
thought.offset_hours = offset_hours
|
|
||||||
|
|
||||||
return render(request, "whispermaphone/index.html", {
|
return render(request, "whispermaphone/index.html", {
|
||||||
"thoughts": thoughts,
|
"thoughts": thoughts,
|
||||||
"highlighted": highlighted_uuid,
|
"highlighted": highlighted_uuid,
|
||||||
|
|
Loading…
Reference in New Issue