{ "info": { "author": "SENAITE Foundation", "author_email": "hello@senaite.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Plone", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Programming Language :: Python" ], "description": ".. image:: https://raw.githubusercontent.com/senaite/senaite.impress/master/static/logo_pypi.png\n :target: https://github.com/senaite/senaite.impress#readme\n :alt: senaite.impress\n :height: 128\n\n*Publication of HTML/PDF Reports in SENAITE*\n============================================\n\n.. image:: https://img.shields.io/pypi/v/senaite.impress.svg?style=flat-square\n :target: https://pypi.python.org/pypi/senaite.impress\n\n.. image:: https://img.shields.io/github/issues-pr/senaite/senaite.impress.svg?style=flat-square\n :target: https://github.com/senaite/senaite.impress/pulls\n\n.. image:: https://img.shields.io/github/issues/senaite/senaite.impress.svg?style=flat-square\n :target: https://github.com/senaite/senaite.impress/issues\n\n.. image:: https://img.shields.io/badge/README-GitHub-blue.svg?style=flat-square\n :target: https://github.com/senaite/senaite.impress#readme\n\n.. image:: https://img.shields.io/badge/Built%20with-%E2%9D%A4-red.svg\n :target: https://github.com/senaite/senaite.impress\n\n.. image:: https://img.shields.io/badge/Made%20for%20SENAITE-%E2%AC%A1-lightgrey.svg\n :target: https://www.senaite.com\n\n\nAbout\n=====\n\nSENAITE IMPRESS is basically a rendering engine for HTML documents to PDF. It\nsupports any kind of international paperformat with their corresponding paper\ndimensions, portrait and landscape orientation and merging of multiple PDFs to\none document.\n\n\nInstallation\n============\n\nPlease follow the installations instructions for `Plone 4`_ and\n`senaite.lims`_.\n\nTo install SENAITE IMPRESS, you have to add `senaite.impress` into the\n`eggs` list inside the `[buildout]` section of your\n`buildout.cfg`::\n\n [buildout]\n parts =\n instance\n extends =\n http://dist.plone.org/release/4.3.18/versions.cfg\n find-links =\n http://dist.plone.org/release/4.3.18\n http://dist.plone.org/thirdparty\n eggs =\n Plone\n Pillow\n senaite.lims\n senaite.impress\n zcml =\n eggs-directory = ${buildout:directory}/eggs\n\n [instance]\n recipe = plone.recipe.zope2instance\n user = admin:admin\n http-address = 127.0.0.1:8080\n eggs =\n ${buildout:eggs}\n zcml =\n ${buildout:zcml}\n\n [versions]\n setuptools =\n zc.buildout =\n\n\n**Note**\n\nThe above example works for the buildout created by the unified\ninstaller. If you however have a custom buildout you might need to add\nthe egg to the `eggs` list in the `[instance]` section rather than\nadding it in the `[buildout]` section.\n\nAlso see this section of the Plone documentation for further details:\nhttps://docs.plone.org/4/en/manage/installing/installing_addons.html\n\n**Important**\n\nFor the changes to take effect you need to re-run buildout from your\nconsole::\n\n bin/buildout\n\n\nInstallation Requirements\n-------------------------\n\nThe following versions are required for SENAITE IMPRESS:\n\n- Plone 4.3.18\n- senaite.lims >= 1.3.0\n\n\n.. _Plone 4: https://docs.plone.org/4/en/manage/installing/index.html\n.. _senaite.lims: https://github.com/senaite/senaite.lims#installation\n\n\nChangelog\n=========\n\n1.2.1 (2019-07-01)\n------------------\n\n- #75: Conflict safe concurrent report creation\n- #71: Implemented storage adapter\n- #73: Extend README wrt 'Reports in external packages'\n- #66: Fix Publication Preference Traceback with Default template\n- #68: Fix empty Date Published on Default report\n\n\n1.2.0 (2019-03-30)\n------------------\n\n- #64: Fix Rejected AS are shown in the PDF Report\n- #62: Better error message handling\n- #57: SENAITE CORE integration\n- #52: Use the most recent AR as the primary storage\n- #48: Fix PDF storage in primary AR when \"Store Multi-Report PDFs Individually\" option is turned off\n\n\n1.1.0 (2018-10-04)\n------------------\n\n- #44: Changed field ChildAnalysisRequest -> Retest\n- #42: Combine Attachments coming from Request and Analysis together for unified grouping/sorting\n- #41: Default reports update\n- #40: Customizable report options\n- #37: Added hyphenize and get_transition_date helper methods\n- #36: Allow JS injection and custom report scripts\n- #34: Pass through the calculated dimensions to the template\n- #33: Include D3JS and support for Range Graphs\n- #32: Added language selector\n- #31: Fix sort order of uniquified items\n- #30: Keep order of grouped items\n- #29: Added report developer mode\n- #28: Fixed i18n domain for time localization\n- #27: Refactored Report Adapters to Multi Adapters\n- #25: Added controlpanel descriptions\n- #24: Control individual report generation for multi-report PDFs\n- #23: Fixed multi client report handling\n- #21: Improved email template\n- #19: Allow additional attachments in publication email\n- #18: Fixed barcode rendering in multi-colum report\n- #17: Fix alert section overlapping of the header section\n- #16: Fix unicode error in sort method\n- #15: Handle commas in recipient email name better\n- #13: Fix bootstrap columns CSS for WeasyPrint\n- #12: Added upgrade-step machinery\n- #11: Refactored to ReportModel -> SuperModel\n\n\n1.0.2 (2018-07-10)\n------------------\n\n- #8: Better Print CSS\n- #7: Correct margin calculation\n- #6: Updated default report templates\n\n\n1.0.1 (2018-06-23)\n------------------\n\n- Pinned `senaite.api>=1.2.0`\n- Updated PyPI page\n\n\n1.0.0 (2018-06-23)\n------------------\n\n- Initial Release\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/senaite/senaite.impress", "keywords": "", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "senaite.impress", "package_url": "https://pypi.org/project/senaite.impress/", "platform": "", "project_url": "https://pypi.org/project/senaite.impress/", "project_urls": { "Homepage": "https://github.com/senaite/senaite.impress" }, "release_url": "https://pypi.org/project/senaite.impress/1.2.1/", "requires_dist": [ "setuptools", "senaite.lims (>=1.3.0)", "beautifulsoup4", "cairocffi (<1.0.0)", "CairoSVG (==1.0.20)", "WeasyPrint (==0.42.3)", "tinycss2 (<1.0.0)", "Products.PloneTestCase ; extra == 'test'", "Products.SecureMailHost ; extra == 'test'", "plone.app.testing ; extra == 'test'", "unittest2 ; extra == 'test'" ], "requires_python": "", "summary": "Publication of HTML/PDF Reports in SENAITE", "version": "1.2.1" }, "last_serial": 5473313, "releases": { "1.0.0.post1": [ { "comment_text": "", "digests": { "md5": "b302d7c40b38a6fe33b63e294c8f2775", "sha256": "efd9078f0065122c34fad492f7bf487d6d2b08928846e08d450eb818287b53d9" }, "downloads": -1, "filename": "senaite.impress-1.0.0.post1-py2-none-any.whl", "has_sig": false, "md5_digest": "b302d7c40b38a6fe33b63e294c8f2775", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1157818, "upload_time": "2018-06-23T11:21:26", "url": "https://files.pythonhosted.org/packages/7a/7d/b159b46d5bd06fa52adf1f8774a1f9130666e0ec0da7ad3fee77f6c46e65/senaite.impress-1.0.0.post1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f1e0a7517d141aa0fc9cb79fc02ef75", "sha256": "e1a011b950b186d92537e921d59f9c9f5849941e11f1a7c7fa2034d71c08ab16" }, "downloads": -1, "filename": "senaite.impress-1.0.0.post1.zip", "has_sig": false, "md5_digest": "6f1e0a7517d141aa0fc9cb79fc02ef75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5591003, "upload_time": "2018-06-23T11:21:39", "url": "https://files.pythonhosted.org/packages/44/5b/535b040a8586b531cbeabdbbc2609242021b381600c48a3b0b1ccffa00f7/senaite.impress-1.0.0.post1.zip" } ], "1.0.0.post2": [ { "comment_text": "", "digests": { "md5": "8500fe6a8c3770f52c8147b2d3dcb06f", "sha256": "bfa193158dde86bd0e1028a56b379d8a3b886c2128e2eda44d86028510dba0bd" }, "downloads": -1, "filename": "senaite.impress-1.0.0.post2-py2-none-any.whl", "has_sig": false, "md5_digest": "8500fe6a8c3770f52c8147b2d3dcb06f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1153041, "upload_time": "2018-06-23T11:34:09", "url": "https://files.pythonhosted.org/packages/28/7e/f755cd116c1fc955672577e7adf0928e34721980b9ab35fd03d0df1f514e/senaite.impress-1.0.0.post2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6965f064e75c1918b7f12bcad311b3e5", "sha256": "715a0dad7f2c09513999cc84e27307b46ec0bd417377715c536b731e15c0fbf8" }, "downloads": -1, "filename": "senaite.impress-1.0.0.post2.zip", "has_sig": false, "md5_digest": "6965f064e75c1918b7f12bcad311b3e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5581451, "upload_time": "2018-06-23T11:34:20", "url": "https://files.pythonhosted.org/packages/71/93/a4064352f9b7e4a7407e0b6f16e6c4cab5a7780999728935eec992283f68/senaite.impress-1.0.0.post2.zip" } ], "1.0.0.post3": [ { "comment_text": "", "digests": { "md5": "fdd2bdec5b91cc5d560227c704a3025b", "sha256": "93f118765a64a32b57bb166ffccbdb1888c62fe88fbaf18123c5d8fb9fe9d50a" }, "downloads": -1, "filename": "senaite.impress-1.0.0.post3-py2-none-any.whl", "has_sig": false, "md5_digest": "fdd2bdec5b91cc5d560227c704a3025b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1153041, "upload_time": "2018-06-23T11:37:55", "url": "https://files.pythonhosted.org/packages/46/bd/747634aac05832eb939ece14d3e412020744b0eadaec421afdfd14241295/senaite.impress-1.0.0.post3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5d9ee687620d36b7564280f72500e4e", "sha256": "55ad10ec3990355cdd29cfbfea1c852872f6ce470fb44ea2777168493ba887d7" }, "downloads": -1, "filename": "senaite.impress-1.0.0.post3.zip", "has_sig": false, "md5_digest": "b5d9ee687620d36b7564280f72500e4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1170394, "upload_time": "2018-06-23T11:37:59", "url": "https://files.pythonhosted.org/packages/6e/65/025b70b39497740d21fd69b9e546550e73d441fbb25809030e2a4d96a681/senaite.impress-1.0.0.post3.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "ffa427d36cd575e9a2d144c16befb7d9", "sha256": "70c63cc1afccd8c6919ae6553607f4a4f677cca25b0f4e544e84d0b7797f106d" }, "downloads": -1, "filename": "senaite.impress-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "ffa427d36cd575e9a2d144c16befb7d9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1153829, "upload_time": "2018-06-23T15:22:29", "url": "https://files.pythonhosted.org/packages/2d/89/5586ca14df4e203fd9cf9edab1691bb5a0fc9af5913115a7d6481ad2be0e/senaite.impress-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdda84082c21500bea3aa36f9887e336", "sha256": "49fb3df4005073a37de60e014f41d4063d29063aa6cd3dace38569b349ff4786" }, "downloads": -1, "filename": "senaite.impress-1.0.1.zip", "has_sig": false, "md5_digest": "bdda84082c21500bea3aa36f9887e336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1172077, "upload_time": "2018-06-23T15:22:35", "url": "https://files.pythonhosted.org/packages/05/e8/b024cac4996a5ab33538cf4129d23a0eaf0897bcab8e9427703a7ca48248/senaite.impress-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "6e187d1734ad90858b712d00707474bf", "sha256": "353c0c879c56230af2d5f75997363ffe0da0d51e3e3fa55d85acb94aef9ac51f" }, "downloads": -1, "filename": "senaite.impress-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "6e187d1734ad90858b712d00707474bf", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1162992, "upload_time": "2018-07-10T20:30:53", "url": "https://files.pythonhosted.org/packages/d3/d4/039525907b13770d64434af4a0a2785d46df8f8b6dcd94eb5c55b373a2ca/senaite.impress-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4fd8f445d1f3dde3ba5e374668c44b62", "sha256": "12ad1926becaea3da8c3bafa9e4a7b052432379d38c6eab1950c719f5f0ec572" }, "downloads": -1, "filename": "senaite.impress-1.0.2.zip", "has_sig": false, "md5_digest": "4fd8f445d1f3dde3ba5e374668c44b62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1181440, "upload_time": "2018-07-10T20:30:58", "url": "https://files.pythonhosted.org/packages/ef/c3/87f586552d14a5be0129768cc3f731e4651cd32e6dd2b47f8ab7ad6de5c4/senaite.impress-1.0.2.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "abb77b517773d43eed5b729502a7308a", "sha256": "60b9f8cd16a021d764e0d671c75933becbb52b13be3b394b1085a3253c353df0" }, "downloads": -1, "filename": "senaite.impress-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "abb77b517773d43eed5b729502a7308a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1638263, "upload_time": "2018-10-04T12:00:53", "url": "https://files.pythonhosted.org/packages/f9/e1/9c335ee26793b91147e4a99257b287f0439506d457f24abc974ade0ffef5/senaite.impress-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75f9078e6d4a4a32af777e23b7159db0", "sha256": "2907f68fa7a55029dd4296eca29118e9c04f24d863104706ba3b190b4cd5ce69" }, "downloads": -1, "filename": "senaite.impress-1.1.0.zip", "has_sig": false, "md5_digest": "75f9078e6d4a4a32af777e23b7159db0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1658591, "upload_time": "2018-10-04T12:00:59", "url": "https://files.pythonhosted.org/packages/9b/dc/89ffcf72fd29234607f3d3a67d2d89dafc651789549c61e4c60002bb9c5d/senaite.impress-1.1.0.zip" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "a7efcef613f51c1b7d964e53fa42ae27", "sha256": "40ae3060e889d72827d7c2f9a253931d1644ac09065ce2e61823a52dfa2851fb" }, "downloads": -1, "filename": "senaite.impress-1.2.0.zip", "has_sig": false, "md5_digest": "a7efcef613f51c1b7d964e53fa42ae27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1097163, "upload_time": "2019-03-30T09:58:07", "url": "https://files.pythonhosted.org/packages/64/02/6025f4054401a536f7ec53e3856fa4a6169d397563c6cca1a5202ce3781a/senaite.impress-1.2.0.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "38b4233cb81e8a60e54251fd3d15d823", "sha256": "5e0a7ffd23dd9af6ee3ffc9d518ec72ec1c2bad96764d62e962a193dc3bb9608" }, "downloads": -1, "filename": "senaite.impress-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "38b4233cb81e8a60e54251fd3d15d823", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1144067, "upload_time": "2019-07-01T20:12:49", "url": "https://files.pythonhosted.org/packages/95/8a/89b3601fe8627903bbfb036b2db88498292ff8476018dec33b99b8b02505/senaite.impress-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b9722619bf10f0935cb272bae8e2834", "sha256": "a4880cdea7aecbb2f8046a0b89e7acf5b00be6eaaae727f1fb322fccade669ca" }, "downloads": -1, "filename": "senaite.impress-1.2.1.zip", "has_sig": false, "md5_digest": "9b9722619bf10f0935cb272bae8e2834", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1165174, "upload_time": "2019-07-01T20:12:53", "url": "https://files.pythonhosted.org/packages/ff/f7/24f5b98af0514345dd91b025f4b7c875610ce53ba83db2119d39e482a803/senaite.impress-1.2.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "38b4233cb81e8a60e54251fd3d15d823", "sha256": "5e0a7ffd23dd9af6ee3ffc9d518ec72ec1c2bad96764d62e962a193dc3bb9608" }, "downloads": -1, "filename": "senaite.impress-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "38b4233cb81e8a60e54251fd3d15d823", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1144067, "upload_time": "2019-07-01T20:12:49", "url": "https://files.pythonhosted.org/packages/95/8a/89b3601fe8627903bbfb036b2db88498292ff8476018dec33b99b8b02505/senaite.impress-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b9722619bf10f0935cb272bae8e2834", "sha256": "a4880cdea7aecbb2f8046a0b89e7acf5b00be6eaaae727f1fb322fccade669ca" }, "downloads": -1, "filename": "senaite.impress-1.2.1.zip", "has_sig": false, "md5_digest": "9b9722619bf10f0935cb272bae8e2834", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1165174, "upload_time": "2019-07-01T20:12:53", "url": "https://files.pythonhosted.org/packages/ff/f7/24f5b98af0514345dd91b025f4b7c875610ce53ba83db2119d39e482a803/senaite.impress-1.2.1.zip" } ] }