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 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:
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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",
|
||||||
|
|
Loading…
Reference in a new issue