Skip to content

Commit 3879c21

Browse files
Copilothumitos
andauthored
revert: remove TextChoices enum changes from builds and projects constants
Agent-Logs-Url: https://github.com/readthedocs/readthedocs.org/sessions/0029c9eb-3d6c-47a5-be0b-8da81dcc8e68 Co-authored-by: humitos <244656+humitos@users.noreply.github.com>
1 parent 864ce72 commit 3879c21

2 files changed

Lines changed: 102 additions & 146 deletions

File tree

readthedocs/builds/constants.py

Lines changed: 48 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,73 @@
11
"""Constants for the builds app."""
22

33
from django.conf import settings
4-
from django.db import models
54
from django.utils.translation import gettext_lazy as _
65

76

8-
class BuildState(models.TextChoices):
9-
"""Internal state of a build.
10-
11-
This is not to be confused with external representations of 'status'
12-
that are sent back to Git providers.
13-
"""
14-
15-
TRIGGERED = "triggered", _("Triggered")
16-
CLONING = "cloning", _("Cloning")
17-
INSTALLING = "installing", _("Installing")
18-
BUILDING = "building", _("Building")
19-
UPLOADING = "uploading", _("Uploading")
20-
FINISHED = "finished", _("Finished")
21-
CANCELLED = "cancelled", _("Cancelled")
22-
23-
24-
# Backward-compatible aliases for BuildState
25-
BUILD_STATE_TRIGGERED = BuildState.TRIGGERED
26-
BUILD_STATE_CLONING = BuildState.CLONING
27-
BUILD_STATE_INSTALLING = BuildState.INSTALLING
28-
BUILD_STATE_BUILDING = BuildState.BUILDING
29-
BUILD_STATE_UPLOADING = BuildState.UPLOADING
30-
BUILD_STATE_FINISHED = BuildState.FINISHED
31-
BUILD_STATE_CANCELLED = BuildState.CANCELLED
32-
33-
BUILD_STATE = BuildState.choices
7+
# BUILD_STATE is our *INTERNAL* representation of build states.
8+
# This is not to be confused with external representations of 'status'
9+
# that are sent back to Git providers.
10+
BUILD_STATE_TRIGGERED = "triggered"
11+
BUILD_STATE_CLONING = "cloning"
12+
BUILD_STATE_INSTALLING = "installing"
13+
BUILD_STATE_BUILDING = "building"
14+
BUILD_STATE_UPLOADING = "uploading"
15+
BUILD_STATE_FINISHED = "finished"
16+
BUILD_STATE_CANCELLED = "cancelled"
17+
18+
BUILD_STATE = (
19+
(BUILD_STATE_TRIGGERED, _("Triggered")),
20+
(BUILD_STATE_CLONING, _("Cloning")),
21+
(BUILD_STATE_INSTALLING, _("Installing")),
22+
(BUILD_STATE_BUILDING, _("Building")),
23+
(BUILD_STATE_UPLOADING, _("Uploading")),
24+
(BUILD_STATE_FINISHED, _("Finished")),
25+
(BUILD_STATE_CANCELLED, _("Cancelled")),
26+
)
3427

3528
BUILD_FINAL_STATES = (
36-
BuildState.FINISHED,
37-
BuildState.CANCELLED,
29+
BUILD_STATE_FINISHED,
30+
BUILD_STATE_CANCELLED,
3831
)
3932

40-
41-
class BuildType(models.TextChoices):
42-
"""Output format type for a build."""
43-
44-
HTML = "html", _("HTML")
45-
PDF = "pdf", _("PDF")
46-
EPUB = "epub", _("Epub")
33+
BUILD_TYPES = (
34+
("html", _("HTML")),
35+
("pdf", _("PDF")),
36+
("epub", _("Epub")),
4737
# There is currently no support for building man/dash formats, but we keep
4838
# it there since the DB might still contain those values for legacy
4939
# projects.
50-
MAN = "man", _("Manpage")
51-
DASH = "dash", _("Dash")
52-
53-
54-
# Backward-compatible alias
55-
BUILD_TYPES = BuildType.choices
40+
("man", _("Manpage")),
41+
("dash", _("Dash")),
42+
)
5643

5744
# Manager name for Internal Versions or Builds.
5845
# ie: Versions and Builds Excluding pull request/merge request Versions and Builds.
5946
INTERNAL = "internal"
47+
# Manager name for External Versions or Builds.
48+
# ie: Only pull request/merge request Versions and Builds.
49+
EXTERNAL = "external"
50+
EXTERNAL_TEXT = _("External")
6051

61-
62-
class VersionType(models.TextChoices):
63-
"""Type of a version."""
64-
65-
BRANCH = "branch", _("Branch")
66-
TAG = "tag", _("Tag")
67-
# Manager name for External Versions or Builds.
68-
# ie: Only pull request/merge request Versions and Builds.
69-
EXTERNAL = "external", _("External")
70-
UNKNOWN = "unknown", _("Unknown")
71-
72-
73-
# Backward-compatible aliases for VersionType
74-
BRANCH = VersionType.BRANCH
52+
BRANCH = "branch"
7553
BRANCH_TEXT = _("Branch")
76-
TAG = VersionType.TAG
54+
TAG = "tag"
7755
TAG_TEXT = _("Tag")
78-
EXTERNAL = VersionType.EXTERNAL
79-
EXTERNAL_TEXT = _("External")
80-
UNKNOWN = VersionType.UNKNOWN
56+
UNKNOWN = "unknown"
8157
UNKNOWN_TEXT = _("Unknown")
8258

83-
VERSION_TYPES = VersionType.choices
84-
85-
86-
class ExternalVersionState(models.TextChoices):
87-
"""State of an external version (pull/merge request)."""
88-
89-
OPEN = "open", _("Open")
90-
CLOSED = "closed", _("Closed")
91-
92-
93-
# Backward-compatible aliases for ExternalVersionState
94-
EXTERNAL_VERSION_STATE_OPEN = ExternalVersionState.OPEN
95-
EXTERNAL_VERSION_STATE_CLOSED = ExternalVersionState.CLOSED
96-
EXTERNAL_VERSION_STATES = ExternalVersionState.choices
59+
VERSION_TYPES = (
60+
(BRANCH, BRANCH_TEXT),
61+
(TAG, TAG_TEXT),
62+
(EXTERNAL, EXTERNAL_TEXT),
63+
(UNKNOWN, UNKNOWN_TEXT),
64+
)
65+
EXTERNAL_VERSION_STATE_OPEN = "open"
66+
EXTERNAL_VERSION_STATE_CLOSED = "closed"
67+
EXTERNAL_VERSION_STATES = (
68+
(EXTERNAL_VERSION_STATE_OPEN, _("Open")),
69+
(EXTERNAL_VERSION_STATE_CLOSED, _("Closed")),
70+
)
9771

9872
LATEST = settings.RTD_LATEST
9973
LATEST_VERBOSE_NAME = settings.RTD_LATEST_VERBOSE_NAME

readthedocs/projects/constants.py

Lines changed: 54 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import os
99
import re
1010

11-
from django.db import models
1211
from django.utils.translation import gettext_lazy as _
1312

1413

@@ -89,18 +88,13 @@
8988
# TODO: Remove this since we only have 1 type.
9089
REPO_CHOICES = ((REPO_TYPE_GIT, _("Git")),)
9190

91+
PUBLIC = "public"
92+
PRIVATE = "private"
9293

93-
class Privacy(models.TextChoices):
94-
"""Privacy level for a project or version."""
95-
96-
PUBLIC = "public", _("Public")
97-
PRIVATE = "private", _("Private")
98-
99-
100-
# Backward-compatible aliases for Privacy
101-
PUBLIC = Privacy.PUBLIC
102-
PRIVATE = Privacy.PRIVATE
103-
PRIVACY_CHOICES = Privacy.choices
94+
PRIVACY_CHOICES = (
95+
(PUBLIC, _("Public")),
96+
(PRIVATE, _("Private")),
97+
)
10498

10599
IMPORTANT_VERSION_FILTERS = {
106100
"slug": "important",
@@ -391,70 +385,58 @@ class Privacy(models.TextChoices):
391385
GITHUB_BRAND = "GitHub"
392386
GITLAB_BRAND = "GitLab"
393387

388+
# SSL statuses
389+
SSL_STATUS_VALID = "valid"
390+
SSL_STATUS_INVALID = "invalid"
391+
SSL_STATUS_PENDING = "pending"
392+
SSL_STATUS_UNKNOWN = "unknown"
393+
SSL_STATUS_CHOICES = (
394+
(SSL_STATUS_VALID, _("Valid and active")),
395+
(SSL_STATUS_INVALID, _("Invalid")),
396+
(SSL_STATUS_PENDING, _("Pending")),
397+
(SSL_STATUS_UNKNOWN, _("Unknown")),
398+
)
394399

395-
class SSLStatus(models.TextChoices):
396-
"""SSL certificate status for a custom domain."""
397-
398-
VALID = "valid", _("Valid and active")
399-
INVALID = "invalid", _("Invalid")
400-
PENDING = "pending", _("Pending")
401-
UNKNOWN = "unknown", _("Unknown")
402-
403-
404-
# Backward-compatible aliases for SSLStatus
405-
SSL_STATUS_VALID = SSLStatus.VALID
406-
SSL_STATUS_INVALID = SSLStatus.INVALID
407-
SSL_STATUS_PENDING = SSLStatus.PENDING
408-
SSL_STATUS_UNKNOWN = SSLStatus.UNKNOWN
409-
SSL_STATUS_CHOICES = SSLStatus.choices
410-
411-
412-
class VersioningScheme(models.TextChoices):
413-
"""URL scheme for serving documentation."""
414-
415-
MULTIPLE_VERSIONS_WITH_TRANSLATIONS = (
416-
"multiple_versions_with_translations",
400+
MULTIPLE_VERSIONS_WITH_TRANSLATIONS = "multiple_versions_with_translations"
401+
MULTIPLE_VERSIONS_WITHOUT_TRANSLATIONS = "multiple_versions_without_translations"
402+
SINGLE_VERSION_WITHOUT_TRANSLATIONS = "single_version_without_translations"
403+
VERSIONING_SCHEME_CHOICES = (
404+
(
405+
MULTIPLE_VERSIONS_WITH_TRANSLATIONS,
417406
_("Multiple versions with translations (/<language>/<version>/<filename>)"),
418-
)
419-
MULTIPLE_VERSIONS_WITHOUT_TRANSLATIONS = (
420-
"multiple_versions_without_translations",
407+
),
408+
(
409+
MULTIPLE_VERSIONS_WITHOUT_TRANSLATIONS,
421410
_("Multiple versions without translations (/<version>/<filename>)"),
422-
)
423-
SINGLE_VERSION_WITHOUT_TRANSLATIONS = (
424-
"single_version_without_translations",
411+
),
412+
(
413+
SINGLE_VERSION_WITHOUT_TRANSLATIONS,
425414
_("Single version without translations (/<filename>)"),
426-
)
427-
428-
429-
# Backward-compatible aliases for VersioningScheme
430-
MULTIPLE_VERSIONS_WITH_TRANSLATIONS = VersioningScheme.MULTIPLE_VERSIONS_WITH_TRANSLATIONS
431-
MULTIPLE_VERSIONS_WITHOUT_TRANSLATIONS = VersioningScheme.MULTIPLE_VERSIONS_WITHOUT_TRANSLATIONS
432-
SINGLE_VERSION_WITHOUT_TRANSLATIONS = VersioningScheme.SINGLE_VERSION_WITHOUT_TRANSLATIONS
433-
VERSIONING_SCHEME_CHOICES = VersioningScheme.choices
434-
435-
436-
class FlyoutSorting(models.TextChoices):
437-
"""Sorting algorithm for the version flyout."""
438-
439-
ALPHABETICALLY = "alphabetically", _("Alphabetically")
440-
# Compatibility to keep the behavior of the old flyout.
441-
# This isn't a good algorithm, but it's a way to keep the old behavior in case we need it.
442-
SEMVER_READTHEDOCS_COMPATIBLE = "semver-readthedocs-compatible", _("SemVer (Read the Docs)")
443-
# https://pypi.org/project/packaging/
444-
PYTHON_PACKAGING = "python-packaging", _("Python Packaging (PEP 440 and PEP 425)")
445-
CALVER = "calver", _("CalVer (YYYY.0M.0M)")
446-
# Let the user to define a custom pattern and use BumpVer to parse and sort the versions.
447-
# https://github.com/mbarkhau/bumpver#pattern-examples
448-
CUSTOM_PATTERN = "custom-pattern", _("Define your own pattern")
449-
450-
451-
# Backward-compatible aliases for FlyoutSorting
452-
ADDONS_FLYOUT_SORTING_ALPHABETICALLY = FlyoutSorting.ALPHABETICALLY
453-
ADDONS_FLYOUT_SORTING_SEMVER_READTHEDOCS_COMPATIBLE = FlyoutSorting.SEMVER_READTHEDOCS_COMPATIBLE
454-
ADDONS_FLYOUT_SORTING_PYTHON_PACKAGING = FlyoutSorting.PYTHON_PACKAGING
455-
ADDONS_FLYOUT_SORTING_CALVER = FlyoutSorting.CALVER
456-
ADDONS_FLYOUT_SORTING_CUSTOM_PATTERN = FlyoutSorting.CUSTOM_PATTERN
457-
ADDONS_FLYOUT_SORTING_CHOICES = FlyoutSorting.choices
415+
),
416+
)
417+
418+
419+
ADDONS_FLYOUT_SORTING_ALPHABETICALLY = "alphabetically"
420+
# Compatibility to keep the behavior of the old flyout.
421+
# This isn't a good algorithm, but it's a way to keep the old behavior in case we need it.
422+
ADDONS_FLYOUT_SORTING_SEMVER_READTHEDOCS_COMPATIBLE = "semver-readthedocs-compatible"
423+
# https://pypi.org/project/packaging/
424+
ADDONS_FLYOUT_SORTING_PYTHON_PACKAGING = "python-packaging"
425+
ADDONS_FLYOUT_SORTING_CALVER = "calver"
426+
# Let the user to define a custom pattern and use BumpVer to parse and sort the versions.
427+
# https://github.com/mbarkhau/bumpver#pattern-examples
428+
ADDONS_FLYOUT_SORTING_CUSTOM_PATTERN = "custom-pattern"
429+
430+
ADDONS_FLYOUT_SORTING_CHOICES = (
431+
(ADDONS_FLYOUT_SORTING_ALPHABETICALLY, _("Alphabetically")),
432+
(ADDONS_FLYOUT_SORTING_SEMVER_READTHEDOCS_COMPATIBLE, _("SemVer (Read the Docs)")),
433+
(
434+
ADDONS_FLYOUT_SORTING_PYTHON_PACKAGING,
435+
_("Python Packaging (PEP 440 and PEP 425)"),
436+
),
437+
(ADDONS_FLYOUT_SORTING_CALVER, _("CalVer (YYYY.0M.0M)")),
438+
(ADDONS_FLYOUT_SORTING_CUSTOM_PATTERN, _("Define your own pattern")),
439+
)
458440

459441
ADDONS_FLYOUT_POSITION_BOTTOM_LEFT = "bottom-left"
460442
ADDONS_FLYOUT_POSITION_BOTTOM_RIGHT = "bottom-right"

0 commit comments

Comments
 (0)