X-Git-Url: https://scm.cri.ensmp.fr/git/photoprint.git/blobdiff_plain/ccaba0f54cbd41250107d36a49154353425da8b3..b521f0db73266a7bd6b69e6a9891046a03c482ee:/Products/photoprint/cart.py diff --git a/Products/photoprint/cart.py b/Products/photoprint/cart.py new file mode 100644 index 0000000..cbadc53 --- /dev/null +++ b/Products/photoprint/cart.py @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- +####################################################################################### +# Copyright © 2009 Benoît Pin # +# Plinn - http://plinn.org # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # +####################################################################################### +""" Cart definition used to store buyable prints + +""" +from Globals import InitializeClass, Persistent, PersistentMapping +from Acquisition import Implicit +from AccessControl import ModuleSecurityInfo +from Products.CMFCore.utils import getToolByName +from exceptions import SoldOutError, CartLockedError +from tool import COPIES_COUNTERS +from order import CopiesCounters + +from logging import getLogger +console = getLogger('Products.photoprint.cart') + +CART_ITEM_KEYS = ['cmf_uid', 'printing_template', 'quantity'] + +msecurity = ModuleSecurityInfo('Products.photoprint.cart') +msecurity.declarePublic('PrintCart') + +class PrintCart(Persistent, Implicit) : + """ + items are store like that: + {: + {