* Bug ID -> Bug
* Left align column
* Make the bug number itself a link to the bug, instead of an additional link
* Use CSS instead of javascript to show/hide details link
* Replace settings asserts with ImproperlyConfigured
* Replace attribute asserts with AttributeError
* Replace duplicate key assert with a custom exception
There doesn't seem like a better exception to use here so I added a
custom one.
* Check the id exists
* Replace asserts with manual AssertionErrors
* Rename the component to a *Tab and move to /details-panel folder
* cleanup indentation
* cleanup props and panel elements
* Use deconstruction for props object
* simplify onclick event calls with anonymous functions
* Move filerInAddress logic to FailureSummaryTab
* Move the data-fetching into the main controller like the other
tabs so we can do away with the special controller for the
failure summary tab.
* Move functions to helpers instead of filters and take less
values as params
* Eliminate failure_summary/controller
* Moved logic to either the parent controller or into helpers and
the FailureSummaryTab
* Use helper function for bugzilla url
The cache-based engine stores session data in our Redis cache rather
than in the `django_sessions` table in the MySQL database.
This has several advantages:
* faster access (session lookups occur for virtually all API requests)
* expired sessions are automatically cleaned up (the database engine
requires that the `clearsessions` command be run periodically)
* fewer secrets being stored in the database and its backups
See:
https://docs.djangoproject.com/en/1.11/topics/http/sessions/#configuring-sessionshttps://docs.djangoproject.com/en/1.11/ref/settings/#session-engine
We're not concerned about very occasional session loss, so don't need
the persistence guarantees of the related `cached_db` engine.
The `INSTALLED_APPS` entry is being removed since it's only purpose
is to load the session database model.
The tests have been adjusted to use the proper sessions API (rather
than directly accessing the session DB model) per:
https://docs.djangoproject.com/en/1.11/topics/http/sessions/#using-sessions-out-of-views
Adds a new view to display intermittent test failure occurrences,
to replace the functionality currently provided by the legacy
OrangeFactor tool.
Includes the new API endpoints originally reviewed in #3271.
* Don't use SERVICE_DOMAIN for references to the front-end code
* Change getRootUrl to getApiUrl to better represent what it is for
* Convert other usages of SERVICE_DOMAIN to getApiUrl
* Convert usages of SERVICE_DOMAIN to getProjectUrl
* Convert uses of SERVICE_DOMAIN to getServiceUrl
* Convert tests to use ``urlHelper``
Django has a built-in migrations squashing feature, however it cannot
optimise across RunSQL commands and several other cases, so results in
poorly optimised migrations. As such these squashed migrations are a
combination of the output of squashmigrations, recreating the initial
migration from scratch and hand editing.
The JSONField package has also been removed, since it was only required
by the now redundant initial migration.
https://eslint.org/docs/rules/no-use-before-define
Three files have been excluded from this rule entirely, since they
would require significant changes that might as well wait until they
are rewritten in React. It's likely these files may also need to be
excluded from future `var` to `let`/`const` conversions as a result.
From the AirBnb style guide GitHub issue comments:
> Some enjoy using hoisting to define helper methods at the bottom of
> the file. This guide discourages relying on hoisting; instead
> suggesting importing the helpers from another file when possible.
I believe this was the main bug causing the slowdown. It was setting state
in ``filterPlatform`` which is called once per platform when a filter change is
made. But that ``setState`` was updating ALL the platforms for that push.
* Remove unnecessary clonejobs artifact
* Fix the regression with expand/collapse counts
* Very minor optimizations and cleanup
* Add some unit tests for groups
These refs were not actually used, so can be removed. It does appear to
improve rendering speed, especially when changin filtering. I had noticed
that the JobGroup was re-rendering more times than it should, and this
change stops that. I believe more work is to be done here, but this is one
step.
This also includes a couple other small tweaks that may help speed.
The failure classification pin button was broken for bug suggestions
that fell under the "all others" category, since the `BugListItem`
for them weren't passed the `$timeout` prop, unlike for the
"open recent" `BugListItem` instance.