Merge tag '0.2.1' into develop

Fix for cal events without timezone info
This commit is contained in:
Jörn-Michael Miehe 2024-04-24 16:18:32 +02:00
commit 28b4c2c659
6 changed files with 21 additions and 11 deletions

View file

@ -6,16 +6,26 @@ Caches events using `timed_alru_cache`.
import functools
import logging
from datetime import datetime
from datetime import UTC, datetime
from typing import Annotated, Self
from pydantic import BaseModel, ConfigDict, StringConstraints
from pydantic import AfterValidator, BaseModel, ConfigDict, StringConstraints
from vobject.base import Component
_logger = logging.getLogger(__name__)
type StrippedStr = Annotated[str, StringConstraints(strip_whitespace=True)]
def make_utc(v: datetime) -> datetime:
if v.tzinfo is None:
return v.replace(tzinfo=UTC)
return v
type UTCDateTime = Annotated[datetime, AfterValidator(make_utc)]
@functools.total_ordering
class CalEvent(BaseModel):
"""
@ -31,8 +41,8 @@ class CalEvent(BaseModel):
summary: StrippedStr = ""
description: StrippedStr = ""
dtstart: datetime = datetime.now()
dtend: datetime = datetime.now()
dtstart: UTCDateTime = datetime.now(UTC)
dtend: UTCDateTime = datetime.now(UTC)
def __lt__(self, other: Self) -> bool:
"""

View file

@ -1,5 +1,5 @@
import logging
from datetime import datetime, timedelta
from datetime import UTC, datetime, timedelta
from typing import cast
from asyncify import asyncify
@ -69,7 +69,7 @@ class CalDAV:
_logger.info(f"downloading {calendar_name!r} ...")
dt_start = datetime.combine(
datetime.now().date(),
datetime.now(UTC).date(),
datetime.min.time(),
)
dt_end = dt_start + timedelta(days=cfg.calendar.future_days)

View file

@ -3,7 +3,7 @@ authors = ["Jörn-Michael Miehe <jmm@yavook.de>"]
description = ""
include = ["ovdashboard_api/skel/*"]
name = "ovdashboard_api"
version = "0.2.0"
version = "0.2.1"
[tool.poetry.dependencies]
Markdown = "^3.5.1"
@ -25,8 +25,8 @@ webdavclient3 = "^3.14.6"
black = "^23.11.0"
flake8 = "^6.1.0"
flake8-isort = "^6.1.1"
types-cachetools = "^5.3.0.7"
pytest = "^7.4.3"
types-cachetools = "^5.3.0.7"
[tool.poetry.scripts]
ovdashboard-api = "ovdashboard_api.main:main"

View file

@ -11,7 +11,7 @@ services:
- "127.0.0.1:6379:6379"
app:
image: code.yavook.de/oekzident.de/ovdashboard:0.2.0
image: code.yavook.de/oekzident.de/ovdashboard:0.2.1
restart: always
pull_policy: always
depends_on:

View file

@ -5,7 +5,7 @@
#########
# env setup
ovd_version="0.2.0"
ovd_version="0.2.1"
export DEBIAN_FRONTEND="noninteractive"
set -e

View file

@ -1,6 +1,6 @@
{
"name": "ovdashboard-ui",
"version": "0.2.0",
"version": "0.2.1",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",