E-Commerce Platform

Overview
https://travis-ci.org/shuup/shuup.svg?branch=master https://coveralls.io/repos/github/shuup/shuup/badge.svg?branch=master PyPI Known Vulnerabilities

Shuup

Shuup is an Open Source E-Commerce Platform based on Django and Python.

https://shuup.com/

Copyright

Copyright (c) 2012-2021 by Shoop Commerce Ltd. <[email protected]>

Shuup is International Registered Trademark & Property of Shoop Commerce Ltd., Business ID: FI27184225, Business Address: Iso-Roobertinkatu 20-22, 00120 HELSINKI, Finland.

CLA

Contributor License Agreement is required for any contribution to this project. Agreement is signed as a part of pull request process. See the CLA.rst file distributed with Shuup.

License

Shuup is published under Open Software License version 3.0 (OSL-3.0). See the LICENSE file distributed with Shuup.

Some external libraries and contributions bundled with Shuup may be published under other compatible licenses. For these, please refer to VENDOR-LICENSES.md file in the source code tree or the licenses included within each package.

Chat

We have a Gitter chat room for Shuup. Come chat with us! Join chat

Docker quick start

Fastest way to get Shuup up and running is to use Docker.

  1. Run:

    docker-compose up
  2. Open localhost:8000/sa in a browser, log in with username: admin password: admin

Full Shuup installation guide

See Getting Started.

For simple project example see our Django-project template.

Getting Started with Shuup development

See Getting Started with Shuup Development.

Contributing to Shuup

Interested in contributing to Shuup? Please see our Contribution Guide.

Documentation

Shuup documentation is available online at Read the Docs.

Documentation is built with Sphinx.

Issue the following commands to build the documentation:

pip install -r requirements-doc.txt
cd doc && make html

To update the API documentation rst files, e.g. after adding new modules, use command:

./generate_apidoc.py

Roadmap

v3 (early 2021)

  • Initial Django 3.x support
  • Latest Jinja support
  • Deprecate theme folders under Shuup front which are used to override individual macros in macro folders. This does not work well with latest Jinja and adds extra complexity.

v4 (mid 2021)

  • Move Shuup front, xtheme and theming features to own addons. This so that projects not ready for updating theme or front can still get latest Shuup.
  • Introduce new default theme and overhaul templates structure to be more simple (likely Bootstrap 5 will be used).
  • Bump admin Bootstrap version to match with the new front
  • Move various other not essential apps in this repository to addons for better version management.

Additional Material

Admin Preview

doc/_static/admin_shop_product.png doc/_static/admin_order_detail.png
Comments
  • Rework `SimplePricing` and pricing in general

    Rework `SimplePricing` and pricing in general

    Add PriceInfo to simplify price handling Add prices_include_tax into Shop

    The idea behind this change is that ShopProduct determines the default price of the product. Templates should only use PriceInfo the pricing module offers thru Product. SimplePricing adds Customer Group Specific pricing on top of that.

    SimplePricing continues to return lowest possible price for ShopProduct

    NOTE: The changes in Product.get_base_price will cause backwards incompability.

    Refs SHOOP-514

    opened by Pikkupomo 34
  • Can't find manage.py file anywhere

    Can't find manage.py file anywhere

    Hi there, I've just installed shuup from pip and cloned the repo hence installed all requirements plus node modules too. But after I looked for the manage.py file but I can't find it. Did I miss something.

    question 
    opened by mdnur89 23
  • Refactor campaign effects (SHUUP-2824)

    Refactor campaign effects (SHUUP-2824)

    Campaigns gave the end results directly from campaign, this is not a good long term solution.

    Refactored campaigns so that effects can be created separately from campaigns itself.

    Refs SHUUP-2824

    opened by Pikkupomo 21
  • Core: option to create payments with REST API

    Core: option to create payments with REST API

    • Add create_payment detail route to OrderViewSet
    • Add custom PaymentSerializer with amount_value, currency, payment_identifier and description as fields.

    Refs SHOOP-2117 / SHOOP-1973

    opened by tulimaki 21
  • Xtheme editor

    Xtheme editor

    So here's an editor for #84 :)

    The editor UI is ugly, yes, but I assume @juhakujala will fix it all up...

    Ps.: There's a partially pluginified version of the current default theme available here: https://github.com/akx/shoop/tree/xtheme-test-theme

    enhancement 
    opened by akx 21
  • CORE Overwrite empty language fields with default value (SH-90)

    CORE Overwrite empty language fields with default value (SH-90)

    When a user completes a form that includes translatable fields (e.g. Product) and only fill out the default language portion (e.g. English) the form will fill out the other language fields with that of the english. This fix is meant to address limitations in django-parlers own fallback mechanism.

    This commit also includes a new management command shuup_fallback_language that will perform the same functionality on existing models. It's meant to be ran only once as a migration step.

    opened by hrayr-artunyan 20
  • Add basic reporting core to Shuup (SHUUP-2085)

    Add basic reporting core to Shuup (SHUUP-2085)

    Add Total Sales report Add Sales Report Add Sales per Hour report Move pdf tools from order printouts to shuup/utils Testing: Cache prices when creating order with product

    Refs SHUUP-2085

    opened by Pikkupomo 16
  • Tax clean-up and refactoring (SHOOP-975)

    Tax clean-up and refactoring (SHOOP-975)

    Main part of all this goes to refactoring everything to use Shop.create_price. That should prevent taxful/taxless price mismatches in a Shop.

    Prices and other money amounts are now passed as Money and Price objects in the code, which ensures some more type safety. Yeppee!

    TaxModule API was rethought through and got some changes.

    OrderSource, BaseBasket and StoredBasket now have the price unit (=currency+taxfullness) stored in them to avoid mixing units after a basket load.

    Calculation of taxes is made more explicit in OrderSource API.

    Made OrderLine, SourceLine and PriceInfo to use unified API for price fields (named Priceful). This should help when implementing template helpers for rendering prices taxful/taxless depending on user's/merchant's preference (Shop's taxfullness could differ from rendering taxfullnes as long as TaxModule may calculate taxes efficiently, which of course is not always true though.)

    There is some small fixes and refactorings included here and there for some things I found out while implementing this. Hope you don't mind.

    TODO:

    • Assigning customers to correct tax groups on creation (retail customers and company customers)
    • Implementing value-added taxes correctly (i.e. not just selecting the first tax, but actually adding them together)
    • The taxful/taxless price rendering stuff as said above.
    • Cleaning up the TODOs
    • Documentation of the whole system (for developers and for merchants)

    Good luck reviewing! Have fun!

    opened by suutari-ai 16
  • Admin: Add carts module for monitoring abandoned carts

    Admin: Add carts module for monitoring abandoned carts

    Add an admin carts module that allows merchants to monitor abanded user carts, total sales, date since last update, and other useful information.

    Refs SHOOP-2237

    opened by shawnadelic 15
  • Core changes for campaigns (SHOOP-2045)

    Core changes for campaigns (SHOOP-2045)

    This PR picks most of the code from PR #317, but some terminology is changed and tests added, documentation improved etc.

    See the commit messages and change log for details.

    opened by suutari-ai 15
  • Telemetry Sender

    Telemetry Sender

    Implements an opt-in-by-default telemetry sender.

    The receiving side is still missingcurrently in PR review, so this doesn't do much except slow down loading of the admin dashboard for a few seconds every 72 hours.

    opened by akx 15
  • Bump certifi from 2021.5.30 to 2022.12.7

    Bump certifi from 2021.5.30 to 2022.12.7

    Bumps certifi from 2021.5.30 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 1
  • Bump pillow from 8.2.0 to 9.3.0

    Bump pillow from 8.2.0 to 9.3.0

    Bumps pillow from 8.2.0 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 1
  • Bump lxml from 4.6.3 to 4.9.1

    Bump lxml from 4.6.3 to 4.9.1

    Bumps lxml from 4.6.3 to 4.9.1.

    Changelog

    Sourced from lxml's changelog.

    4.9.1 (2022-07-01)

    Bugs fixed

    • A crash was resolved when using iterwalk() (or canonicalize()) after parsing certain incorrect input. Note that iterwalk() can crash on valid input parsed with the same parser after failing to parse the incorrect input.

    4.9.0 (2022-06-01)

    Bugs fixed

    • GH#341: The mixin inheritance order in lxml.html was corrected. Patch by xmo-odoo.

    Other changes

    • Built with Cython 0.29.30 to adapt to changes in Python 3.11 and 3.12.

    • Wheels include zlib 1.2.12, libxml2 2.9.14 and libxslt 1.1.35 (libxml2 2.9.12+ and libxslt 1.1.34 on Windows).

    • GH#343: Windows-AArch64 build support in Visual Studio. Patch by Steve Dower.

    4.8.0 (2022-02-17)

    Features added

    • GH#337: Path-like objects are now supported throughout the API instead of just strings. Patch by Henning Janssen.

    • The ElementMaker now supports QName values as tags, which always override the default namespace of the factory.

    Bugs fixed

    • GH#338: In lxml.objectify, the XSI float annotation "nan" and "inf" were spelled in lower case, whereas XML Schema datatypes define them as "NaN" and "INF" respectively.

    ... (truncated)

    Commits
    • d01872c Prevent parse failure in new test from leaking into later test runs.
    • d65e632 Prepare release of lxml 4.9.1.
    • 86368e9 Fix a crash when incorrect parser input occurs together with usages of iterwa...
    • 50c2764 Delete unused Travis CI config and reference in docs (GH-345)
    • 8f0bf2d Try to speed up the musllinux AArch64 build by splitting the different CPytho...
    • b9f7074 Remove debug print from test.
    • b224e0f Try to install 'xz' in wheel builds, if available, since it's now needed to e...
    • 897ebfa Update macOS deployment target version from 10.14 to 10.15 since 10.14 starts...
    • 853c9e9 Prepare release of 4.9.0.
    • d3f77e6 Add a test for https://bugs.launchpad.net/lxml/+bug/1965070 leaving out the a...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 2
  • Bump django from 2.2.24 to 2.2.28

    Bump django from 2.2.24 to 2.2.28

    Bumps django from 2.2.24 to 2.2.28.

    Commits
    • 5c33000 [2.2.x] Bumped version for 2.2.28 release.
    • 29a6c98 [2.2.x] Fixed CVE-2022-28347 -- Protected QuerySet.explain(**options) against...
    • 2c09e68 [2.2.x] Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), a...
    • 8352b98 [2.2.x] Added stub release notes for 2.2.28.
    • 2801f29 [2.2.x] Reverted "Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+."
    • e03648f [2.2.x] Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+.
    • 9d13d8c [2.2.x] Fixed typo in release notes.
    • 047ece3 [2.2.x] Added CVE-2022-22818 and CVE-2022-23833 to security archive.
    • 2427b2f [2.2.x] Post-release version bump.
    • e541f2d [2.2.x] Bumped version for 2.2.27 release.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 2
Releases(v3.1.0)
  • v3.1.0(Aug 17, 2021)

    Changed

    • Pull translations from Transifex
    • BREAKING: Suppliers with no supplier modules cannot create shipments
    • Core: Category.get_hierarchy now ignores any None objects

    Fixed

    • Core: fix reindex migration to active the default language
    Source code(tar.gz)
    Source code(zip)
  • v2.14.3(Aug 17, 2021)

    Changed

    • Core: Category.get_hierarchy now ignores any None objects

    Fixed

    • Admin: Fix primary buttons, list buttons, and filter dropdowns to use css variables
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Aug 16, 2021)

    Added

    • Core: allow saving encrypted configurations
    • Core: add new Catalog API to index and fetch products with annotated price and discounted price

    Fixed

    • Admin: do not break when it's not possible to create shipments
    • Admin: Fix primary buttons, list buttons, and filter dropdowns to use css variables
    • Discounts: show the exclude_selected_category field in admin

    Changed

    • Admin: Do not let users to set value with decimals while adjusting stock quantity if the sales unit doesn't permit.
    • Core: Block an attempt to delete a service provider that still has associated shipping or payment methods.
    • Core: consider an order fully shipped only when all out shipments are sent
    • Front: improve SEO by tuning description meta tag to product, category and CMS pages
    • Importer: index product after importing it
    • BREAKING: Core: Discounts are not cumulative anymore. The best discounted price returned by discount modules is considered.
    • BREAKING: Discounts: Remove coupon code, availability exception and exclude selected contact group from the Discount model. All the related feature were also removed.
    • BREAKING: Front: replaced the ProductListFormModifier.sort_products with a new method: ProductListFormModifier.sort_products_queryset and removed ProductListFormModifier.filter_products and ProductListFormModifier.filter_products and ProductListFormModifier.get_queryset.
    • Front: user the new Catalog API on every place that retrieve products from the database
    • Xtheme: user the new Catalog API on plugins that retrieve products
    • Core: Edit verbose name for ProductMedia.ordering to be more intuitive.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b3(Aug 12, 2021)

  • v3.0.0b2(Aug 10, 2021)

  • v2.14.2(Aug 10, 2021)

  • v3.0.0b1(Aug 10, 2021)

  • v2.14.1(Aug 4, 2021)

    Fixed

    • Admin: add model attribute to BaseAdminObjectSelector
    • Admin: Title to use the shop's requst.shop.public_name value or Shuup as default
    Source code(tar.gz)
    Source code(zip)
  • v2.14.0(Aug 3, 2021)

    Added

    • Admin: add new provides admin_template_injector that allows injection snippet in admin templates

    Fixed

    • Admin: Uploaded shop logo and favicon is updated in admin and auth views

    Changed

    • Admin: Overhaul the model selector view in admin to accept generic searches through provides system.
    • Admin: Migrate primary, secondary, success, danger, and text color SCSS variables to CSS variables
    • Admin: Made active state side menu list icon share same color as text
    • Admin: Made the CSS variables stem from initialized Sass variables in Colors object
    • Xtheme: Add typography models
    Source code(tar.gz)
    Source code(zip)
  • v2.13.0(Jul 27, 2021)

    Changed

    • GDPR: allow provides to extend the user data serialization
    • Admin: remove the members field from the permission groups
    • Admin: add the groups field in user picotable list
    • Admin: improve the format of the user list for mobile devices

    Fixed

    • Core: Fix basket quantity for parent package products
    • Reports: prevent tables from overflowing to the right in pdf reports
    • Core: don't make attribute choices required fields
    • Front: enforce setting the current customer to the basket
    • Admin: fix crash when viewing an order with a shipment_method without a carrier defined

    Added

    • Tasks: trigger a notification event when a task is created
    • Admin: add warnings to the product page through provides
    • Core: add history for order status changes
    Source code(tar.gz)
    Source code(zip)
  • v2.12.0(Jul 15, 2021)

    Fixed

    • Front: SupplierProductListFilter to take all vendors from the category and all sub categories
    • Front: Fix the alert class when it is an error
    • Xtheme: only use the id attribute if the variable is a Product instance in Async Product Cross Sells plugin
    • Reports: do not catch generic Exception to prevent hiding other issues

    Changed

    • Core: reuse existing ProductVariationResult when a combination hash matches

    Added

    • Front: add timezone view to save the user's current timezone
    Source code(tar.gz)
    Source code(zip)
  • v2.11.0(Jul 7, 2021)

    Added

    • GDPR: create a snippet blocker to prevent injection when cookie is not consented
    • Xtheme: create xtheme_snippet_blocker provides to allow blocking a global script injection
    • Xtheme: add name a Snippet object
    • Reports: add CSV report writer

    Fixed

    • Front: fix so orders that are canceled can't be payed for
    • General: fix critical vulnerability on views that were returning not escaped content making it open to XSS attacks
    • Admin: fix code mirror destruction by node id

    Changed

    • Reports: clean malicius content from the HTML and CSV exporters
    • Reports: prevent formulas from being exported in excel writer
    • Tests: log errors into a log file
    • Admin: hide email template button based on permission
    • Reports: improve log when an importer fails
    Source code(tar.gz)
    Source code(zip)
  • v2.10.8(Jun 30, 2021)

  • v2.10.7(Jun 29, 2021)

  • v2.10.6(Jun 25, 2021)

    Fixed

    • Core: fix service components get cost
    • Utils: fix MultiLanguageModelForm so language dependent filed will only be required if the language is required
    Source code(tar.gz)
    Source code(zip)
  • v2.10.5(Jun 22, 2021)

  • v2.10.4(Jun 21, 2021)

  • v2.10.3(Jun 15, 2021)

  • v2.10.2(Jun 11, 2021)

  • v2.10.1(Jun 7, 2021)

  • v2.10.0(Jun 7, 2021)

    Removed

    • Admin: remove the provides to allow adding extra fields to the Attribute form

    Add

    • Core: Allow a supplier to have multiple modules
    • Core: add option to store tasks in the database to collect results

    Changed

    • General: pull translation strings from Transifex
    • Admin: filter products in list and edit views according to product kind listing name
    • Core: suppliers don't have default supplier modules anymore
    • Importers: enable importers to run asynchronously
    • Importers: change the admin views to show the list of import processes

    Fixed

    • Admin: fix picotable overflow issue
    • Notify: always overrride the current notification data with the new one
    Source code(tar.gz)
    Source code(zip)
  • v2.10.0b1(Jun 2, 2021)

  • v2.9.2(May 26, 2021)

    Fixed

    • General: replace hash() with sha1() as Python's hash() function doesn't have a stable result across processes
    • Core: use SHA-1 to hash cache keys as Python's hash() function doesn't have a stable result across processes

    Changed

    • Cache product orderability and prices using a list of user groups instead of per contact
    • Pull translation strings from Transifex
    Source code(tar.gz)
    Source code(zip)
  • 2.9.1(May 24, 2021)

  • v2.9.0(May 19, 2021)

    Added

    • Admin: add a method in AdminModule that allows returning help texts for permissions

    Fixed

    • Notify: add notify styles to the script editor iframe to fix email editor size
    • Importer: use more bites in order to detect csv dialect in importer
    • Admin: save the current user menu using the current language

    Changed

    • Pull DE translations from Transifex
    • Xtheme: allow async plugin to have orderable only flag set
    • Xtheme: use the current language as part of the plugins cache key
    Source code(tar.gz)
    Source code(zip)
  • v2.8.3(May 17, 2021)

    Fixed

    • Xtheme: use the context while generating the cache key
    • Xtheme: do not crash the whole site when a plugin fails to render
    • Admin: Force to parse reason as string before encoding the url
    Source code(tar.gz)
    Source code(zip)
  • v2.8.2(May 17, 2021)

    Fixed

    • Admin: force escape help texts which can contain " characters
    • Admin: show translation fields from all polymorphic models available
    • Xtheme: hash the cache key to prevent strings larger then 250 chars
    Source code(tar.gz)
    Source code(zip)
  • v2.8.1(May 17, 2021)

  • v2.8.0(May 11, 2021)

    Changed

    • General: make some plugins cacheable
    • Xtheme: add attribute on every plugin to indicate whether it can be cached or not

    Removed

    • Xtheme: removed the SHUUP_XTHEME_USE_PLACEHOLDER_CACHE setting and do not cache the entire placeholder content

    Fixed

    • Core: implement choice attribute getter and setter correctly
    • Admin: collect translation strings from Shepard Tour
    Source code(tar.gz)
    Source code(zip)
  • v2.7.3(May 11, 2021)

    Fixed

    • Admin: use correct translated label syntax for form fields
    • Front: Remove untranslated Error! prefix in alert messages
    • Campaigns: fix the translation string format

    Changed

    • General: use gettext_lazy to make sure translations work
    • Front: unify the Customer Information title across the dashboard
    • Front: bump bootstrap-select and use translated strings while initializing it
    Source code(tar.gz)
    Source code(zip)
Owner
Shuup
Open Source E-Commerce
Shuup
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Indico Indico is: ? a general-purpose event management tool; ? fully web-based; ? feature-rich but also extensible through the use of plugins; ⚖️ O

Indico 1.4k Dec 31, 2022
Website for PyCon

PyCon 2019 Web Site Built by the Python Community atop the Django web framework. Rather than use this as the basis for your conference site directly,

PyCon 155 Nov 05, 2022
用Hexo的方式管理WordPress(使用Github Actions自动更新文章到WordPress)

方圆小站Github仓库 ---start--- 目录(2021年02月17日更新) 《刺杀小说家》一个勇士屠恶龙救苍生的故事 衡水的中学为高考服务,996.icu为人民企业家服务 轻薄的代价(纪念不足两岁MacBook轻薄本的陨落) PP鸭最佳替代品!《图压》批量压缩图片而不损失画质,支持JPG,

zhaoolee 166 Jan 06, 2023
LibreLingo🐢 🌎 📚 a community-owned language-learning platform

LibreLingo's mission is to create a modern language-learning platform that is owned by the community of its users. All software is licensed under AGPLv3, which guarantees the freedom to run, study, s

Daniel Kantor 1.4k Jan 09, 2023
Django Fiber - a simple, user-friendly CMS for all your Django projects

Django Fiber An important message about this project Hi Django Fiber enthusiasts! This project was started by the people at Ride The Pony, Leukeleu an

666 Dec 15, 2022
A curated list of awesome packages, articles, and other cool resources from the Wagtail community.

Awesome Wagtail A curated list of awesome packages, articles, and other cool resources from the Wagtail community. Wagtail is a Python CMS powered by

Springload 1.7k Jan 03, 2023
A self-hosted application that lets you create podcast RSS feeds from YouTube playlists

Playlist2Podcast A self-hosted application that lets you create podcast RSS feeds from YouTube playlists. What Does This Do? Takes a list of YouTube p

Simon 12 Nov 14, 2022
Library Management system designed for managing and operating various aspects of a library

Proposal This proposal is written to clarify the project work of Information Systems, assigned to us as an individual task in order to tackle the case

Prawal 1 Oct 27, 2021
The easy-to-use and developer-friendly CMS

django CMS Open source enterprise content management system based on the Django framework and backed by the non-profit django CMS Association. Get inv

django CMS Association 9.1k Jan 04, 2023
CMS for everyone, easy to deploy and scale, robust modular system with many packages.

Django-Leonardo Full featured platform for fast and easy building extensible web applications. Don't waste your time searching stable solution for dai

97 Nov 17, 2022
wger Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger (ˈvɛɡɐ) Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger Project 2k Dec 29, 2022
A course management web application

umber a course management web app built with python Flask, sqlite3, and git. installation Tested on Ubuntu 18 with python 3.5. # -- Install the system

Jim Mahoney 6 Jun 03, 2022
A Django content management system focused on flexibility and user experience

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience,

Wagtail 13.8k Jan 02, 2023
An encylopedia that runs on Django as part of CS50w's coursework

Django Wiki As part of the CS50w course, this project aims to apply the use of Django together with HTML and CSS to replicate an encyclopedia. Require

Beckham 1 Oct 28, 2021
A full-stack clone of Instagram, allowing the user to interact with posts and other users.

This project is a full-stack clone of Instagram, allowing the user to interact with posts and other users

Alejandro Carrizosa Grant 4 Feb 14, 2022
🐰 Bunnybook 🐰 A tiny social network (for bunnies), built with FastAPI and React+RxJs.

🐰 Bunnybook 🐰 A tiny social network (for bunnies), built with FastAPI and React+RxJs. Click here for live demo! Included features: 💬 chat 🔴 online

Pietro Bassi 190 Jan 03, 2023
A plugin for Wagtail CMS, to have Icon Blocks (Fontawesome support)

WAGTAIL ICONIFY Library developed for Wagtail CMS, its purpose is to provide icon blocks from various libraries Special thanks to Alex Gleason, as wel

2 Jun 07, 2022
A website (webapp) to get food recipes by recipes names & ingredients.

Ramy's tedbira A website (aka: webapp) to get food recipes by recipes names & ingredients that you have in your fridge, using Django-framework and Spo

Rami Berrekia 15 Dec 23, 2022
plumi video sharing

December 2017 update We are moving tickets from the Plumi tracker (trac.plumi.org) here, for historical reasons. Plumi video sharing system Plumi is a

Plumi 111 Dec 15, 2022
ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers online.

ConnectLearn ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers o

Aditya 5 Oct 24, 2021