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 functools
import logging import logging
from datetime import datetime from datetime import UTC, datetime
from typing import Annotated, Self from typing import Annotated, Self
from pydantic import BaseModel, ConfigDict, StringConstraints from pydantic import AfterValidator, BaseModel, ConfigDict, StringConstraints
from vobject.base import Component from vobject.base import Component
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
type StrippedStr = Annotated[str, StringConstraints(strip_whitespace=True)] 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 @functools.total_ordering
class CalEvent(BaseModel): class CalEvent(BaseModel):
""" """
@ -31,8 +41,8 @@ class CalEvent(BaseModel):
summary: StrippedStr = "" summary: StrippedStr = ""
description: StrippedStr = "" description: StrippedStr = ""
dtstart: datetime = datetime.now() dtstart: UTCDateTime = datetime.now(UTC)
dtend: datetime = datetime.now() dtend: UTCDateTime = datetime.now(UTC)
def __lt__(self, other: Self) -> bool: def __lt__(self, other: Self) -> bool:
""" """

View file

@ -1,5 +1,5 @@
import logging import logging
from datetime import datetime, timedelta from datetime import UTC, datetime, timedelta
from typing import cast from typing import cast
from asyncify import asyncify from asyncify import asyncify
@ -69,7 +69,7 @@ class CalDAV:
_logger.info(f"downloading {calendar_name!r} ...") _logger.info(f"downloading {calendar_name!r} ...")
dt_start = datetime.combine( dt_start = datetime.combine(
datetime.now().date(), datetime.now(UTC).date(),
datetime.min.time(), datetime.min.time(),
) )
dt_end = dt_start + timedelta(days=cfg.calendar.future_days) 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 = "" description = ""
include = ["ovdashboard_api/skel/*"] include = ["ovdashboard_api/skel/*"]
name = "ovdashboard_api" name = "ovdashboard_api"
version = "0.2.0" version = "0.2.1"
[tool.poetry.dependencies] [tool.poetry.dependencies]
Markdown = "^3.5.1" Markdown = "^3.5.1"
@ -25,8 +25,8 @@ webdavclient3 = "^3.14.6"
black = "^23.11.0" black = "^23.11.0"
flake8 = "^6.1.0" flake8 = "^6.1.0"
flake8-isort = "^6.1.1" flake8-isort = "^6.1.1"
types-cachetools = "^5.3.0.7"
pytest = "^7.4.3" pytest = "^7.4.3"
types-cachetools = "^5.3.0.7"
[tool.poetry.scripts] [tool.poetry.scripts]
ovdashboard-api = "ovdashboard_api.main:main" ovdashboard-api = "ovdashboard_api.main:main"

View file

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

View file

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

View file

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