def crop_image_post(self, id): crop = (int(request.params.get('x')), int(request.params.get('y')), int(request.params.get('x2')), int(request.params.get('y2'))) item = meta.find(model.Medium, id) item.image_crop = crop item.updated_ts = datetime.now() meta.Session.add(item) meta.Session.commit() h.flash(_("updated: '%s'") % h.html_escape(item.title)) return_to = request.params.get('return_to') log.debug("return_to: %s" % return_to) if return_to: return redirect(str(return_to)) else: return redirect(url(controller='medium', action='edit', id=id))
def mass_add_post(self): if not request.params.get('title'): h.flash(_("please specify name")) return redirect(url(controller='medium', action='mass_add')) if int(request.params.get('media_type', -1)) < 0: h.flash(_("please specify media type")) return self.mass_add() media_type_obj = meta.Session.query(model.MediaType).get(request.params.get('media_type', -1)) count = 0 new_media = [] failed = [] for item in request.params.get('title').split('\n'): if not item.strip(): continue query = meta.Session\ .query(model.Medium)\ .filter(or_(model.Medium.title==item, model.Medium.isbn==item)) if query.first() != None: first_item = query.first() h.flash(_("medium already exists: %s") %\ anchor_tmpl.render_unicode(url=h.url_for(controller='medium', action='edit', id=first_item.id), text=h.html_escape(first_item.title)), escape=False) continue log.debug("!!!item: %s" % item) if re.match('^\d+\s*$', item): #~ log.info("@@@@@@@@@@@@@@@@@@ treat input as isbn: %s" % item) import medienverwaltungweb.lib.amazon as amazon result = amazon.AddMediumByISBN(item, media_type_obj.amzon_search_index) if not result: #~ h.flash(_("I tried to use '%s' as an isbn, but amazon didn't find it.") % item) h.flash(_("Amzon does not knwo what '%s' is.") % item) failed.append(item) continue elif not result['success']: h.flash(_("Amazon Lookup failed with the following error: %s") % result['message']) failed.append(item) continue medium_id = result['medium_id'] record = meta.Session.query(model.Medium).get(medium_id) new_media.append(record) continue record = model.Medium() record.title = item.strip() record.created_ts = datetime.now() record.updated_ts = datetime.now() record.media_type_id = request.params.get('media_type') meta.Session.add(record) count += 1 new_media.append(record) if len(new_media) > 0: meta.Session.commit() log.debug("new_media: %s" % unicode(new_media[0].title)) log.debug("type new_media: %s" % type(new_media[0].title)) link_list = map(lambda x: anchor_tmpl.render_unicode(url=h.url_for(controller='medium', action='edit', id=x.id), text=x.title), new_media) link_list = ", ".join(link_list) msg = ungettext("added medium %(media)s", "added %(num)d media: %(media)s", len(new_media)) % {'num':len(new_media), 'media':link_list} h.flash(msg, escape=False) #~ h.flash(UnsafeString(msg)) if len(new_media) == 1: return redirect(url(controller='medium', action='edit', id=new_media[0].id)) else: return redirect(url(controller='medium', action='index'))