mirror of https://github.com/zulip/zulip.git
support: Add sponsorship request information to remote support view.
This commit is contained in:
parent
e8500fbdb0
commit
68d117e60a
|
@ -13,6 +13,8 @@ from corporate.models import (
|
||||||
Customer,
|
Customer,
|
||||||
CustomerPlan,
|
CustomerPlan,
|
||||||
LicenseLedger,
|
LicenseLedger,
|
||||||
|
SponsoredPlanTypes,
|
||||||
|
ZulipSponsorshipRequest,
|
||||||
get_current_plan_by_realm,
|
get_current_plan_by_realm,
|
||||||
get_customer_by_realm,
|
get_customer_by_realm,
|
||||||
)
|
)
|
||||||
|
@ -23,6 +25,7 @@ from zerver.lib.test_classes import ZulipTestCase
|
||||||
from zerver.lib.test_helpers import reset_email_visibility_to_everyone_in_zulip_realm
|
from zerver.lib.test_helpers import reset_email_visibility_to_everyone_in_zulip_realm
|
||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
MultiuseInvite,
|
MultiuseInvite,
|
||||||
|
OrgTypeEnum,
|
||||||
PreregistrationUser,
|
PreregistrationUser,
|
||||||
Realm,
|
Realm,
|
||||||
UserMessage,
|
UserMessage,
|
||||||
|
@ -43,6 +46,24 @@ from zilencer.models import RemoteZulipServer
|
||||||
class TestRemoteServerSupportEndpoint(ZulipTestCase):
|
class TestRemoteServerSupportEndpoint(ZulipTestCase):
|
||||||
@override
|
@override
|
||||||
def setUp(self) -> None:
|
def setUp(self) -> None:
|
||||||
|
def add_sponsorship_request(
|
||||||
|
hostname: str, org_type: int, website: str, paid_users: str, plan: str
|
||||||
|
) -> None:
|
||||||
|
remote_server = RemoteZulipServer.objects.get(hostname=hostname)
|
||||||
|
customer = Customer.objects.create(
|
||||||
|
remote_server=remote_server, sponsorship_pending=True
|
||||||
|
)
|
||||||
|
ZulipSponsorshipRequest.objects.create(
|
||||||
|
customer=customer,
|
||||||
|
org_type=org_type,
|
||||||
|
org_website=website,
|
||||||
|
org_description="We help people.",
|
||||||
|
expected_total_users="20-35",
|
||||||
|
paid_users_count=paid_users,
|
||||||
|
paid_users_description="",
|
||||||
|
requested_plan=plan,
|
||||||
|
)
|
||||||
|
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Set up some initial example data.
|
# Set up some initial example data.
|
||||||
|
@ -52,6 +73,23 @@ class TestRemoteServerSupportEndpoint(ZulipTestCase):
|
||||||
hostname=hostname, contact_email=f"admin@{hostname}", plan_type=1, uuid=uuid.uuid4()
|
hostname=hostname, contact_email=f"admin@{hostname}", plan_type=1, uuid=uuid.uuid4()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Add example sponsorship request data
|
||||||
|
add_sponsorship_request(
|
||||||
|
hostname="zulip-1.example.com",
|
||||||
|
org_type=OrgTypeEnum.Community.value,
|
||||||
|
website="",
|
||||||
|
paid_users="None",
|
||||||
|
plan=SponsoredPlanTypes.BUSINESS.value,
|
||||||
|
)
|
||||||
|
|
||||||
|
add_sponsorship_request(
|
||||||
|
hostname="zulip-2.example.com",
|
||||||
|
org_type=OrgTypeEnum.OpenSource.value,
|
||||||
|
website="example.org",
|
||||||
|
paid_users="",
|
||||||
|
plan=SponsoredPlanTypes.COMMUNITY.value,
|
||||||
|
)
|
||||||
|
|
||||||
def test_search(self) -> None:
|
def test_search(self) -> None:
|
||||||
self.login("cordelia")
|
self.login("cordelia")
|
||||||
|
|
||||||
|
@ -77,6 +115,19 @@ class TestRemoteServerSupportEndpoint(ZulipTestCase):
|
||||||
self.assert_in_success_response(["<b>Max monthly messages</b>: 1000"], result)
|
self.assert_in_success_response(["<b>Max monthly messages</b>: 1000"], result)
|
||||||
self.assert_not_in_success_response(["<h3>zulip-2.example.com</h3>"], result)
|
self.assert_not_in_success_response(["<h3>zulip-2.example.com</h3>"], result)
|
||||||
|
|
||||||
|
# Sponsorship request information
|
||||||
|
self.assert_in_success_response(["<li><b>Organization type</b>: Community</li>"], result)
|
||||||
|
self.assert_in_success_response(
|
||||||
|
["<li><b>Organization website</b>: No website submitted</li>"], result
|
||||||
|
)
|
||||||
|
self.assert_in_success_response(["<li><b>Paid users</b>: None</li>"], result)
|
||||||
|
self.assert_in_success_response(["<li><b>Requested plan</b>: Business</li>"], result)
|
||||||
|
self.assert_in_success_response(
|
||||||
|
["<li><b>Organization description</b>: We help people.</li>"], result
|
||||||
|
)
|
||||||
|
self.assert_in_success_response(["<li><b>Estimated total users</b>: 20-35</li>"], result)
|
||||||
|
self.assert_in_success_response(["<li><b>Description of paid users</b>: </li>"], result)
|
||||||
|
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
"analytics.views.support.compute_max_monthly_messages", side_effect=MissingDataError
|
"analytics.views.support.compute_max_monthly_messages", side_effect=MissingDataError
|
||||||
):
|
):
|
||||||
|
@ -96,6 +147,35 @@ class TestRemoteServerSupportEndpoint(ZulipTestCase):
|
||||||
self.assert_in_success_response(["<b>Contact email</b>: admin@zulip-2.example.com"], result)
|
self.assert_in_success_response(["<b>Contact email</b>: admin@zulip-2.example.com"], result)
|
||||||
self.assert_not_in_success_response(["<h3>zulip-1.example.com</h3>"], result)
|
self.assert_not_in_success_response(["<h3>zulip-1.example.com</h3>"], result)
|
||||||
|
|
||||||
|
# Sponsorship request information
|
||||||
|
self.assert_in_success_response(
|
||||||
|
["<li><b>Organization type</b>: Open-source project</li>"], result
|
||||||
|
)
|
||||||
|
self.assert_in_success_response(
|
||||||
|
["<li><b>Organization website</b>: example.org</li>"], result
|
||||||
|
)
|
||||||
|
self.assert_in_success_response(["<li><b>Paid users</b>: </li>"], result)
|
||||||
|
self.assert_in_success_response(["<li><b>Requested plan</b>: Community</li>"], result)
|
||||||
|
self.assert_in_success_response(
|
||||||
|
["<li><b>Organization description</b>: We help people.</li>"], result
|
||||||
|
)
|
||||||
|
self.assert_in_success_response(["<li><b>Estimated total users</b>: 20-35</li>"], result)
|
||||||
|
self.assert_in_success_response(["<li><b>Description of paid users</b>: </li>"], result)
|
||||||
|
|
||||||
|
result = self.client_get("/activity/remote/support", {"q": "admin@zulip-3.example.com"})
|
||||||
|
self.assert_in_success_response(["<h3>zulip-3.example.com</h3>"], result)
|
||||||
|
self.assert_in_success_response(["<b>Contact email</b>: admin@zulip-3.example.com"], result)
|
||||||
|
self.assert_not_in_success_response(["<h3>zulip-1.example.com</h3>"], result)
|
||||||
|
|
||||||
|
# Sponsorship request information
|
||||||
|
self.assert_not_in_success_response(
|
||||||
|
["<li><b>Organization description</b>: We help people.</li>"], result
|
||||||
|
)
|
||||||
|
self.assert_not_in_success_response(
|
||||||
|
["<li><b>Estimated total users</b>: 20-35</li>"], result
|
||||||
|
)
|
||||||
|
self.assert_not_in_success_response(["<li><b>Description of paid users</b>: </li>"], result)
|
||||||
|
|
||||||
|
|
||||||
class TestSupportEndpoint(ZulipTestCase):
|
class TestSupportEndpoint(ZulipTestCase):
|
||||||
def test_search(self) -> None:
|
def test_search(self) -> None:
|
||||||
|
|
|
@ -32,3 +32,22 @@
|
||||||
<button type="submit" class="btn btn-default support-submit-button">Update</button>
|
<button type="submit" class="btn btn-default support-submit-button">Update</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
{% if sponsorship_data.sponsorship_pending %}
|
||||||
|
<div class="">
|
||||||
|
<h4>Sponsorship request information:</h4>
|
||||||
|
{% if sponsorship_data.latest_sponsorship_request %}
|
||||||
|
<ul>
|
||||||
|
<li><b>Organization type</b>: {{ sponsorship_data.latest_sponsorship_request.org_type }}</li>
|
||||||
|
<li><b>Organization website</b>: {{ sponsorship_data.latest_sponsorship_request.org_website }}</li>
|
||||||
|
<li><b>Organization description</b>: {{ sponsorship_data.latest_sponsorship_request.org_description }}</li>
|
||||||
|
<li><b>Estimated total users</b>: {{ sponsorship_data.latest_sponsorship_request.total_users }}</li>
|
||||||
|
<li><b>Paid users</b>: {{ sponsorship_data.latest_sponsorship_request.paid_users }}</li>
|
||||||
|
<li><b>Description of paid users</b>: {{ sponsorship_data.latest_sponsorship_request.paid_users_description }}</li>
|
||||||
|
<li><b>Requested plan</b>: {{ sponsorship_data.latest_sponsorship_request.requested_plan }}</li>
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
<b>No sponsorship requests have been submitted.</b><br /><br />
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
Loading…
Reference in New Issue