mirror of https://github.com/zulip/zulip.git
urls: Show sponsorship page on a new URL.
Fixes #27377 Replaced #sponsorship links with sponsorship/ links and in other places liking gear menu.
This commit is contained in:
parent
3ba0fe4349
commit
00df9c6c18
|
@ -4,7 +4,7 @@ from django.conf.urls import include
|
|||
from django.urls import path
|
||||
from django.views.generic import RedirectView, TemplateView
|
||||
|
||||
from corporate.views.billing_page import billing_home, update_plan
|
||||
from corporate.views.billing_page import billing_home, sponsorship_request, update_plan
|
||||
from corporate.views.event_status import event_status, event_status_page
|
||||
from corporate.views.portico import (
|
||||
app_download_link_redirect,
|
||||
|
@ -32,6 +32,7 @@ i18n_urlpatterns: Any = [
|
|||
path("jobs/", TemplateView.as_view(template_name="corporate/jobs.html")),
|
||||
# Billing
|
||||
path("billing/", billing_home, name="billing_home"),
|
||||
path("sponsorship/", sponsorship_request, name="sponsorship_request"),
|
||||
path("upgrade/", initial_upgrade, name="initial_upgrade"),
|
||||
path("support/", support_request),
|
||||
path("billing/event_status/", event_status_page, name="event_status_page"),
|
||||
|
|
|
@ -75,6 +75,16 @@ def add_sponsorship_info_to_context(context: Dict[str, Any], user_profile: UserP
|
|||
)
|
||||
|
||||
|
||||
@zulip_login_required
|
||||
@has_request_variables
|
||||
def sponsorship_request(request: HttpRequest) -> HttpResponse:
|
||||
user = request.user
|
||||
assert user.is_authenticated
|
||||
context: Dict[str, Any] = {}
|
||||
add_sponsorship_info_to_context(context, user)
|
||||
return render(request, "corporate/sponsorship.html", context=context)
|
||||
|
||||
|
||||
@zulip_login_required
|
||||
@has_request_variables
|
||||
def billing_home(
|
||||
|
|
|
@ -52,7 +52,7 @@ def plans_view(request: HttpRequest) -> HttpResponse:
|
|||
realm = get_realm_from_request(request)
|
||||
free_trial_days = settings.FREE_TRIAL_DAYS
|
||||
sponsorship_pending = False
|
||||
sponsorship_url = "/upgrade/#sponsorship"
|
||||
sponsorship_url = "/sponsorship/"
|
||||
if is_subdomain_root_or_alias(request):
|
||||
# If we're on the root domain, we make this link first ask you which organization.
|
||||
sponsorship_url = f"/accounts/go/?{urlencode({'next': sponsorship_url})}"
|
||||
|
|
|
@ -50,8 +50,7 @@
|
|||
<div class="plans_faq_questions">
|
||||
<p>
|
||||
Zulip sponsors free Zulip Cloud Standard for hundreds of worthy
|
||||
organizations. Request sponsorship from your organization's
|
||||
<a href="{{ sponsorship_url }}">billing page</a>.
|
||||
organizations. <a href="{{ sponsorship_url }}">Request sponsorship</a>.
|
||||
</p>
|
||||
</div>
|
||||
<br />
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
{% extends "zerver/portico_signup.html" %}
|
||||
|
||||
{% block portico_content %}
|
||||
<div class="tab-pane" id="sponsorship">
|
||||
<div id="sponsorship-error" class="alert alert-danger"></div>
|
||||
<div id="sponsorship-input-section">
|
||||
|
@ -49,3 +52,4 @@
|
|||
Request received! The page will now reload.
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
import $ from "jquery";
|
||||
|
||||
import * as helpers from "./helpers";
|
||||
|
||||
export function initialize(): void {
|
||||
helpers.set_sponsorship_form();
|
||||
}
|
||||
|
||||
$(() => {
|
||||
initialize();
|
||||
});
|
|
@ -342,7 +342,6 @@ input[name="licenses"] {
|
|||
|
||||
#license-manual-section,
|
||||
#licensechange-input-section,
|
||||
#sponsorship-form,
|
||||
#invoice-form {
|
||||
& input {
|
||||
padding: 4px 6px;
|
||||
|
@ -365,65 +364,6 @@ input[name="licenses"] {
|
|||
}
|
||||
}
|
||||
|
||||
#sponsorship-form {
|
||||
& input {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
& textarea {
|
||||
box-sizing: border-box;
|
||||
color: hsl(0deg 0% 33%);
|
||||
background-color: hsl(0deg 0% 100%);
|
||||
border-radius: 4px;
|
||||
vertical-align: middle;
|
||||
border: 1px solid hsl(0deg 0% 80%);
|
||||
padding: 4px 6px;
|
||||
margin-bottom: 10px;
|
||||
line-height: 20px;
|
||||
|
||||
box-shadow: inset 0 1px 1px hsl(0deg 0% 0% / 7.5%);
|
||||
transition:
|
||||
border linear 0.2s,
|
||||
box-shadow linear 0.2s;
|
||||
|
||||
&:focus {
|
||||
border-color: hsl(206.5deg 80% 62% / 80%);
|
||||
outline: 0;
|
||||
|
||||
box-shadow:
|
||||
inset 0 1px 1px hsl(0deg 0% 0% / 7.5%),
|
||||
0 0 8px hsl(206.5deg 80% 62% / 60%);
|
||||
|
||||
&:invalid {
|
||||
border-color: hsl(2deg 81% 55%);
|
||||
box-shadow: 0 0 6px hsl(2deg 82% 85%);
|
||||
color: hsl(1deg 45% 50%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& select {
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
padding: 0 6px;
|
||||
font-size: 14px;
|
||||
color: hsl(0deg 0% 33%);
|
||||
border-radius: 4px;
|
||||
border: 1px solid hsl(0deg 0% 80%);
|
||||
margin-bottom: 10px;
|
||||
cursor: pointer;
|
||||
background-color: hsl(0deg 0% 100%);
|
||||
}
|
||||
|
||||
& input[name="website"] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
& textarea[name="description"] {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#confirm-licenses-modal .dialog_submit_button:active {
|
||||
/* This is needed to avoid button background changing
|
||||
when clicking on it due to "button:active" CSS in
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
</li>
|
||||
{{else if (not is_business_org) }}
|
||||
<li class="org-upgrade navbar-dropdown-menu-inner-list-item">
|
||||
<a href="/upgrade/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter navbar-dropdown-menu-link">{{t 'Request sponsorship' }}</a>
|
||||
<a href="/sponsorship/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter navbar-dropdown-menu-link">{{t 'Request sponsorship' }}</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
{{#tr}}
|
||||
Available on Zulip Cloud Standard. <z-link-upgrade>Upgrade</z-link-upgrade> or <z-link-sponsorship>request sponsorship</z-link-sponsorship> to access.
|
||||
{{#*inline "z-link-upgrade"}}<a href="/upgrade/" target="_blank" rel="noopener noreferrer">{{> @partial-block}}</a>{{/inline}}
|
||||
{{#*inline "z-link-sponsorship"}}<a href="/upgrade/#sponsorship" target="_blank" rel="noopener noreferrer">{{> @partial-block}}</a>{{/inline}}
|
||||
{{#*inline "z-link-sponsorship"}}<a href="/sponsorship/" target="_blank" rel="noopener noreferrer">{{> @partial-block}}</a>{{/inline}}
|
||||
{{/tr}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
|
@ -16,6 +16,14 @@
|
|||
"./src/loading",
|
||||
"./styles/portico/billing.css"
|
||||
],
|
||||
"sponsorship": [
|
||||
"./src/billing/page_params",
|
||||
"./src/bundles/portico",
|
||||
"jquery-validation",
|
||||
"./src/portico/signup",
|
||||
"./src/billing/sponsorship",
|
||||
"./styles/portico/billing.css"
|
||||
],
|
||||
"upgrade": [
|
||||
"./src/billing/page_params",
|
||||
"./src/bundles/portico",
|
||||
|
|
|
@ -502,8 +502,8 @@ class PlansPageTest(ZulipTestCase):
|
|||
root_domain = ""
|
||||
result = self.client_get("/plans/", subdomain=root_domain)
|
||||
self.assert_in_success_response(["Self-host Zulip"], result)
|
||||
self.assert_not_in_success_response(["/upgrade/#sponsorship"], result)
|
||||
self.assert_in_success_response(["/accounts/go/?next=%2Fupgrade%2F%23sponsorship"], result)
|
||||
self.assert_not_in_success_response(["/sponsorship/"], result)
|
||||
self.assert_in_success_response(["/accounts/go/?next=%2Fsponsorship%2F"], result)
|
||||
|
||||
non_existent_domain = "moo"
|
||||
result = self.client_get("/plans/", subdomain=non_existent_domain)
|
||||
|
@ -526,10 +526,8 @@ class PlansPageTest(ZulipTestCase):
|
|||
self.login(organization_member)
|
||||
result = self.client_get("/plans/", subdomain="zulip")
|
||||
self.assert_in_success_response(["Current plan"], result)
|
||||
self.assert_in_success_response(["/upgrade/#sponsorship"], result)
|
||||
self.assert_not_in_success_response(
|
||||
["/accounts/go/?next=%2Fupgrade%2F%23sponsorship"], result
|
||||
)
|
||||
self.assert_in_success_response(["/sponsorship/"], result)
|
||||
self.assert_not_in_success_response(["/accounts/go/?next=%2Fsponsorship%2F"], result)
|
||||
|
||||
# Test root domain, with login on different domain
|
||||
result = self.client_get("/plans/", subdomain="")
|
||||
|
|
Loading…
Reference in New Issue