Merge remote-tracking branch 'paperless/dev' into feature-consume-eml

This commit is contained in:
phail
2022-05-03 17:42:56 +02:00
30 changed files with 8286 additions and 1685 deletions

View File

@@ -676,28 +676,33 @@ class RemoteVersionView(GenericAPIView):
def get(self, request, format=None):
remote_version = "0.0.0"
is_greater_than_current = False
current_version = packaging_version.parse(version.__full_version_str__)
# TODO: this can likely be removed when frontend settings are saved to DB
feature_is_set = settings.ENABLE_UPDATE_CHECK != "default"
if feature_is_set and settings.ENABLE_UPDATE_CHECK:
try:
with urllib.request.urlopen(
"https://api.github.com/repos/"
+ "paperless-ngx/paperless-ngx/releases/latest",
) as response:
req = urllib.request.Request(
"https://api.github.com/repos/paperless-ngx/"
"paperless-ngx/releases/latest",
)
# Ensure a JSON response
req.add_header("Accept", "application/json")
with urllib.request.urlopen(req) as response:
remote = response.read().decode("utf-8")
try:
remote_json = json.loads(remote)
remote_version = remote_json["tag_name"].replace("ngx-", "")
remote_version = remote_json["tag_name"].removeprefix("ngx-")
except ValueError:
logger.debug("An error occured parsing remote version json")
logger.debug("An error occurred parsing remote version json")
except urllib.error.URLError:
logger.debug("An error occured checking for available updates")
logger.debug("An error occurred checking for available updates")
current_version = ".".join([str(_) for _ in version.__version__[:3]])
is_greater_than_current = packaging_version.parse(
remote_version,
) > packaging_version.parse(
current_version,
is_greater_than_current = (
packaging_version.parse(
remote_version,
)
> current_version
)
return Response(

View File

@@ -11,6 +11,6 @@ class ApiVersionMiddleware:
if request.user.is_authenticated:
versions = settings.REST_FRAMEWORK["ALLOWED_VERSIONS"]
response["X-Api-Version"] = versions[len(versions) - 1]
response["X-Version"] = ".".join([str(_) for _ in version.__version__])
response["X-Version"] = version.__full_version_str__
return response

View File

@@ -1 +1,8 @@
__version__ = (1, 7, 0)
from typing import Final
from typing import Tuple
__version__: Final[Tuple[int, int, int]] = (1, 7, 0)
# Version string like X.Y.Z
__full_version_str__: Final[str] = ".".join(map(str, __version__))
# Version string like X.Y
__major_minor_version_str__: Final[str] = ".".join(map(str, __version__[:-1]))