{ "info": { "author": "Paul Maigutyak", "author_email": "pmaigutyak@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# MP-Shop | Comparison\n\n### Installation:\n\n1) Install using PIP:\n```\npip install django-mp-shop-comparison\n```\n\n2) Add `'comparison'` to `INSTALLED_APPS`.\n\n3) Add `'comparison.middleware.ComparisonMiddleware'` to `MIDDLEWARE`.\n\n4) Add `path('comparison/', include('comparison.urls'))` to `urlpatterns`.\n\n### Template examples:\n\n```\n{% load comparison %}\n```\n\n```\n{% if_product_in_comparison object.id %}\n \n Remove\n \n{% else %}\n \n Add\n \n{% endif %}\n```\n\n```\n{% if_product_in_comparison product_id %}\n Product in comparison\n{% endif %}\n```\n\n```\nThere are {{ request.comparison|length }} products in comparison\n```\n\n```\n{% if not request.comparison.is_empty %}\n \n{% endif %}\n```\n\n### Product list example:\n\nurls.py\n```\npath('comparison//', views.comparison, name='comparison')\n```\n\nviews.py\n```\ndef comparison(request, category_id):\n\n category = get_object_or_404(ProductCategory, id=category_id)\n\n products = request.comparison.get_products(category_id)\n\n context = {\n 'category': category,\n 'products': products,\n 'attributes': _format_comparison_attrs(category, products)\n }\n return render(request, 'products/comparison.html', context)\n\n\ndef _format_comparison_attrs(category, products):\n\n attrs = []\n\n attributes = category.attributes.visible()\n\n values = {attr.id: {} for attr in attributes}\n\n for attr_val in ProductAttrValue.objects.filter(\n attr__in=attributes, product__in=products):\n\n values[attr_val.attr_id][attr_val.product_id] = attr_val.as_html()\n\n for attr in attributes:\n attrs.append({\n 'name': attr.name,\n 'values': [values[attr.id].get(p.id) for p in products]\n })\n\n return attrs\n```\n\n### Public methods:\n\nProducts count:\n```\nlen(request.comparison)\n```\n\nAdd to comparison:\n```\nrequest.comparison.add(product)\n```\n\nRemove from comparison:\n```\nrequest.comparison.remove(product_id)\n```\n\nClear comparison list:\n```\nrequest.comparison.clear()\n```\n\nCheck is comparison list empty:\n```\nrequest.comparison.is_empty()\n```\n\nGet products from comparison:\n```\nrequest.comparison.get_products(category_id)\n```\n\nCheck is product in comparison:\n```\nrequest.comparison.has_product(product_id)\n```\n\nGet categories of compare products\n```\nrequest.comparison.get_categories()\n```\n\n### Requirements:\n* django >= 2.0.6\n* python >= 3.5.2\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/pmaigutyak/mp-shop-comparison/archive/1.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pmaigutyak/mp-shop-comparison", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-mp-shop-comparison", "package_url": "https://pypi.org/project/django-mp-shop-comparison/", "platform": "", "project_url": "https://pypi.org/project/django-mp-shop-comparison/", "project_urls": { "Download": "https://github.com/pmaigutyak/mp-shop-comparison/archive/1.1.tar.gz", "Homepage": "https://github.com/pmaigutyak/mp-shop-comparison" }, "release_url": "https://pypi.org/project/django-mp-shop-comparison/1.1/", "requires_dist": null, "requires_python": "", "summary": "Django shop comparison app", "version": "1.1" }, "last_serial": 4100698, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "8043acace180835f47d16af5d64e494a", "sha256": "96bfe1a1698e2ba270739743453ab38d93f48ff83eb141fdf93d8b09c0aecb3c" }, "downloads": -1, "filename": "django-mp-shop-comparison-1.0.tar.gz", "has_sig": false, "md5_digest": "8043acace180835f47d16af5d64e494a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5810, "upload_time": "2018-07-07T19:56:12", "url": "https://files.pythonhosted.org/packages/0b/b7/612e25dca93ef497ab26d7f01d4d2381bd2d3c2bf102c76c58c3361c08cf/django-mp-shop-comparison-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "a7d154cd1d23dcec265b739c397cb854", "sha256": "128c5ff861e08f3180207333e9e2143ab7ed655568b562381e82f015320ad3f6" }, "downloads": -1, "filename": "django-mp-shop-comparison-1.1.tar.gz", "has_sig": false, "md5_digest": "a7d154cd1d23dcec265b739c397cb854", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5667, "upload_time": "2018-07-25T14:12:34", "url": "https://files.pythonhosted.org/packages/7e/84/268833da7cade0db8a969ad7d8c5036cd1117ab940eb0accc37184a1024d/django-mp-shop-comparison-1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7d154cd1d23dcec265b739c397cb854", "sha256": "128c5ff861e08f3180207333e9e2143ab7ed655568b562381e82f015320ad3f6" }, "downloads": -1, "filename": "django-mp-shop-comparison-1.1.tar.gz", "has_sig": false, "md5_digest": "a7d154cd1d23dcec265b739c397cb854", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5667, "upload_time": "2018-07-25T14:12:34", "url": "https://files.pythonhosted.org/packages/7e/84/268833da7cade0db8a969ad7d8c5036cd1117ab940eb0accc37184a1024d/django-mp-shop-comparison-1.1.tar.gz" } ] }