{"id":19175579,"url":"https://github.com/senaite/senaite.databox","last_synced_at":"2025-05-07T19:10:38.872Z","repository":{"id":37433778,"uuid":"143439524","full_name":"senaite/senaite.databox","owner":"senaite","description":"Provides data from a configured catalog search and column configuration","archived":false,"fork":false,"pushed_at":"2025-04-04T09:01:08.000Z","size":8553,"stargazers_count":3,"open_issues_count":2,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-20T01:33:03.868Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.senaite.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/senaite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-08-03T14:49:12.000Z","updated_at":"2025-04-04T09:01:11.000Z","dependencies_parsed_at":"2022-07-27T16:18:40.278Z","dependency_job_id":"739fed5f-dc15-40ee-94a6-c03343b70a54","html_url":"https://github.com/senaite/senaite.databox","commit_stats":{"total_commits":183,"total_committers":3,"mean_commits":61.0,"dds":0.03825136612021862,"last_synced_commit":"70331f924109e5294d685949a4418535deaa5b25"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senaite%2Fsenaite.databox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senaite%2Fsenaite.databox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senaite%2Fsenaite.databox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senaite%2Fsenaite.databox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senaite","download_url":"https://codeload.github.com/senaite/senaite.databox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252940934,"owners_count":21828769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T10:24:02.935Z","updated_at":"2025-05-07T19:10:38.846Z","avatar_url":"https://github.com/senaite.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n  \u003ca href=\"https://github.com/senaite/senaite.databox\"\u003e\n    \u003cimg src=\"static/logo.png\" alt=\"senaite.databox\" height=\"128\" /\u003e\n  \u003c/a\u003e\n\n  \u003cp\u003eAn intelligent folder for SENAITE\u003c/p\u003e\n  \n  \u003cdiv\u003e\n    \u003ca href=\"https://pypi.python.org/pypi/senaite.databox\"\u003e\n      \u003cimg src=\"https://img.shields.io/pypi/v/senaite.databox.svg?style=flat-square\" alt=\"pypi-version\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/senaite/senaite.core/actions/workflows/build-and-test.yml?query=branch:master\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/senaite/senaite.databox/build-and-test.yml?branch=master\" alt=\"build status\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/senaite/senaite.databox/pulls\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/issues-pr/senaite/senaite.databox.svg?style=flat-square\" alt=\"open PRs\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/senaite/senaite.databox/issues\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/issues/senaite/senaite.databox.svg?style=flat-square\" alt=\"open Issues\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"#\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\" alt=\"pr\" /\u003e\n    \u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n## About\n\nSENAITE.DATABOX behaves like an intelligent folder with a stored database query.\nWhen viewing the contents of a databox, the database query is executed and the\nresults are shown in a table listing with the configured columns.\n\nEach databox can be directly exported as CSV or Excel.\n\n\n## Quickstart\n\nA databox can search at most one content type, e.g. `Sample`, `Analysis`, `Client` etc.\nThis content type must be defined on creation.\n\n\u003cimg src=\"static/1_databox_add.png\" alt=\"Add a new databox\" /\u003e\n\nAfter the databox is created, all objects of the selected content type are\nlisted and the database query can be directly refined with the controls on top\nof the table.\n\n\u003cimg src=\"static/2_databox_controls.png\" alt=\"Databox Controls\" /\u003e\n\n\n## Query Configuration\n\nThe query configuration in the controls allow to set the order, sort and the\npagesize of the listed items.\n\nThe results can be further narrowed down to a specific date region by choosing a\n\"from\" and \"to\" date on one of the displayed date indexes.\n\n\u003cimg src=\"static/3_databox_query.png\" alt=\"Databox Query\" /\u003e\n\n\n## Advanced Query\n\nThe advanced query tab allows to filter the results by a certain catalog index.\n\n**☝️Note:**\n\nCatalog indexes can be added through the web in SENAITE, see\nhttps://zope.readthedocs.io/en/latest/zopebook/SearchingZCatalog.html#defining-indexes\n\n\u003cimg src=\"static/4_databox_advanced_query.png\" alt=\"Databox Advanced Query\" /\u003e\n\n\n## Columns\n\nThe columns define the display fields of the results table (similar to a SELECT\nin SQL). If a field references another content type, e.g. a `Sample` has a\nreference to a `Client`, then it is possible to traverse these references to\nintegrate the fields of the target object.\n\n**☝️Note:**\n\nSome types provide a \"virtual\" `Parent` field to traverse to the parent object\nthat holds the current object. For example an `Analysis` is contained in a\n`Sample` (`Analysis Request`). Therefore, the `Parent` field reveals the\n`Sample` where the current `Analysis` is in.\n\n\u003cimg src=\"static/5_databox_columns.png\" alt=\"Databox Columns\" /\u003e\n\n\n## Info\n\nThe info tab shows the generated database query and is mosly for debugging\npurposes.\n\n\u003cimg src=\"static/6_databox_info.png\" alt=\"Databox Info\" /\u003e\n\n\n## Exporting\n\nEach databox allows export of the results with the configured columns and order \nto Excel or CSV through the two icons in the upper right corner.\n\n\u003cimg src=\"static/7_databox_excel_export.png\" alt=\"Databox Excel Export\" /\u003e\n\n\n## License\n\n**SENAITE.DATABOX** Copyright (C) [RIDING BYTES](https://ridingbytes.com) \u0026 [NARALABS](https://naralabs.com)\n\nThis program is free software; you can redistribute it and/or modify it under\nthe terms of the [GNU General Public License version\n2](https://github.com/senaite/senaite.databox/blob/master/LICENSE)\nas published by the Free Software Foundation.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenaite%2Fsenaite.databox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsenaite%2Fsenaite.databox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenaite%2Fsenaite.databox/lists"}