Fix handling of non-draft services in pro metadata

This commit is contained in:
Théophile Diot 2024-09-30 12:01:34 +02:00
parent b454f2cf86
commit d8c4315c47
No known key found for this signature in database
GPG key ID: FA995104A0BA376A
3 changed files with 12 additions and 2 deletions

View file

@ -115,8 +115,11 @@ try:
"pro_status": "invalid",
"pro_overlapped": False,
"pro_services": 0,
"non_draft_services": 0,
}
metadata = {
"non_draft_services": int(data["service_number"]),
}
metadata = {}
error = False
temp_dir = TMP_DIR.joinpath(str(uuid4()))
@ -160,6 +163,7 @@ try:
if (
pro_license_key == db_metadata.get("pro_license", "")
and metadata.get("is_pro", False) == db_metadata["is_pro"]
and (not metadata.get("pro_overlapped", False) or metadata.get("non_draft_services", 0) == db_metadata.get("non_draft_services", 0))
and db_metadata["last_pro_check"]
and current_date.replace(hour=0, minute=0, second=0, microsecond=0) == db_metadata["last_pro_check"].replace(hour=0, minute=0, second=0, microsecond=0)
):

View file

@ -343,7 +343,9 @@ class Database:
return ""
def set_pro_metadata(self, data: Dict[Literal["is_pro", "pro_license", "pro_expire", "pro_status", "pro_overlapped", "pro_services"], Any] = {}) -> str:
def set_pro_metadata(
self, data: Dict[Literal["is_pro", "pro_license", "pro_expire", "pro_status", "pro_overlapped", "pro_services", "non_draft_services"], Any] = {}
) -> str:
"""Set the pro metadata values"""
with self.__db_session() as session:
if self.readonly:
@ -468,6 +470,7 @@ class Database:
"pro_license": "",
"pro_expire": None,
"pro_services": 0,
"non_draft_services": 0,
"pro_overlapped": False,
"pro_status": "invalid",
"last_pro_check": None,
@ -489,6 +492,7 @@ class Database:
Metadata.pro_license,
Metadata.pro_expire,
Metadata.pro_services,
Metadata.non_draft_services,
Metadata.pro_overlapped,
Metadata.pro_status,
Metadata.last_pro_check,
@ -506,6 +510,7 @@ class Database:
"pro_license": metadata.pro_license,
"pro_expire": metadata.pro_expire,
"pro_services": metadata.pro_services,
"non_draft_services": metadata.non_draft_services,
"pro_overlapped": metadata.pro_overlapped,
"pro_status": metadata.pro_status,
"last_pro_check": metadata.last_pro_check,

View file

@ -238,6 +238,7 @@ class Metadata(Base):
pro_expire = Column(DateTime, nullable=True)
pro_status = Column(PRO_STATUS_ENUM, default="invalid", nullable=False)
pro_services = Column(Integer, default=0, nullable=False)
non_draft_services = Column(Integer, default=0, nullable=False)
pro_overlapped = Column(Boolean, default=False, nullable=False)
last_pro_check = Column(DateTime, nullable=True)
first_config_saved = Column(Boolean, nullable=False)