Merge tag '0.2.1' into develop
Fix for cal events without timezone info
This commit is contained in:
commit
28b4c2c659
6 changed files with 21 additions and 11 deletions
|
@ -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:
|
||||
"""
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#########
|
||||
|
||||
# env setup
|
||||
ovd_version="0.2.0"
|
||||
ovd_version="0.2.1"
|
||||
export DEBIAN_FRONTEND="noninteractive"
|
||||
set -e
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "ovdashboard-ui",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
|
|
Loading…
Reference in a new issue