{
"info": {
"author": "Charles Watkins",
"author_email": "charles@titandws.com",
"bugtrack_url": null,
"classifiers": [],
"description": "# datareports\nA python/jquery/mysql stack for paginated tabular data over webapi.\n\n\n\n## python install\n```\npipenv install datareports\nnpm install datareports\n\n```\n\n\n## jQuery Plugin Configuration\n```\n \n \n \n```\n\n\n## json configuration description\n```\nname # The internal name of this report\ndisplay # The Displayed name of this report (html H1 Title)\nentity # The company / division / entity that owns this report ( Future use for report segregation)\ngroup # The group that this report falls in (Future use, menu generation, links, breadcrumbs)\nordinal # The sort weight of this (Future Use for internal menu generation)\nuid # The unique ID of this report. All reports are looked up via this field\nmulti_search # can multiple columns/properties be searched vi the global search field\nactive # is this report active, if not it cannot be seenor used\nquery # The manual query for the default data collection of this report\nproperties # An array of property[] This is the core structure definition\n\n\n###\n---\nproperty:\n- name # The internal name of this property\n- display # The display name of this property, if none given the internal name is used\n- ordinal # The display order of this property in the table ui\n- visible # Is this property visible in the ui\n- search # Can this property be searched individually\n- multi_search # Is this property available in the milti sort\n- sortable # Is this property sortable\n- default_sort # IS this property a default sort, on report init\n- default_sort_asc # If this is a default sortable property, is the default sort directiopn of this property ASC\n- default_sort_ordinal # If this is a default sortable property, what is it's order in sort application\n- width # The pixel width of the table field in the UI\n```\n\n#python environment variables\n- DATA_REPORT_DB_USER='datareports_user'\n- DATA_REPORT_DB_PASS='datareports_password'\n- DATA_REPORT_DB_HOST='localhost:3306'\n- DATA_REPORT_DB_NAME='datareports_test'\n\n## Python Use\n```\nfrom datareports.api import api\nfrom datareports.api_static import api as api_static\nfrom datareports.api import data_report_configs\n\nfrom flask import Flask\n\napp = Flask(__name__, static_url_path='')\napp.register_blueprint(api)\napp.register_blueprint(api_static)\n\n# Json definition of the report for data_reports\ndata_report_configs['example_1']={ \n 'name' : 'report_1',\n 'display' : 'Example Report Results',\n 'entity' : 'Company',\n 'group' : 'Development',\n 'ordinal' : 0,\n 'uid' : 'example_1', ##important this is the identifer used to pull your report\n 'multi_search' : True,\n 'active' : True,\n 'query' : \"\"\"SELECT `id`,`first`,`last`,`item`,`cost`,`loc` FROM `example_table` \"\"\",\n 'properties':[\n { '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 },\n { '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 },\n { '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 },\n { '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 },\n { '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 },\n { '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 },\n ] }\n \n#set environment variables for DB\nos.environ['DATA_REPORT_DB_USER']='datareports_user'\nos.environ['DATA_REPORT_DB_PASS']='datareports_password'\nos.environ['DATA_REPORT_DB_HOST']='localhost:3306'\nos.environ['DATA_REPORT_DB_NAME']='datareports_test'\n\nif __name__ == \"__main__\":\n app.run()\n```\n\n\n\n## Demo\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/chris17453/datareports/",
"keywords": "",
"license": "Creative Commons Attribution-Noncommercial-Share Alike license",
"maintainer": "",
"maintainer_email": "",
"name": "datareports",
"package_url": "https://pypi.org/project/datareports/",
"platform": "",
"project_url": "https://pypi.org/project/datareports/",
"project_urls": {
"Homepage": "https://github.com/chris17453/datareports/"
},
"release_url": "https://pypi.org/project/datareports/1.1.75/",
"requires_dist": null,
"requires_python": "",
"summary": "A python backend for jquery plugin datareports a wrapper for tablesorter. Including custom search,filter,sort and multi search",
"version": "1.1.75"
},
"last_serial": 4427958,
"releases": {
"1.1.69": [
{
"comment_text": "",
"digests": {
"md5": "4c2324b650998c4e4b7f2e102fd78d48",
"sha256": "0de3bb655830682a7f408ff214d1b2e2f8ac64894cd850074e95e25d52d5fcec"
},
"downloads": -1,
"filename": "datareports-1.1.69.tar.gz",
"has_sig": false,
"md5_digest": "4c2324b650998c4e4b7f2e102fd78d48",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9144,
"upload_time": "2018-10-22T17:45:36",
"url": "https://files.pythonhosted.org/packages/26/19/5391ef0f855d075c3de0ecbba46b79a96be690eb33d08eac09aa263338a9/datareports-1.1.69.tar.gz"
}
],
"1.1.70": [
{
"comment_text": "",
"digests": {
"md5": "7235cca7dff5acb6382903158e48f4d3",
"sha256": "1a71c00ccae4f8fb83f13dcb603e1b1b8d7bd36f3103d506351f78e4885237c4"
},
"downloads": -1,
"filename": "datareports-1.1.70.tar.gz",
"has_sig": false,
"md5_digest": "7235cca7dff5acb6382903158e48f4d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9153,
"upload_time": "2018-10-22T18:09:59",
"url": "https://files.pythonhosted.org/packages/f3/03/2adadeb6c65b9523173d83b2dea58439c1a23b4b9e02839d59434420e3f3/datareports-1.1.70.tar.gz"
}
],
"1.1.71": [
{
"comment_text": "",
"digests": {
"md5": "8b413e5e24c2da4cf9421c45c242daec",
"sha256": "ee75a8d563dc1f8e49d67fb644d65eaf4d67a9d0a16fb8391b39d777837c2f23"
},
"downloads": -1,
"filename": "datareports-1.1.71.tar.gz",
"has_sig": false,
"md5_digest": "8b413e5e24c2da4cf9421c45c242daec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9248,
"upload_time": "2018-10-23T11:30:06",
"url": "https://files.pythonhosted.org/packages/35/44/13db7414ca5539997a4fb7f0d90fd38e21e0c2d235c179db77d6f85676d9/datareports-1.1.71.tar.gz"
}
],
"1.1.72": [
{
"comment_text": "",
"digests": {
"md5": "3578670d9152b52a44dabad9adaf6904",
"sha256": "d8f8fc642f669a78d71a1e7d82fdb4f09bd4ade9fbe6530b1f4ba0d4428da8bf"
},
"downloads": -1,
"filename": "datareports-1.1.72.tar.gz",
"has_sig": false,
"md5_digest": "3578670d9152b52a44dabad9adaf6904",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9252,
"upload_time": "2018-10-23T12:33:52",
"url": "https://files.pythonhosted.org/packages/d1/f8/0cc83c83fd5ca69040159057f9e52f6f952d9cf97357e375f4c84285d562/datareports-1.1.72.tar.gz"
}
],
"1.1.73": [
{
"comment_text": "",
"digests": {
"md5": "719fab437d488e387cc37723e69845f8",
"sha256": "062d2b91936fb8078bfa0fa14fe9a0a1af9a9eb13061323d20c87640512bfd8d"
},
"downloads": -1,
"filename": "datareports-1.1.73.tar.gz",
"has_sig": false,
"md5_digest": "719fab437d488e387cc37723e69845f8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9217,
"upload_time": "2018-10-29T13:24:43",
"url": "https://files.pythonhosted.org/packages/d2/6c/b05ee86c4970170f5bf7677685c7ed71546b6fca022d27e49d78c0c93b2a/datareports-1.1.73.tar.gz"
}
],
"1.1.74": [
{
"comment_text": "",
"digests": {
"md5": "c0ac350109b1484d964a67cbc3fccc0c",
"sha256": "734628309b640e936616c721b4142c80eaf4b950b97a7f01ad3082043e09c563"
},
"downloads": -1,
"filename": "datareports-1.1.74.tar.gz",
"has_sig": false,
"md5_digest": "c0ac350109b1484d964a67cbc3fccc0c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9227,
"upload_time": "2018-10-29T15:13:09",
"url": "https://files.pythonhosted.org/packages/b5/a8/016b404c75d8430bf414b68cff451f774858ea7a57a95bc9b3c60cd82037/datareports-1.1.74.tar.gz"
}
],
"1.1.75": [
{
"comment_text": "",
"digests": {
"md5": "641f5da00339eda73026a2920042f212",
"sha256": "da2a8c515ce57e2b72dcb79d2aa9268fbb2c5df202b427239a618f34d1fcb1b6"
},
"downloads": -1,
"filename": "datareports-1.1.75.tar.gz",
"has_sig": false,
"md5_digest": "641f5da00339eda73026a2920042f212",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9209,
"upload_time": "2018-10-29T15:13:19",
"url": "https://files.pythonhosted.org/packages/b9/fe/4ae730f1039ce8987f1da82849af28ea2329eb021bf5e8650e44026b1b89/datareports-1.1.75.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "641f5da00339eda73026a2920042f212",
"sha256": "da2a8c515ce57e2b72dcb79d2aa9268fbb2c5df202b427239a618f34d1fcb1b6"
},
"downloads": -1,
"filename": "datareports-1.1.75.tar.gz",
"has_sig": false,
"md5_digest": "641f5da00339eda73026a2920042f212",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9209,
"upload_time": "2018-10-29T15:13:19",
"url": "https://files.pythonhosted.org/packages/b9/fe/4ae730f1039ce8987f1da82849af28ea2329eb021bf5e8650e44026b1b89/datareports-1.1.75.tar.gz"
}
]
}