summaryrefslogtreecommitdiffstats
path: root/python/fatcat_web/routes.py
Commit message (Collapse)AuthorAgeFilesLines
* web: work around remaining type annotation issuesBryan Newbold2021-11-031-11/+11
|
* web: add type annotationsBryan Newbold2021-11-031-135/+142
| | | | | This commit does not include type fixes, only annotations. A small number of tuples were also converted to lists.
* fmt (black): fatcat_web/Bryan Newbold2021-11-021-384/+619
|
* lint: simple, safe inline lint fixesBryan Newbold2021-11-021-2/+2
| | | | '==' vs 'is'; 'not a in b' vs 'a not in b'; etc
* lint/fmt: remove all 'import *'Bryan Newbold2021-11-021-14/+63
|
* web: editor username /u/<username> helperBryan Newbold2021-10-131-0/+8
|
* web: container lookup and display featuresBryan Newbold2021-10-131-1/+1
|
* web: implement new schema changesBryan Newbold2021-10-131-2/+4
|
* web: always log upstream errors (may be redundant)Bryan Newbold2021-07-231-0/+2
|
* web: fix flask/werkzeug encoding for mediawiki oauthBryan Newbold2021-07-131-1/+4
|
* small python lint fixes (no behavior change)Bryan Newbold2021-05-251-1/+1
|
* web: try container search along with release for generic queriesBryan Newbold2021-02-261-3/+12
|
* web: reduce flash() usage; have logins redirectBryan Newbold2021-02-261-3/+2
|
* web: handle unknown CSL style as a cleaner 400 pageBryan Newbold2020-09-171-1/+5
|
* lint cleanupsBryan Newbold2020-09-171-1/+0
|
* web: route constraints on fcids and UUIDsBryan Newbold2020-09-171-97/+97
| | | | | | | | | | | Instead of accepting any string for these parameters and throwing a 400 error if not the correct type, implement better route matching at the framework level and return more 404s. This resolves several outstanding sentry exceptions. The "flask-uuid" was imported and seems to have been configured for this purpose previously, but I guess I never finished configuring it.
* coverage search: pretty display for ES query errorsBryan Newbold2020-09-171-1/+12
|
* sitemap fixes from testingBryan Newbold2020-08-191-5/+5
|
* update robots.txt and sitemap.xmlBryan Newbold2020-08-191-2/+13
| | | | | | - show minimal robots/sitemap if not in prod environment - default to allow all in robots.txt; link to sitemap index files - basic sitemap.xml without entity-level links
* routes: handle case of viewing deleted entity in editgroup contextBryan Newbold2020-07-301-1/+1
| | | | | | Eg, consider deleting an entity. When viewing the editgroup, want to be able to click the deleted entity and see the "deleted entity" page instead of a generic 404.
* minor lint fixesBryan Newbold2020-07-301-2/+1
|
* control shadow preservation display with a flagBryan Newbold2020-07-301-4/+16
|
* release search: fix fulltext_only checkbox (from query object)Bryan Newbold2020-07-301-0/+1
|
* search: 'recent' mode for coverage searchBryan Newbold2020-07-301-5/+10
|
* first iteration of flexible search coverageBryan Newbold2020-07-301-0/+29
|
* make some ES agg methods work on general queriesBryan Newbold2020-07-301-3/+7
| | | | | | | Eg, instead of container-specific year histogram, have the histogram fetch function take a ReleaseQuery. This is in preparation for more generic coverage visualization pages.
* move container _stats enrichment to routesBryan Newbold2020-07-301-1/+3
| | | | | These were being added to many views which didn't need them (eg, metadata, editing views)
* web: move random article enrichment to special caseBryan Newbold2020-07-301-2/+3
| | | | | Instead of always enriching container entities with random articles, only do so for the primary container view.
* update container view statsBryan Newbold2020-07-301-0/+5
| | | | | | - show release type counts - new-style preservation status (single bar) - show release_type preservation break down on coverage page
* preservation coverage updates (first round)Bryan Newbold2020-07-301-4/+60
| | | | | | | | | | - new by-year chart with stacked histograms of all 4 preservation statuses - new-style single progress bar showing overall preservation status - new by-volume query and chart Old endpoints are left as-is, with the intention of having them "deprecated" for some time span until entirely removing them.
* error handling: use 400 page with error passed instead of flash()Bryan Newbold2020-07-281-13/+7
|
* remove some spurious print statementsBryan Newbold2020-07-281-3/+0
|
* convert some API errors from abort() to raiseBryan Newbold2020-07-281-7/+7
|
* generic API error pageBryan Newbold2020-07-281-0/+30
| | | | | | | | | | This error handler and view page currently works much better than the "flash()" infrastructure built-in to flask, which uses cookies and mostly does not work with our views and layouts. Would like to gradually migrate almost all API errors in the web interface to just raising errors that get rendered on an error page, instead of calling `abort(ae.status)`.
* search: catch ES errors and display betterBryan Newbold2020-07-281-3/+9
|
* refactor release and container searchBryan Newbold2020-07-241-33/+11
| | | | | | | | | | Based on fatcat-scholar refactoring. This doesn't include refactoring of stats, aggregates, or histograms yet, just the direct queries. Don't have any test coverage yet; intend to try elasticmock or figuring out how to ingest mock JSON results directly.
* simple lint (flake8) fixes over python codebaseBryan Newbold2020-07-231-1/+1
| | | | | | These should not have any behavior changes, though a number of exception catches are now more general, and there may be long-tail exceptions getting thrown in these statements.
* lint (flake8) web interface python filesBryan Newbold2020-07-011-4/+3
|
* search: assume * when q is not set or emptyMartin Czygan2020-04-291-0/+4
| | | | An example would be a blank search from a container details page.
* update ingest request schemaBryan Newbold2019-12-131-2/+6
| | | | | This is mostly changing ingest_type from 'file' to 'pdf', and adding 'link_source'/'link_source_id', plus some small cleanups.
* initial 'Save Paper Now' web formBryan Newbold2019-12-121-1/+41
|
* Add basic pagination to search resultsMartin Czygan2019-11-081-2/+7
| | | | | | | | | | | | The "deep paging problem" imposes some limit, which currently is a hardcoded default value, `deep_page_limit=2000` in `do_search`. Elasticsearch can be configured, too: > Note that from + size can not be more than the index.max_result_window index setting, which defaults to 10,000. -- https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-from-size
* redirect direct entity underscore linksBryan Newbold2019-10-031-0/+28
|
* handle more external identifiers in pythonBryan Newbold2019-09-181-0/+4
| | | | | This makes it possible to, eg, past an arxiv identifier or SHA-1 hash in the general search box and do a quick lookup.
* webface: fix duration_seconds parsingBryan Newbold2019-09-181-1/+1
|
* python webface impl token generationBryan Newbold2019-09-181-0/+33
|
* refactor all python source for client lib nameBryan Newbold2019-09-051-2/+2
|
* finish container coverage pageBryan Newbold2019-09-041-0/+15
| | | | Also re-worked container view sidebar a bit more.
* start container coverage pageBryan Newbold2019-09-041-0/+19
|
* do release search by container_id, not issnlBryan Newbold2019-09-031-0/+4
|