{ "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![Demo](https://raw.githubusercontent.com/chris17453/datareports/master/datareports-demo.gif)", "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" } ] }