mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
sponsorship: Ask user how they plan to use Zulip.
This will help avoid some back-and-forth on sponsorship requests.
This commit is contained in:
@@ -696,6 +696,7 @@ class SponsorshipRequestForm(forms.Form):
|
||||
organization_type = forms.IntegerField()
|
||||
description = forms.CharField(widget=forms.Textarea)
|
||||
expected_total_users = forms.CharField(widget=forms.Textarea)
|
||||
plan_to_use_zulip = forms.CharField(widget=forms.Textarea)
|
||||
paid_users_count = forms.CharField(widget=forms.Textarea)
|
||||
paid_users_description = forms.CharField(widget=forms.Textarea, required=False)
|
||||
requested_plan = forms.ChoiceField(
|
||||
@@ -3498,6 +3499,7 @@ class BillingSession(ABC):
|
||||
org_description=form.cleaned_data["description"],
|
||||
org_type=form.cleaned_data["organization_type"],
|
||||
expected_total_users=form.cleaned_data["expected_total_users"],
|
||||
plan_to_use_zulip=form.cleaned_data["plan_to_use_zulip"],
|
||||
paid_users_count=form.cleaned_data["paid_users_count"],
|
||||
paid_users_description=form.cleaned_data["paid_users_description"],
|
||||
requested_plan=form.cleaned_data["requested_plan"],
|
||||
@@ -3526,6 +3528,7 @@ class BillingSession(ABC):
|
||||
"website": sponsorship_request.org_website,
|
||||
"description": sponsorship_request.org_description,
|
||||
"expected_total_users": sponsorship_request.expected_total_users,
|
||||
"plan_to_use_zulip": sponsorship_request.plan_to_use_zulip,
|
||||
"paid_users_count": sponsorship_request.paid_users_count,
|
||||
"paid_users_description": sponsorship_request.paid_users_description,
|
||||
"requested_plan": sponsorship_request.requested_plan,
|
||||
|
||||
@@ -50,6 +50,7 @@ class SponsorshipRequestDict(TypedDict):
|
||||
org_type: str
|
||||
org_website: str
|
||||
org_description: str
|
||||
plan_to_use_zulip: str
|
||||
total_users: str
|
||||
paid_users: str
|
||||
paid_users_description: str
|
||||
@@ -185,6 +186,7 @@ def get_customer_sponsorship_data(customer: Customer) -> SponsorshipData:
|
||||
org_website=website,
|
||||
org_description=last_sponsorship_request.org_description,
|
||||
total_users=last_sponsorship_request.expected_total_users,
|
||||
plan_to_use_zulip=last_sponsorship_request.plan_to_use_zulip,
|
||||
paid_users=last_sponsorship_request.paid_users_count,
|
||||
paid_users_description=last_sponsorship_request.paid_users_description,
|
||||
requested_plan=last_sponsorship_request.requested_plan,
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.10 on 2025-01-14 17:16
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("corporate", "0001_squashed_0044_convert_ids_to_bigints"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="zulipsponsorshiprequest",
|
||||
name="plan_to_use_zulip",
|
||||
field=models.TextField(default=""),
|
||||
),
|
||||
]
|
||||
@@ -576,6 +576,7 @@ class ZulipSponsorshipRequest(models.Model):
|
||||
|
||||
org_description = models.TextField(default="")
|
||||
expected_total_users = models.TextField(default="")
|
||||
plan_to_use_zulip = models.TextField(default="")
|
||||
paid_users_count = models.TextField(default="")
|
||||
paid_users_description = models.TextField(default="")
|
||||
|
||||
|
||||
@@ -2456,6 +2456,7 @@ class StripeTest(StripeTestCase):
|
||||
"website": "invalid-url",
|
||||
"description": "Infinispan is a distributed in-memory key/value data store with optional schema.",
|
||||
"expected_total_users": "10 users",
|
||||
"plan_to_use_zulip": "For communication on moon.",
|
||||
"paid_users_count": "1 user",
|
||||
"paid_users_description": "We have 1 paid user.",
|
||||
}
|
||||
@@ -2472,6 +2473,7 @@ class StripeTest(StripeTestCase):
|
||||
"website": "",
|
||||
"description": "Infinispan is a distributed in-memory key/value data store with optional schema.",
|
||||
"expected_total_users": "10 users",
|
||||
"plan_to_use_zulip": "For communication on moon.",
|
||||
"paid_users_count": "1 user",
|
||||
"paid_users_description": "We have 1 paid user.",
|
||||
}
|
||||
@@ -2570,6 +2572,7 @@ class StripeTest(StripeTestCase):
|
||||
"website": "https://infinispan.org/",
|
||||
"description": "Infinispan is a distributed in-memory key/value data store with optional schema.",
|
||||
"expected_total_users": "10 users",
|
||||
"plan_to_use_zulip": "For communication on moon.",
|
||||
"paid_users_count": "1 user",
|
||||
"paid_users_description": "We have 1 paid user.",
|
||||
}
|
||||
@@ -8299,6 +8302,7 @@ class TestRemoteRealmBillingFlow(StripeTestCase, RemoteRealmBillingTestCase):
|
||||
"website": "https://infinispan.org/",
|
||||
"description": "Infinispan is a distributed in-memory key/value data store with optional schema.",
|
||||
"expected_total_users": "10 users",
|
||||
"plan_to_use_zulip": "For communication on moon.",
|
||||
"paid_users_count": "1 user",
|
||||
"paid_users_description": "We have 1 paid user.",
|
||||
"requested_plan": "Community",
|
||||
@@ -8926,6 +8930,7 @@ class TestRemoteServerBillingFlow(StripeTestCase, RemoteServerTestCase):
|
||||
"website": "https://infinispan.org/",
|
||||
"description": "Infinispan is a distributed in-memory key/value data store with optional schema.",
|
||||
"expected_total_users": "10 users",
|
||||
"plan_to_use_zulip": "For communication on moon.",
|
||||
"paid_users_count": "1 user",
|
||||
"paid_users_description": "We have 1 paid user.",
|
||||
"requested_plan": "Community",
|
||||
|
||||
@@ -65,6 +65,7 @@ class TestRemoteServerSupportEndpoint(ZulipTestCase):
|
||||
org_website=website,
|
||||
org_description="We help people.",
|
||||
expected_total_users="20-35",
|
||||
plan_to_use_zulip="For communication on moon.",
|
||||
paid_users_count=paid_users,
|
||||
paid_users_description="",
|
||||
requested_plan=plan,
|
||||
|
||||
Reference in New Issue
Block a user