def upload_new_image(request): if request.method == 'POST': locstore_key = request.values.get('locstore_key', None) locstore = None if locstore_key: locstore = LocStore.get(locstore_key) if locstore is None: return redirect('admin/locstore/list/') new_th_form = AddNewThumb() if request.form and new_th_form.validate(request.form, request.files): thumb = new_th_form['img'] content_type = 'image/jpeg' if locstore.name: title = locstore.name.replace('"', '"') else: title = '' thumb_img = ThumbImage() thumb_img.add_new_thumb(blob_img=thumb, thumb_size=(700, 700, ), title=title, content_type=content_type) thumb_img.add_new_thumb(blob_img=thumb, thumb_size=(400, 400, ), title=title, content_type=content_type) thumb_img.add_new_thumb(blob_img=thumb, thumb_size=(200, 200, ), title=title, content_type=content_type) thumb_img.add_new_thumb(blob_img=thumb, thumb_size=(100, 100, ), title=title, content_type=content_type) thumb_img.put() locstore.images.append(str(thumb_img.key())) if len(locstore.images) == 1: locstore.main_image = str(thumb_img.key()) locstore.put() memcache.delete('get_locstore_%s' % locstore.key()) return redirect('admin/locstore/edit/%s/' % locstore.key()) return redirect('/')
def delete_image(request): locstore_key = request.values.get('locstore_key', None) image_key = request.values.get('image_key', None) locstore = None if locstore_key: locstore = memcache.get('get_locstore_%s' % locstore_key) if not locstore: locstore = LocStore.get(locstore_key) if locstore is None: return redirect('/admin/locstore/list/') img = ThumbImage.get(image_key) if img is None: locstore.images.remove(image_key) locstore.put() memcache.set('get_locstore_%s' % locstore.key(), locstore, MEMCACHE_TIMEOUT) return redirect('/admin/locstore/edit/%s/' % locstore.key()) locstore.images.remove(image_key) if locstore.main_image == image_key: if len(locstore.images): locstore.main_image=locstore.images[0] else: locstore.main_image = '' img.delete() if not len(locstore.images): locstore.main_image = '' locstore.put() memcache.set('get_locstore_%s' % locstore.key(), locstore, MEMCACHE_TIMEOUT) return redirect('/admin/locstore/edit/%s/' % locstore.key())
def edit(request, locstore_key): locstore = memcache.get('get_locstore_%s' % locstore_key) if not locstore: locstore = LocStore.get(locstore_key) if request.method == 'POST': form = AddLocStoreForm() if request.form and form.validate(request.form): tmp = form.save(commit=False) if tmp.name: locstore.name = tmp.name locstore.description = tmp.description locstore.put() return redirect('/admin/locstore/list/') else: form = AddLocStoreForm(instance=locstore) add_new_thumb_form = AddNewThumb() return render_to_response('locstore/admin/edit.html', { 'locstore_edit_form': form.as_widget(), 'add_new_thumb_form': add_new_thumb_form.as_widget(), 'locstore': locstore})
def change_main_image(request): locstore_key = request.values.get('locstore_key', None) image_key = request.values.get('image_key', None) locstore = None if locstore_key: locstore = memcache.get('get_locstore_%s' % locstore_key) if not locstore: locstore = LocStore.get(locstore_key) if locstore is None: return redirect('/admin/locstore/list/') thumb = ThumbImage.get(image_key) if thumb is None: locstore.images.remove(image_key) locstore.put() memcache.set('get_locstore_%s' % locstore.key(), locstore, MEMCACHE_TIMEOUT) return redirect('/admin/locstore/edit/%s/' % locstore.key()) if locstore.main_image == image_key: return redirect('/admin/locstore/edit/%s/' % locstore.key()) else: locstore.main_image = image_key locstore.put() memcache.set('get_locstore_%s' % locstore.key(), locstore, MEMCACHE_TIMEOUT) return redirect('/admin/locstore/edit/%s/' % locstore.key())
def index(request): locstores = LocStore.all().order('name') return render_to_response('locstore/index.html', {'locstores': locstores})
def delete(request, locstore_key): locstore = LocStore.get(locstore_key) if locstore: locstore.delete() return locstore_list(request)
def locstore_list(request): locstores = LocStore.all() return render_to_response('locstore/admin/locstore_list.html', {'locstores': locstores})