Skip to main content

A python backend for jquery plugin datareports a wrapper for tablesorter. Including custom search,filter,sort and multi search

Project description

# datareports
A python/jquery/mysql stack for paginated tabular data over webapi.



## python install
```
pipenv install datareports
npm install datareports

```


## jQuery Plugin Configuration
```
<link rel="stylesheet" href="/node_modules/datareports/dist/css/datareports.css" />
<script src="/node_modules/datareports/dist/js/datareports.js"></script>
<script>
$(".data-report").datareports({'uid':'example_1'}); //the UID used in the python definition...
</script>
```


## json configuration description
```
name # The internal name of this report
display # The Displayed name of this report (html H1 Title)
entity # The company / division / entity that owns this report ( Future use for report segregation)
group # The group that this report falls in (Future use, menu generation, links, breadcrumbs)
ordinal # The sort weight of this (Future Use for internal menu generation)
uid # The unique ID of this report. All reports are looked up via this field
multi_search # can multiple columns/properties be searched vi the global search field
active # is this report active, if not it cannot be seenor used
query # The manual query for the default data collection of this report
properties # An array of property[] This is the core structure definition


###
---
property:
- name # The internal name of this property
- display # The display name of this property, if none given the internal name is used
- ordinal # The display order of this property in the table ui
- visible # Is this property visible in the ui
- search # Can this property be searched individually
- multi_search # Is this property available in the milti sort
- sortable # Is this property sortable
- default_sort # IS this property a default sort, on report init
- default_sort_asc # If this is a default sortable property, is the default sort directiopn of this property ASC
- default_sort_ordinal # If this is a default sortable property, what is it's order in sort application
- width # The pixel width of the table field in the UI
```

#python environment variables
- DATA_REPORT_DB_USER='datareports_user'
- DATA_REPORT_DB_PASS='datareports_password'
- DATA_REPORT_DB_HOST='localhost:3306'
- DATA_REPORT_DB_NAME='datareports_test'

## Python Use
```
from datareports.api import api
from datareports.api_static import api as api_static
from datareports.api import data_report_configs

from flask import Flask

app = Flask(__name__, static_url_path='')
app.register_blueprint(api)
app.register_blueprint(api_static)

# Json definition of the report for data_reports
data_report_configs['example_1']={
'name' : 'report_1',
'display' : 'Example Report Results',
'entity' : 'Company',
'group' : 'Development',
'ordinal' : 0,
'uid' : 'example_1', ##important this is the identifer used to pull your report
'multi_search' : True,
'active' : True,
'query' : """SELECT `id`,`first`,`last`,`item`,`cost`,`loc` FROM `example_table` """,
'properties':[
{ 'name': 'id' , 'display': 'id' ,'ordinal': 0, 'visible': True , 'search': True , 'multi_search': True , 'sortable': True , 'default_sort': True , 'default_sort_asc': True , 'default_sort_ordinal': 0, 'width': 200 },
{ 'name': 'first' , 'display': 'First' ,'ordinal': 1, 'visible': False, 'search': True , 'multi_search': True , 'sortable': True , 'default_sort': False, 'default_sort_asc': False, 'default_sort_ordinal': 0, 'width': 100 },
{ 'name': 'last' , 'display': 'Last' ,'ordinal': 2, 'visible': False, 'search': True , 'multi_search': True , 'sortable': True , 'default_sort': False, 'default_sort_asc': False, 'default_sort_ordinal': 0, 'width': 100 },
{ 'name': 'item' , 'display': 'Item' ,'ordinal': 3, 'visible': False, 'search': True , 'multi_search': True , 'sortable': True , 'default_sort': False, 'default_sort_asc': False, 'default_sort_ordinal': 0, 'width': 100 },
{ 'name': 'cost' , 'display': 'Cost' ,'ordinal': 4, 'visible': True , 'search': True , 'multi_search': True , 'sortable': True , 'default_sort': False, 'default_sort_asc': False, 'default_sort_ordinal': 0, 'width': 50 },
{ 'name': 'loc' , 'display': 'Location','ordinal': 5, 'visible': True , 'search': True , 'multi_search': True , 'sortable': True , 'default_sort': False, 'default_sort_asc': False, 'default_sort_ordinal': 0, 'width': 50 },
] }

#set environment variables for DB
os.environ['DATA_REPORT_DB_USER']='datareports_user'
os.environ['DATA_REPORT_DB_PASS']='datareports_password'
os.environ['DATA_REPORT_DB_HOST']='localhost:3306'
os.environ['DATA_REPORT_DB_NAME']='datareports_test'

if __name__ == "__main__":
app.run()
```



## Demo
![Demo](https://raw.githubusercontent.com/chris17453/datareports/master/datareports-demo.gif)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datareports-1.1.75.tar.gz (9.2 kB view details)

Uploaded Source

File details

Details for the file datareports-1.1.75.tar.gz.

File metadata

  • Download URL: datareports-1.1.75.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.3.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.19.6 CPython/3.6.6

File hashes

Hashes for datareports-1.1.75.tar.gz
Algorithm Hash digest
SHA256 da2a8c515ce57e2b72dcb79d2aa9268fbb2c5df202b427239a618f34d1fcb1b6
MD5 641f5da00339eda73026a2920042f212
BLAKE2b-256 b9fe4ae730f1039ce8987f1da82849af28ea2329eb021bf5e8650e44026b1b89

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page