Локализация отображения дат [closes #35]

master
Антон Касимов 2019-05-18 14:31:29 +03:00
parent aa103b5382
commit 95c18e3e3f
6 changed files with 29 additions and 12 deletions

View File

@ -1,8 +1,15 @@
from babel import dates
from datetime import date
from pyramid.events import subscriber
from pyramid.events import BeforeRender
@subscriber(BeforeRender)
def add_global(event):
import datetime
event['datetime'] = datetime
dates.LC_TIME = event['request'].locale_name
event['globals'] = {
'format_date': dates.format_date,
'format_datetime': dates.format_datetime,
'today': date.today(),
}

View File

@ -11,8 +11,8 @@
<a href="{{item[0]}}" class="btn btn-primary">Читать</a>
</div>
<div class="card-footer"><small class=text-muted">
Опубликовано {{item[1].page['published']}}
{%- if item[1].page['updated'] %}, обновлено {{item[1].page['updated']}}{% endif %}
Опубликовано {{globals.format_date(item[1].page['published'], format='long')}}
{%- if item[1].page['updated'] %}, обновлено {{globals.format_date(item[1].page['updated'], format='long')}}{% endif %}
</small></div>
</div>
{% endfor %}

View File

@ -56,8 +56,8 @@
<h1 class="page-title">{{title}}</h1>
{%- if description %}<p class="page-lead">{{description}}</p>{% endif %}
<div class="row">
{%- if published %}<p class="col-6 col-sm-4 col-md-3"><i class="fas fa-calendar-day"></i> {{published}}</p>{% endif %}
{%- if updated %}<p class="col-6 col-sm-4 col-md-3"><i class="fas fa-edit"></i> {{updated}}</p>{% endif %}
{%- if published %}<p class="col-6 col-sm-4 col-md-3"><i class="fas fa-calendar-day"></i> {{globals.format_date(published, format='long')}}</p>{% endif %}
{%- if updated %}<p class="col-6 col-sm-4 col-md-3"><i class="fas fa-edit"></i> {{globals.format_date(updated, format='long')}}</p>{% endif %}
</div>
</div>
</div>

9
tests/conftest.py Normal file
View File

@ -0,0 +1,9 @@
import pytest
@pytest.fixture
def fake_request():
from pyramid.testing import DummyRequest
return DummyRequest()

7
tests/test_events.py Normal file
View File

@ -0,0 +1,7 @@
def test_globals(fake_request):
from flatfilecms.events import add_global
event = {'request': fake_request}
add_global(event)
assert 'globals' in event
assert 'format_date' in event['globals']
assert 'format_datetime' in event['globals']

View File

@ -15,12 +15,6 @@ def pages(current_directory):
str(current_directory / 'data'))
@pytest.fixture
def fake_request():
from pyramid.testing import DummyRequest
return DummyRequest()
@pytest.fixture
def config(current_directory):
from pyramid.testing import testConfig