giseldo/neodataset huggingface dataset:
Changing country on existing customers does not allow for changing state / province

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem
The state list is not updating when changing countries in edit profile
_Note how the state list is the same_
![state-list-not-updating](/uploads/f855ad3970bd1a91e1bc8e323c52daf7/state-list-not-updating.gif)

Behavior should be the same as when creating a user
![state-list-updating](/uploads/de44b5b3e7bb39febf37e3dd89a998d9/state-list-updating.gif)

Story points: 1.0
[Frontend] Make Auto Renew the Default and Disable Ability to Turn it Off

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem

### Proposal

### Result

### Next steps (if any)

### How will we measure success?

Story points: 2.0
Fix width of the Company select box on the Registration form

The following discussion from !450 should be addressed:

- [ ] @oswaldo [commented](https://gitlab.com/gitlab-org/customers-gitlab-com/merge_requests/450#note_219403305):

    > @tyleramos Minor thing, should the Country select be touching the State / Province one? Feels like it's surpassing the width a bit.

Story points: 1.0
Increase services test coverage

### Problem
Services with little to no test coverage:
![Screen_Shot_2019-09-17_at_10.38.44_AM](/uploads/2f4ef038afcf1643793f1a637f15fa23/Screen_Shot_2019-09-17_at_10.38.44_AM.png)

### Proposal
Increase the test coverage of these services, ideally at least up to 70%.

We could also consider adding "Services" as its own tab to the SimpleCov coverage html page.

### Result
Better coverage around services.

Story points: 5.0
Investigate and address flaky feature tests

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem
Our pipelines are randomly going red, the constant factor are tests heavily interacting with Zuora.

https://gitlab.com/gitlab-org/customers-gitlab-com/-/jobs/294574079 (this one is waiting a full minute)
https://gitlab.com/gitlab-org/customers-gitlab-com/-/jobs/294376711


### Proposal

Short term: disable the feature tests; they're causing more headache than helping

Next steps: Figure out the cause of this.
Possible causes are
- Poorly written tests
- Zuora sandbox is shaky - either the system or conflicting because of shared credentials.
- Our project is shaky (I really hope this isn’t the case)

Go through this checklist https://docs.gitlab.com/ee/development/testing_guide/flaky_tests.html

### Result
We have tests that we can trust.

Story points: 3.0
Remove log rotation logic from codebase

### Problem
There are some places in the codebase (see list below) that define custom log rotation policies.  There may be others as well.
*  [upgrade_subscription_plan_service.rb](https://gitlab.com/gitlab-org/customers-gitlab-com/blob/staging/app/services/gitlab/hosted_plans/upgrade_subscription_plan_service.rb#L10)
*  [billing_rate_update_service.rb](https://gitlab.com/gitlab-org/customers-gitlab-com/blob/staging/app/services/gitlab/hosted_plans/billing_rate_update_service.rb#L7)

[More info on this topic can be found here](https://gitlab.com/gitlab-org/customers-gitlab-com/merge_requests/379#note_192191916).

### Proposal
Remove this logic from the code and rely on Linux log rotation tools.  This will likely involve changes to server setup/cookbooks.

### Result
The code is not tied to log rotation logic making it cleaner and easier to maintain.

### Next steps (if any)

### How will we measure success?

Story points: 3.0
Use seperate Zuora credentials for pipelines testing and local development

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem
~~The credentials used in the pipeline and are recommended for use in [our README](https://gitlab.com/gitlab-org/customers-gitlab-com/tree/staging#setup-commands) are the same.~~ Not the case actually: however they are being used locally by some developers.

This could be a factor in conflicting Zuora credentials causing specs to randomly fail https://gitlab.com/gitlab-org/customers-gitlab-com/merge_requests/456#note_216365165

### Proposal
Rotate the credentials used in our pipelines.

1. Rotate the [CI Pipelines](https://apisandbox.zuora.com/apps/HostedPageLite.do?method=preview&id=2c92c0f85b1ab29a015b34a60fb22f52) credentials
1. Update ENV variables on CI
1. Update Zuora details in `config/secrets.yml.example`
1. Don't hand `zuora_cc_payment_page_id` and CI API credentials out.


### Result
Less flaky feature tests.

### How will we measure success?
Pipelines don't go red randomly.

Story points: 2.0
Compare Capybara setup between Customer portal and GitLab; port what makes sense

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem
A screenshot setting was missing from our capybara configuration.
Background: https://gitlab.com/gitlab-org/customers-gitlab-com/merge_requests/457
There might be more configuration worth having.
### Proposal
Look through [the CE file](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/support/capybara.rb) and port what makes sense
### Result
Better capybara runs.

Story points: 2.0
Pajamas Update: Portal "Sign in/Registration" Page

### Designs

| Interface | Description |
| ------ | ------ |
| **Sign In**<br>![Sign_In](/uploads/67d3035fb864dd301e9c86836294a2ab/Sign_In.png) | To keep consistent, I'm using the same styling from https://gitlab.com/users/sign_in and https://gitlab.com/-/trials/new (if you are not logged in) |
| **Register**<br>![Register](/uploads/35b1c68af57bb534fd5a784237009bc6/Register.png) | All input fields are kept the same with current implementation except for the Password field. If possible this is a good opportunity to remove the password confirmation field and reduce user friction. |

### Design Specs

https://gitlab-org.gitlab.io/gitlab-design/hosted/tim/&1886-customers-portal-pages-redesigns/sign-in-register/

Story points: 3.0
Pajamas Update: Portal "Payment Methods" Page

## Current Design

<img width="400" src="/uploads/14fc65b7b08269f6fb06600e0e640fd1/payment-methods.png">

## Proposal Designs

| Empty State | Default View | Add Payment Method (Credit Card) |
| ------ | ------ | ------ |
| ![Payment_Methods_1_2x](/uploads/f164e3606be5b93743effe9dd7a8b551/Payment_Methods_1_2x.png) | ![Payment_Methods_2](/uploads/09c7a9ca9e9ea5ee7ebdef37bc365fb1/Payment_Methods_2.png) | ![Payment_Methods_3_2x](/uploads/95cdde533c5a57b40b704bd3015a623b/Payment_Methods_3_2x.png) |
| !610 | !610 | !639 |

| Add Payment Method (ACH) | Edit Payment Method (Credit Card) | Edit Payment Method (ACH) |
| ------ | ------ | ------ |
| ![Payment_Methods_4_2x](/uploads/c7be92212d6e15aa8bdedfbeb9da98e6/Payment_Methods_4_2x.png) | ![Payment_Methods_5_2x](/uploads/90c52b812ddf65f444fa25df71df7f00/Payment_Methods_5_2x.png) | ![Payment_Methods_6_2x](/uploads/fc95fa092e7c48d1372587946000cb73/Payment_Methods_6_2x.png) |
| !639 | !772 | !900 |

### Design Specs
https://gitlab-org.gitlab.io/gitlab-design/hosted/tim/&1886-customers-portal-pages-redesigns/payment-methods

Story points: 3.0
Pajamas Update: Portal "View Invoices" Page

## Current Design

<img width="400" src="/uploads/b09591e75dde389b5f6efb13889a25de/payment-history.png">

## Proposal Designs

Formerly known as "Payment History" page in the portal.

| Empty State | List View |
| ------ | ------ |
| ![Payment_History_1_2x](/uploads/0e92d4af28a5a58bd1ebbeece2b7c7da/Payment_History_1_2x.png) | ![Payment_History_2_2x](/uploads/91596c28f043b3ebe67ce80c30604268/Payment_History_2_2x.png) |

### Design Specs

https://gitlab-org.gitlab.io/gitlab-design/hosted/tim/&1886-customers-portal-pages-redesigns/view-invoices/

Story points: 3.0
Pajamas Update: Portal "Manage Purchases" Page

This is a sub-issue of the work being completed here: https://gitlab.com/groups/gitlab-org/-/epics/1788 to consolidate the redesign work of all the pages in the Customer Portal.

## Current Design

<img width="400" src="/uploads/71baf0c373ea11a1313fc9caf054d673/manage.png">

## Proposed Designs
#### Self-Managed Designs
| Interface | Description |
| ------ | ------ |
| **No Subscriptions (Empty State)**<br>![Manage_Purchases_1_2x](/uploads/d25d7d3f8fa24443a10174747dec868c/Manage_Purchases_1_2x.png) | This is the screen that is displayed when a user has no active subscriptions. |
| **Expanded Subscription Details**<br>![Manage_Purchases_2_2x](/uploads/84242a4746527e419731286c44d64a71/Manage_Purchases_2_2x.png) | An example of a user with two active subscriptions.<br>(1) Self-Managed Ultimate Subscription<br>(2) GitLab.com Bronze Subscription.<br><br>**Key Points**<br>- The first subscription is always expanded by default.<br>- Main CTA's `Add more seats`,`Renew`,`Change linked group`,`Buy more CI minutes`,`Upgrade` are exposed in the un-expanded state.<br>- If there is an active subscription the `Buy new subscription` button reverts to the secondary outline style.  |

#### GitLab.com Designs
| Interface | Description |
| ------ | ------ |
| **GitLab.com: Expanded Subscription (Details)**<br>![Manage_Purchases_3_2x](/uploads/f3d2b98af3498ac263d55698443a0b00/Manage_Purchases_3_2x.png) | **Key Points**<br>- Clear subscription details.<br>- "Did you know" section is an example of the ability to share pre-determined relevant information with users at set times during their subscription life-cycle. |
| **Expanded GitLab.com Subscription (Addons)**<br>![Manage_Purchases_4_2x](/uploads/99eb304979a25a390a78b24b32f7a2b3/Manage_Purchases_4_2x.png) | **Key Points**<br>- A historical view of the add-on purchases across the subscriptions life-cycle.  |

**Todo**
* [ ]  Include [dialog box informing customers who are purchasing a new instance](https://gitlab.com/gitlab-org/customers-gitlab-com/issues/232)
* [ ]  Gitlab.com - Add design for no linked group. 
* [ ]  Add design for linking to a custom user namespace.


Story points: 8.0
Pajamas Update: Portal "My Account" Page

## Current Design

<img width="400" src="/uploads/e36dad6d4adc717361dd1788a5c567c8/my-account.png">

## Proposal Designs

| Default view  | All modules expanded   |
| ------ | ------ |
| ![Account_details_1_2x](/uploads/144b9cf2287eaf9d43787900bc0546ca/Account_details_1_2x.png) | ![Account_details_2_2x](/uploads/5b1fd72eec38488063595916fae4134c/Account_details_2_2x.png) |

### Design Specs

https://gitlab-org.gitlab.io/gitlab-design/hosted/tim/&1886-customers-portal-pages-redesigns/account-details/

Story points: 8.0
[Portal Pajamas] Update the portal top NavBar to more closely resemble Gitlab's

### Problem
The customer portal navigation doesn't resemble the navigation in the GitLab application. 

### Proposal
Update the navigation per design specs to more closely resemble the navigation of the GitLab.

![image](/uploads/5551290b9acb409f8fb5c603336e6e29/image.png)

[**Design Specs**](https://gitlab-org.gitlab.io/gitlab-design/hosted/tim/customers-gitlab-com%23676-update-the-portal-top-navbar-to-more-closely-resemble-gitlabs/)

| Menu item | Target page |
| ------ | ------ |
| Logo | `/` |
| Manage Purchases | `/manage-purchases` |
| View Invoices | `/invoices` |
| `?` Icon | It's a dropdown. No link here. |
| FAQ | `https://about.gitlab.com/pricing/licensing-faq/` |
| Support | `https://about.gitlab.com/support/#contact-support` |
| Contact Us | `https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=334447` |
| Submit feedback | `https://about.gitlab.com/submit-feedback/` |
| My account | It's a dropdown. No link here. |
| `CUSTOMER_NAME` | No link here. |
| Account details | `/customers/edit` |
| Payment methods | `/payment_methods` |
| Sign Out | `/customers/sign_out` |


### How will we measure success?

The customer portal provides a similar navigation experience as the GitLab application

Story points: 3.0
BCC Salesforce on EULA Emails

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem
*  EULAS are either not being sent out or being sent out to the wrong individuals. Since these emails are not sent to out SFDC instance as well Reps have no idea who, when or if the EULAs were sent out.
### Proposal
*  Version 1 - have all EULA messages BCC our SFDC instance so that they get logged in on our records
### Result
*  This will reduce the pings coming from the field to SalesOps about EULAS being sent out
*  Decreased confusion in the field after they close a deal 
### Next steps (if any)
* [ ] The goal would be to BCC EULAs to our SFDC instance so that Sales Reps can see if they were sent out and if so to what email address
* [ ] Would we be able to alter how EULAs are sent out to BCC our SFDC instance while also keeping our BCC email address private? 
* [ ] We would want our BCC address private so that people can not find it and send emails directly into our SFDC instance 
* [ ] [Update the Customer Mailer](https://gitlab.com/gitlab-org/customers-gitlab-com/blob/master/app/mailers/customer_mailer.rb) - to send to our SFDC instance. I believe that is the only edit that would be required but will leave to the trusted hands of our developers to determine the final scope 
### How will we measure success?
*  If EULAS can be found in SFDC after they are sent this will be a success

Story points: 2.0
[broken staging] Rspec failures on update_gitlab_namespace_plan_spec and subscriptions_spec

```sh
Failures:

  1) Update GitLab Namespace Plan Admin can update the expiration date for a trial plan
     Failure/Error: page.select(new_end_date.year, from: 'trial_exp_on_year')

     Selenium::WebDriver::Error::ElementNotInteractableError:
       element not interactable: Element is not currently visible and may not be manipulated
         (Session info: headless chrome=77.0.3865.75)
         (Driver info: chromedriver=77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}),platform=Linux 4.19.23-coreos-r1 x86_64)
     # ./spec/features/rails_admin/update_gitlab_namespace_plan_spec.rb:89:in `block (3 levels) in <top (required)>'
     # ./spec/features/rails_admin/update_gitlab_namespace_plan_spec.rb:81:in `block (2 levels) in <top (required)>'
     # ./spec/features/rails_admin/update_gitlab_namespace_plan_spec.rb:13:in `block (3 levels) in <top (required)>'
     # ./spec/features/rails_admin/update_gitlab_namespace_plan_spec.rb:13:in `block (2 levels) in <top (required)>'

  2) Subscriptions Successfully purchase and active subscription
     Failure/Error: find('#input-creditCardNumber', wait: 20)

     Capybara::ElementNotFound:
       Unable to find css "#input-creditCardNumber"
     # ./spec/features/subscriptions_spec.rb:129:in `block (3 levels) in <top (required)>'
     # ./spec/features/subscriptions_spec.rb:127:in `block (2 levels) in <top (required)>'
```


This is blocking MRs to get merged into `staging` and blocking deployments too.

Story points: 2.0
Use rubocop config from GitLab CE

### Problem
The Rubocop configuration for the Customers Portal is different from GitLab CE.  This topic first came up during [the review of an MR](https://gitlab.com/gitlab-org/customers-gitlab-com/merge_requests/422#note_214310904).

### Proposal
Look into sharing the Rubocop configuration from GitLab CE in customers-gitlab-com.

### Result
It would be nice to have a set standard across our apps, including the Customer Portal.

Story points: 3.0
Document Salesforce setup and usage for Development

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem
The initial Secretes template does not contain any Salesforce credentials.
This results in errors like
```
CreateSalesforceAccountWorker JID-549f17949adb63c20dea6123 INFO: start
CreateSalesforceAccountWorker JID-549f17949adb63c20dea6123 ERROR: [Customer ID: 1] Error creating SalesForce Account
CreateSalesforceAccountWorker JID-549f17949adb63c20dea6123 INFO: done: 3.591 sec059c130feb92b69dd7d5c50970fd4dad7a215d5d95f7ca2243c372336025ac08
```

### Proposal
Add development Salesforce credentials to `secrets.yml.example`

### Result
Following the setup in the README will setup a development environment that works with Salesforce

Story points: 1.0
Add employee count field to portal registration form

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem

We currently have an "Unknown" segment in our reporting due to the [portal sign up form](https://customers.gitlab.com/subscriptions/new?plan_id=2c92a0ff6145d07001614f0ca2796525&transaction=create_subscription) not including an employee count field (allowing us to segment the account).

Example:

![Screen_Shot_2019-09-05_at_2.18.26_PM](/uploads/0a675d147cdb5bd59aab203cd2ae333d/Screen_Shot_2019-09-05_at_2.18.26_PM.png)

### Proposal

Add the same field we use on the sales and trial sign up forms to the portal registration form, and ensure all three are consistent.

Sales form:

![Screen_Shot_2019-09-05_at_2.17.34_PM](/uploads/aafe2ffc62cd8b7e40b819db5767eaed/Screen_Shot_2019-09-05_at_2.17.34_PM.png)

Story points: 2.0
[Portal Pajamas] Convert Layout to Pajamas SCSS

### Problem
Customers.gitlab.com layout design doesn't match gitlab.com

### Proposal

Use the SCSS from gitlab.com/pajamas to update the design of the layout and typography to be similar to Gitlab.com. This should be done under the supervision of the design team.  

This does not include implementing individual controls in Vue.js. 

### Result

customers.gitlab.com look and feel more closely resembles gitlab.com. This the first step in moving to the standard Design System.

### How will we measure success?

Customers.gitlab.com more closely resembles gitlab.com

### Next steps

- [x] Replace bootstrap v3 with v4
- [x] Read through bootstraps docs on migrating v3 to v4 and migrate

> **Note:** When replacing classes, look for classes being used within JS to toggle visibility.

Story points: 5.0
Hide coupon code field

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem

Showing the coupon code field when we don't give out coupons is misleading and may distract customers from the purchase flow if they decide to google for a discount coupon. We need to use the coupon field for testing sometimes, so being able to access it still would be preferable, we just need to somehow hide it from customers who are making a purchase.

### Proposal

Some options:

1. Hide the coupon field on production and only show for dev/staging instances.
2. Hide the coupon field behind a URL, and document how to access the URL for testing purposes.
3. Suggestions welcome.

Make sure this is properly communicated with the sales team. 

We should also ensure that a CC is not required when adding a coupon. This is a current bug with the purchase flow when adding coupons.

### Next steps (if any)

cc @timnoah @mkarampalas @s_awezec 

### How will we measure success?

@amandarueda Do you have a pulse on how many queries we get around coupon code confusion? 

Story points: 2.0
Create a license key if one does not exist during "Download License"

### Problem
Sometimes licenses have not been created in the license-app by the time a user attempts to download the license from the customers-app.  This leads to a `LicenseNotFoundError` and the user is shown an error message.

This cannot be worked on until #658 is complete.

### Proposal
If the license key was not created on the license-app, a better user experience could be for the license to be created in real-time. The workflow to retrieve the license key from the portal would be:
1.  Look for an existing license key based on the `subscription name`.
1. If result is empty, check to make sure a license was successfully paid for. 
1. If it was successfully paid for, create a new license key based on the subscription info from the portal.
1. Else, display an error message? Copy tbd

### Result
No more errors when downloading licenses from the customers-app.

### Next steps (if any)

### How will we measure success?

Story points: 3.0