Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve firm ("other org") sign-up workflow #3595

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f217699
Update signup menu options
cmsetzer Aug 7, 2024
5223712
Update copy on signup page for individuals
cmsetzer Aug 9, 2024
cea4bc3
Fix CSS for signup nav bar
cmsetzer Aug 9, 2024
df754c0
Update copy on signup page for other orgs
cmsetzer Aug 9, 2024
97af783
Redirect firm signup contact link on Accounts page
cmsetzer Aug 12, 2024
1ecbd1b
Update quote request form for firms
cmsetzer Aug 19, 2024
e1e8704
Fix other orgs link on landing page
cmsetzer Aug 20, 2024
ab3d45e
Simplify other org form dropdown options
cmsetzer Aug 20, 2024
0f8e29a
Fix bug wherein checking 'Would you be admin' checkbox was required
cmsetzer Aug 20, 2024
72b771b
Update firm request form submission email
cmsetzer Aug 20, 2024
2c3e0bc
Update new form names for clarity
cmsetzer Aug 22, 2024
873fbd6
Update email body template for clarity
cmsetzer Aug 22, 2024
b78dbbd
Get org name from org form; make sign_up_firm logic easier to parse
cmsetzer Aug 22, 2024
8b26100
Get broken tests working again
cmsetzer Aug 28, 2024
fa9ee4c
Fix spurious test failures due to closed DB connection after exception
cmsetzer Sep 3, 2024
5bdc482
New CSS rules need to go in SCSS source, not compiled bundle
cmsetzer Sep 5, 2024
e41888b
target_user -> existing_user in template
cmsetzer Sep 5, 2024
c1a6c7b
Update success page to use org (not firm) language
cmsetzer Sep 5, 2024
f5c975a
would_be_org_admin: checkbox -> dropdown
cmsetzer Sep 5, 2024
0ddedd0
Fix test for new firm failure
cmsetzer Sep 5, 2024
eecb83f
Fix test failing due to would_be_org_admin widget change
cmsetzer Sep 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 28 additions & 4 deletions perma_web/perma/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from django.conf import settings
from django.contrib.auth.forms import SetPasswordForm
from django.db.models.fields import BLANK_CHOICE_DASH
from django.forms import ModelForm
from django.forms import Form, ModelForm
from django.http import HttpResponseRedirect
from django.urls import reverse
from django.utils.html import mark_safe
Expand Down Expand Up @@ -94,6 +94,28 @@ def __init__(self, *args, **kwargs):
self.fields['website'].label = "Library website"
self.fields['address'].label = "Library physical address"

### FIRM (OTHER ORG) QUOTE FORMS ###

class FirmOrganizationForm(ModelForm):
class Meta:
model = Registrar
fields = ['name', 'email', 'website']
labels = {
'name': 'Organization name',
'email': 'Organization email',
'website': 'Organization website',
}


class FirmUsageForm(Form):
estimated_number_of_accounts = forms.ChoiceField(
choices=[(option, option) for option in ['1 - 10', '10 - 50', '50 - 100', '100+']],
label='Number of individual accounts',
)
estimated_perma_links_per_month = forms.ChoiceField(
choices=[(option, option) for option in ['< 10', '10 - 50', '50 - 100', '100+']],
label='Number of Perma Links created each month (per user)',
)

### ORGANIZATION FORMS ###

Expand Down Expand Up @@ -271,18 +293,20 @@ class CreateUserFormWithFirm(UserForm):
add firm to the create user form
"""

requested_account_note = forms.CharField(required=True)
would_be_org_admin = forms.ChoiceField(
widget=forms.Select, choices=[(True, 'Yes'), (False, 'No')], initial=(False, 'No')
)

class Meta:
model = LinkUser
fields = ["first_name", "last_name", "email", "requested_account_note"]
fields = ['first_name', 'last_name', 'email', 'would_be_org_admin']

def __init__(self, *args, **kwargs):
super(CreateUserFormWithFirm, self).__init__(*args, **kwargs)
self.fields['requested_account_note'].label = "Your firm"
self.fields['first_name'].label = "Your first name"
self.fields['last_name'].label = "Your last name"
self.fields['email'].label = "Your email"
self.fields['would_be_org_admin'].label = 'Would you be an administrator on this account?'


class CreateUserFormWithUniversity(UserForm):
Expand Down
2 changes: 1 addition & 1 deletion perma_web/perma/templates/docs/accounts.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ <h3 id="free-usage-plans" class="body-bh">Free Usage Plans</h3>
<p class="body-text">Perma also is free for use by state and federal courts and their employees, including reporters of decisions, judges, clerks and other court staff. If your court is interested in using Perma, you can use this page to learn more and contact us about signing up: <a href="{% url 'sign_up_courts' %}">https://perma.cc/signup/courts</a>.</p>

<h3 id="paid-usage-groups" class="body-bh">Paid Usage Plans for Groups</h3>
<p class="body-text">Law firms, publishers, news organizations and other entities may become registrars through a paid usage plan, which will give them access to Perma's collaboration and administrative tools and allow them to make Perma available to their employees. To learn more about paid plans, please <a href="{% url 'contact' %}?upgrade=organization">contact us</a>.</p>
<p class="body-text">Law firms, publishers, news organizations and other entities may become registrars through a paid usage plan, which will give them access to Perma's collaboration and administrative tools and allow them to make Perma available to their employees. To learn more about paid plans, please <a href="{% url 'sign_up_firm' %}">contact us</a>.</p>

<h3 id="paid-usage-individuals" class="body-bh">Paid Usage Plans for Individuals</h3>
<p class="body-text">For individuals who are not affiliated with Perma registrars, or who want independent access to Perma, we offer paid usage plans. There are two options, based on different types of usage:</p>
Expand Down
13 changes: 11 additions & 2 deletions perma_web/perma/templates/email/admin/firm_request.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
{{ email }}{% if first_name or last_name %} ({{ first_name }} {{ last_name }}){% endif %} has requested more information about creating a law firm account for {{ firm_name }}.
{{ user_form.data.email }}{% if user_form.data.first_name or user_form.data.last_name %} ({{ user_form.data.first_name }} {{ user_form.data.last_name }}){% endif %} has requested more information about creating an account for a law firm or other organization:

This user {% if has_account %}has{% else %}does not have{% endif %} an account.
Organization name: {{ organization_form.cleaned_data.name }}
Organization email: {{ organization_form.cleaned_data.email }}
Organization website: {{ organization_form.cleaned_data.website }}

Estimated number of individual accounts: {{ usage_form.cleaned_data.estimated_number_of_accounts }}
Estimated number of Perma Links created each month (per user): {{ usage_form.cleaned_data.estimated_perma_links_per_month }}

User would be an administrator on the account: {{ user_form.data.would_be_org_admin | yesno }}

This user currently {% if existing_user %}has{% else %}does not have{% endif %} an account.
18 changes: 9 additions & 9 deletions perma_web/perma/templates/landing.html
Original file line number Diff line number Diff line change
Expand Up @@ -280,28 +280,28 @@ <h3 class="section-ah">Articles and awards</h3>

<section id="landing-signup" class="container-fluid cont-bg">
<div class="container cont-fixed">
<h2 class="section-title-alt">Sign up for free</h2>
<p class="section-subtitle-alt">It only takes a minute to sign up with Perma.cc. Select your organization and get&nbsp;started.</p>
<h2 class="section-title-alt">Sign up</h2>
<p class="section-subtitle-alt">It only takes a minute to sign up with Perma.cc. Select your organization type and get&nbsp;started.</p>
<div class="row row-modules">
<div class="col-xs-12 col-sm-3 _isCentered signup-module">
<img class="img-responsive signup-image" loading="lazy" src="{{ STATIC_URL }}img/signup-libraries-bg.png" aria-hidden="true" alt="" />
<p class="caption"><strong>Libraries<span class="_verbose">.</span></strong> Libraries play a critical role in powering and supporting Perma.cc.</p>
<a href="{% url 'libraries' %}" class="btn btn-small center">Perma.cc for libraries</a>
</div>
<div class="col-xs-12 col-sm-3 _isCentered signup-module">
<img class="img-responsive signup-image" loading="lazy" src="{{ STATIC_URL }}img/signup-academics-bg.png" aria-hidden="true" alt="" />
<p class="caption"><strong>Faculty and journals<span class="_verbose">.</span></strong> Over 150 academic law journals use Perma.cc.</p>
<a href="{% url 'sign_up_journals' %}" class="btn btn-small center">Perma.cc for journals</a>
</div>
<div class="col-xs-12 col-sm-3 _isCentered signup-module">
<img class="img-responsive signup-image" loading="lazy" src="{{ STATIC_URL }}img/signup-courts-bg.png" aria-hidden="true" alt="" />
<p class="caption"><strong>Courts<span class="_verbose">.</span></strong> Courts demand long-term reliability from the links in their decisions.</p>
<a href="{% url 'sign_up_courts' %}" class="btn btn-small center">Perma.cc for courts</a>
</div>
<div class="col-xs-12 col-sm-3 _isCentered signup-module">
<img class="img-responsive signup-image" loading="lazy" src="{{ STATIC_URL }}img/signup-everyone-bg.png" aria-hidden="true" alt="" />
<p class="caption"><strong>Everyone<span class="_verbose">.</span></strong> Anyone can create a free account and start creating Perma Links.</p>
<a href="{% url 'sign_up' %}" class="btn btn-small center">Perma.cc for everyone</a>
<p class="caption"><strong>Other organizations<span class="_verbose">.</span></strong> There are wide-ranging applications for Perma.cc tools.</p>
<a href="{% url 'sign_up_firm' %}" class="btn btn-small center">Perma.cc for other orgs</a>
</div>
<div class="col-xs-12 col-sm-3 _isCentered signup-module">
<img class="img-responsive signup-image" loading="lazy" src="{{ STATIC_URL }}img/signup-individuals-bg.png" aria-hidden="true" alt="" />
<p class="caption"><strong>Individuals<span class="_verbose">.</span></strong> Anyone can register a free account and start creating Perma Links.</p>
<a href="{% url 'sign_up' %}" class="btn btn-small center">Perma.cc for individuals</a>
</div>
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions perma_web/perma/templates/registration/firm_request.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
<div class="container cont-fixed">
<div class="row">
<div class="col-sm-12">
<h1 class="page-title">Thanks for requesting more information for your law firm.</h1>
<p class="page-dek">We will shortly follow up with more information about how Perma.cc could work in your firm.</p>
<h1 class="page-title">Thanks for requesting more information for your organization.</h1>
<p class="page-dek">We will shortly follow up with more information about how Perma.cc could work in your organization.</p>
</div>
</div>
</div>
{% endblock mainContent %}
{% endblock mainContent %}
Original file line number Diff line number Diff line change
@@ -1,40 +1,28 @@
<div class="container cont-full-bleed overview">
<div class="container cont-full-bleed cont-sm-fixed">
<div class="row row-no-bleed">
<div class="col col-sm-by6 overview-module col-no-gutter {% if this_page == 'individual' %}_active{% endif %}">
<div class="col col-sm-by4 overview-module col-no-gutter {% if this_page == 'individual' %}_active{% endif %}">
<a class="overview-module-content" href="{% url 'sign_up' %}">
<strong class="overview-module-title">Individual</strong>
<p class="overview-module-description">Anyone can create an account and start creating Perma Links.</p>
</a>
</div>
<div class="col col-sm-by6 overview-module col-no-gutter {% if this_page == 'libraries' %}_active{% endif %}">
<div class="col col-sm-by4 overview-module col-no-gutter {% if this_page == 'libraries' %}_active{% endif %}">
<a class="overview-module-content" href="{% url 'libraries' %}">
<strong class="overview-module-title">Libraries</strong>
<p class="overview-module-description">Libraries play a critical role in powering and supporting Perma.cc.</p>
</a>
</div>
<div class="col col-sm-by6 overview-module col-no-gutter {% if this_page == 'journals' %}_active{% endif %}">
<a class="overview-module-content" href="{% url 'sign_up_journals' %}">
<strong class="overview-module-title">Journals</strong>
<p class="overview-module-description">Over 150 academic law journals prevent link rot with Perma.cc.</p>
</a>
</div>
<div class="col col-sm-by6 overview-module col-no-gutter {% if this_page == 'faculty' %}_active{% endif %}">
<a class="overview-module-content" href="{% url 'sign_up_faculty' %}">
<strong class="overview-module-title">Faculty</strong>
<p class="overview-module-description">Faculty use Perma.cc to prevent link rot in their scholarship.</p>
</a>
</div>
<div class="col col-sm-by6 overview-module col-no-gutter {% if this_page == 'courts' %}_active{% endif %}">
<div class="col col-sm-by4 overview-module col-no-gutter {% if this_page == 'courts' %}_active{% endif %}">
<a class="overview-module-content" href="{% url 'sign_up_courts' %}">
<strong class="overview-module-title">Courts</strong>
<p class="overview-module-description">Courts care about the accuracy, integrity and reliability of the citations in their opinions.</p>
</a>
</div>
<div class="col col-sm-by6 overview-module col-no-gutter {% if this_page == 'firms' %}_active{% endif %}">
<div class="col col-sm-by4 overview-module col-no-gutter {% if this_page == 'firms' %}_active{% endif %}">
<a class="overview-module-content" href="{% url 'sign_up_firm' %}">
<strong class="overview-module-title">Law Firms</strong>
<p class="overview-module-description">Law firms use Perma.cc to prevent link rot in their court filings and marketing materials.</p>
<strong class="overview-module-title">Other Organizations</strong>
<p class="overview-module-description">There are many applications for Perma.cc citation preservation tools.</p>
</a>
</div>
</div>
Expand Down
28 changes: 17 additions & 11 deletions perma_web/perma/templates/registration/sign-up-firms.html
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{% extends "base-responsive.html" %}

{% block meta_description %}Perma.cc for courts{% endblock %}
{% block meta_description %}Perma.cc for other organizations{% endblock %}

{% block bodyFlags %}_signup _courts{% endblock %}
{% block bodyFlags %}_signup _firms{% endblock %}
{% block mainFlags %}{% endblock %}

{% block mainContent %}
<div class="container cont-fixed">
<div class="row">
<div class="col-sm-12">
<h1 class="page-title">Perma.cc for law firms</h1>
<p class="page-dek">Law firms use Perma.cc to protect links in court filings and marketing materials.</p>
<h1 class="page-title">Perma.cc for other organizations</h1>
<p class="page-dek">There are many applications for Perma.cc citation preservation tools.</p>
</div>
</div>
</div>
Expand All @@ -20,11 +20,17 @@ <h1 class="page-title">Perma.cc for law firms</h1>
<div class="container cont-reading cont-fixed">
<div class="row signup-info">
<div class="col-sm-4 signup-learnMore-form">
<h2 class="body-ah">Request information for firms</h2>
<h2 class="body-ah">Request team subscription quote</h2>
<form method="post" action="">
{% csrf_token %}
<h3 class="body-bh">Your team information</h3>
{% include "includes/fieldset.html" with form=organization_form %}
<h3 class="body-bh">Estimated usage information</h3>
<p>Quotes are based on the expected volume of use by your whole team.</p>
{% include "includes/fieldset.html" with form=usage_form %}
<h3 class="body-bh">Your information</h3>
<fieldset>
{% for field in form %}
{% for field in user_form %}
<div class="form-group{% if field.errors %} _error{% endif %}">
<label for="id_{{ field.name }}">{{ field.label }}</label>
{{ field }}
Expand All @@ -47,17 +53,17 @@ <h2 class="body-ah">Request information for firms</h2>
</form>
</div>
<div class="col-sm-8 reading-body">
<h2 class="body-ah">Why should lawyers and law firms use Perma.cc?</h2>
<p class="body-text">Link rot ruins citations in briefs and other court filings. It also harms links in blog posts, white papers and any materials used to attract and inform clients. If law firms are using links, they should be concerned about link rot.</p>
<h2 class="body-ah">Why should you use Perma.cc?</h2>
<p class="body-text">Link rot ruins citations in any context: from briefs to blog posts, reports, news articles, and court filings. If you are using links in your publications, you should be concerned about link rot.</p>

<h3 class="body-bh">Trusted by courts and lawyers</h3>
<p class="body-text">Many state and federal courts rely on Perma.cc to protect links in their opinions, and lawyers have used Perma in briefs filed in the U.S. Supreme Court, in multiple U.S. Courts of Appeals and in state appellate courts across the country. Perma also has been relied on by the Law Library of Congress, the Department of Justice and the ABA, and Perma links are encouraged by the Bluebook.<p class="body-text">
<p class="body-text">Many state and federal courts rely on Perma.cc to protect links in their opinions, and lawyers have used Perma.cc in briefs filed in the U.S. Supreme Court, in multiple U.S. Courts of Appeals, and in state appellate courts across the country. Perma.cc has also been relied upon by the Law Library of Congress, the Department of Justice, and the ABA, and Perma Links are encouraged by the Bluebook.</p>

<h3 class="body-bh">Paid option now available</h3>
<p class="body-text">Right now, individual lawyers can use Perma.cc on a trial basis, for free, to protect 10 links. For those who need to protect more links, we offer usage through paid subscriptions. Paid subscription prices are based off of the size of your team and how many links per month your organization would like to create. If you’d like to learn more about how Perma.cc can help your firm, please fill out this form and we’ll follow up soon.<p class="body-text">
<p class="body-text">For organizations wishing to use Perma.cc as a team, there are now options to become a Perma Registrar and administer individual accounts. Currently we offer subscriptions that can be billed monthly or annually. Subscription prices are quoted based on the number of individual accounts and how many links per month your organization would like to create. If you ever were to cancel or suspend the subscription, you would still have access to your accounts, and links would continue being preserved as part of our collection. If you’d like to learn more about how Perma.cc can help your team, please fill out this form and we’ll follow up soon.</p>

<h3 class="body-bh">Try it now</h3>
<p class="body-text">Individual accounts are also available. New users can create 10 Perma Links for free to try out the service. <a href="{% url 'sign_up' %}">Create an account</a> now to start your free trial.<p class="body-text">
<p class="body-text">Individual accounts are also available. New users can create 10 Perma Links for free to try out the service. <a href="{% url 'sign_up' %}">Create an account</a> now to start your free trial.</p>
</div>
</div>
</div>
Expand Down
6 changes: 4 additions & 2 deletions perma_web/perma/templates/registration/sign-up.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ <h2 class="body-ah">Create an individual account</h2>
<div class="col-sm-8 reading-body">
<h2 class="body-ah">Perma.cc for individual users</h2>
<p class="body-text">Anyone can create an individual Perma.cc account, which will allow you to create records to be preserved by The Harvard Law School Library. Just complete this form to get started.</p>
<p class="body-text">New users are able to create ten free links on a trial basis. Once you've used your trial, individuals not affiliated with a registrar must sign up for a paid subscription.</p>
<p class="body-text">New users are able to create ten free links on a trial basis. After using the trial, individuals must either be affiliated with a registrar or sign up for a paid subscription.</p>
<p class="body-text">Many organizations qualify for free, unlimited service. To see if your organization qualifies, check out our <a href="{% url 'docs_accounts' %}">accounts page</a>.</p>
<p class="body-text">To learn more about how Perma.cc works, please review our <a href="{% url 'docs' %}">user guide</a>.</p>

<h3 class="body-bh">Contact your library for an affiliated account</h3>
<p class="body-text">If your library or organization is already registered with us, we’ll let you know in your welcome email so you can contact them for an affiliation. If not, invite your library to visit our <a href="{% url 'libraries' %}">library resource page</a> to request membership, and we’ll help them get started.</p>
</div>
</div>
</div>
Expand Down
Loading
Loading