Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9345854
D8246.id29788.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
7 KB
Subscribers
None
D8246.id29788.diff
View Options
diff --git a/assets/src/bundles/add_forge/index.js b/assets/src/bundles/add_forge/index.js
--- a/assets/src/bundles/add_forge/index.js
+++ b/assets/src/bundles/add_forge/index.js
@@ -24,7 +24,7 @@
'FIRST_ORIGIN_LOADED': 'First origin loaded',
'REJECTED': 'Rejected',
'SUSPENDED': 'Suspended',
- 'DENIED': 'Denied'
+ 'UNSUCCESSFUL': 'Unsuccessful'
};
return status in statusLabel ? statusLabel[status] : status;
}
diff --git a/assets/src/bundles/add_forge/request-dashboard.js b/assets/src/bundles/add_forge/request-dashboard.js
--- a/assets/src/bundles/add_forge/request-dashboard.js
+++ b/assets/src/bundles/add_forge/request-dashboard.js
@@ -105,7 +105,7 @@
'FIRST_ORIGIN_LOADED': [],
'REJECTED': [],
'SUSPENDED': ['PENDING'],
- 'DENIED': []
+ 'UNSUCCESSFUL': []
};
// Determine the possible next status out of the current one
diff --git a/swh/web/add_forge_now/migrations/0007_rename_denied_request_status.py b/swh/web/add_forge_now/migrations/0007_rename_denied_request_status.py
new file mode 100644
--- /dev/null
+++ b/swh/web/add_forge_now/migrations/0007_rename_denied_request_status.py
@@ -0,0 +1,51 @@
+# Generated by Django 2.2.28 on 2022-08-16 14:13
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("swh_web_add_forge_now", "0006_request_add_new_fields"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="request",
+ name="status",
+ field=models.TextField(
+ choices=[
+ ("PENDING", "Pending"),
+ ("WAITING_FOR_FEEDBACK", "Waiting for feedback"),
+ ("FEEDBACK_TO_HANDLE", "Feedback to handle"),
+ ("ACCEPTED", "Accepted"),
+ ("SCHEDULED", "Scheduled"),
+ ("FIRST_LISTING_DONE", "First listing done"),
+ ("FIRST_ORIGIN_LOADED", "First origin loaded"),
+ ("REJECTED", "Rejected"),
+ ("SUSPENDED", "Suspended"),
+ ("UNSUCCESSFUL", "Unsuccessful"),
+ ],
+ default="PENDING",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="requesthistory",
+ name="new_status",
+ field=models.TextField(
+ choices=[
+ ("PENDING", "Pending"),
+ ("WAITING_FOR_FEEDBACK", "Waiting for feedback"),
+ ("FEEDBACK_TO_HANDLE", "Feedback to handle"),
+ ("ACCEPTED", "Accepted"),
+ ("SCHEDULED", "Scheduled"),
+ ("FIRST_LISTING_DONE", "First listing done"),
+ ("FIRST_ORIGIN_LOADED", "First origin loaded"),
+ ("REJECTED", "Rejected"),
+ ("SUSPENDED", "Suspended"),
+ ("UNSUCCESSFUL", "Unsuccessful"),
+ ],
+ null=True,
+ ),
+ ),
+ ]
diff --git a/swh/web/add_forge_now/models.py b/swh/web/add_forge_now/models.py
--- a/swh/web/add_forge_now/models.py
+++ b/swh/web/add_forge_now/models.py
@@ -32,7 +32,7 @@
FIRST_ORIGIN_LOADED = "First origin loaded"
REJECTED = "Rejected"
SUSPENDED = "Suspended"
- DENIED = "Denied"
+ UNSUCCESSFUL = "Unsuccessful"
@classmethod
def choices(cls):
@@ -47,6 +47,7 @@
self.ACCEPTED,
self.REJECTED,
self.SUSPENDED,
+ self.UNSUCCESSFUL,
],
self.ACCEPTED: [self.SCHEDULED],
self.SCHEDULED: [
@@ -58,7 +59,7 @@
self.FIRST_ORIGIN_LOADED: [],
self.REJECTED: [],
self.SUSPENDED: [self.PENDING],
- self.DENIED: [],
+ self.UNSUCCESSFUL: [],
}
return next_statuses[self] # type: ignore
diff --git a/swh/web/templates/add_forge_now/help.html b/swh/web/templates/add_forge_now/help.html
--- a/swh/web/templates/add_forge_now/help.html
+++ b/swh/web/templates/add_forge_now/help.html
@@ -81,7 +81,7 @@
<li><strong>Rejected:</strong>The request is invalid. It is rejected by a moderator with an explanation.</li>
- <li><strong>Denied:</strong>The forge administrator(s) denied the request to list their forge.</li>
+ <li><strong>Unsuccessful:</strong>An issue has been encountered which currently prevents the full archival.</li>
<li><strong>Suspended:</strong>The forge listing is not supported yet.</li>
</ul>
diff --git a/swh/web/tests/add_forge_now/test_migration.py b/swh/web/tests/add_forge_now/test_migration.py
--- a/swh/web/tests/add_forge_now/test_migration.py
+++ b/swh/web/tests/add_forge_now/test_migration.py
@@ -7,6 +7,8 @@
import pytest
+from django.core.exceptions import ValidationError
+
from swh.web.add_forge_now.apps import APP_LABEL
MIGRATION_0001 = "0001_initial"
@@ -14,6 +16,7 @@
MIGRATION_0003 = "0003_request_submitter_forward_username"
MIGRATION_0005 = "0005_prepare_inbound_email"
MIGRATION_0006 = "0006_request_add_new_fields"
+MIGRATION_0007 = "0007_rename_denied_request_status"
def now() -> datetime:
@@ -166,3 +169,45 @@
history = history.order_by("id")
assert request.last_modified_date == history.last().date
assert request.last_moderator == history.last().actor
+
+
+def test_add_forge_now_denied_status_renamed_to_unsuccesful(migrator):
+
+ state = migrator.apply_tested_migration((APP_LABEL, MIGRATION_0006))
+ Request = state.apps.get_model(APP_LABEL, "Request")
+
+ from swh.web.add_forge_now.models import RequestStatus
+
+ req = Request(
+ status=RequestStatus.UNSUCCESSFUL.name,
+ submitter_name="dudess",
+ submitter_email="dudess@orga.org",
+ forge_type="cgit",
+ forge_url="https://example.org/forge",
+ forge_contact_email="forge@example.org",
+ forge_contact_name="forge",
+ forge_contact_comment=(
+ "Discovered on the main forge homepag, following contact link."
+ ),
+ last_modified_date=datetime.now(timezone.utc),
+ )
+ with pytest.raises(ValidationError):
+ req.clean_fields()
+
+ state = migrator.apply_tested_migration((APP_LABEL, MIGRATION_0007))
+ Request = state.apps.get_model(APP_LABEL, "Request")
+
+ req = Request(
+ status=RequestStatus.UNSUCCESSFUL.name,
+ submitter_name="dudess",
+ submitter_email="dudess@orga.org",
+ forge_type="cgit",
+ forge_url="https://example.org/forge",
+ forge_contact_email="forge@example.org",
+ forge_contact_name="forge",
+ forge_contact_comment=(
+ "Discovered on the main forge homepag, following contact link."
+ ),
+ last_modified_date=datetime.now(timezone.utc),
+ )
+ req.clean_fields()
diff --git a/swh/web/tests/add_forge_now/test_models.py b/swh/web/tests/add_forge_now/test_models.py
--- a/swh/web/tests/add_forge_now/test_models.py
+++ b/swh/web/tests/add_forge_now/test_models.py
@@ -20,6 +20,16 @@
],
),
(RequestStatus.WAITING_FOR_FEEDBACK, [RequestStatus.FEEDBACK_TO_HANDLE]),
+ (
+ RequestStatus.FEEDBACK_TO_HANDLE,
+ [
+ RequestStatus.WAITING_FOR_FEEDBACK,
+ RequestStatus.ACCEPTED,
+ RequestStatus.REJECTED,
+ RequestStatus.SUSPENDED,
+ RequestStatus.UNSUCCESSFUL,
+ ],
+ ),
],
)
def test_allowed_next_statuses(current_status, allowed_next_statuses):
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jul 3, 3:33 PM (1 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3218809
Attached To
D8246: rename add forge now status from 'denied' to 'unsuccessful'
Event Timeline
Log In to Comment