Пример #1
0
def upload(request):
  upload_url = blobstore.create_upload_url(url_for('image/admin/add'))
  blob_key = request.values.get('img_key')
  d = {'upload_url': upload_url}
  if blob_key:
    d['image'] = Image.get(blob_key)
  return render_to_response("image/admin/upload.html", d)
Пример #2
0
def delete(request):
    image_key = request.values.get('img_key')
    if image_key:
        img = Image.get(image_key)
        if img:
            img.delete()
    return Response('Ok')
Пример #3
0
def internal_thumb_image(value, size="700x700"):
    if value is None:
        return ''
    thumb = ThumbImage.get(value)
    if thumb:
        try:
            att = getattr(thumb, "thumb_%s" % size)
        except AttributeError:
            return ''
        return Image.get(att).image
    return ''
Пример #4
0
def img_tag(environment, value, prefix=''):
    if value is None:
        return ''
    i = memcache.get(value)
    if i is None:
        i = Image.get(value)
        if i:
            memcache.add(value, i, 7200)
    if i:
        return Markup(i.get_img_tag(prefix))
    return ''
Пример #5
0
def link(environment, value):
    if value is None:
        return ''
    i = memcache.get(value)
    if i is None:
        i = Image.get(value)
        if i:
            memcache.add(value, i, 7200)
    if i:
        return Markup(i.get_link())
    return ''
Пример #6
0
def get_img_url(key):
    img = ThumbImage.get(key)
    img_url = ''
    if img:
        try:
            att = getattr(img, "thumb_700x700")
            i = Image.get(att)
            img_url = i.get_link()
        except AttributeError:
            img_url = ''
    if img_url:
        return 'www.5studio.ru%s' % img_url
    return ''
Пример #7
0
    def get(self, image_id):
        """Returns an image.

        Args:
            image_id: string representing the image id.
        """
        try:
            image = Image.get(image_id)

            # TODO(sll): Support other image types.
            self.response.headers['Content-Type'] = str('image/%s' % image.format)
            self.response.write(image.raw)
        except:
            raise self.PageNotFoundException
Пример #8
0
def get_mini_main_thumb_url(gift):
    thumb_url = ''
    if gift.main_thumb:
        thumb = ThumbImage.get(gift.main_thumb)
        if thumb:
            try:
                att = getattr(thumb, "thumb_100x100")
                i = Image.get(att)
                thumb_url = i.get_link()
            except AttributeError:
                pass
        if thumb_url:
            return 'www.5studio.ru%s' % thumb_url
    return ''
Пример #9
0
def get_thumb_url(key, thumb_size = "400x400"):
    thumb_size_ = "thumb_%s" % thumb_size
    thumb = ThumbImage.get(key)
    thumb_url = ''
    if thumb:
        try:
            att = getattr(thumb, thumb_size_)
            i = Image.get(att)
            thumb_url = i.get_link()
        except AttributeError:
            thumb_url = ''
    if thumb_url:
        return 'www.5studio.ru%s' % thumb_url
    return ''
Пример #10
0
def get_main_img_url(gift):
    img_url = ''
    if gift.main_thumb:
        img = ThumbImage.get(gift.main_thumb)
        if img:
            try:
                att = getattr(img, "thumb_700x700")
                i = Image.get(att)
                img_url = i.get_link()
            except AttributeError:
                pass
        if img_url:
            return 'www.5studio.ru%s' % img_url
    return ''
Пример #11
0
def send_newsletter_task(request, user_key, newsletter_key):
    newsletter = Newsletter.get(newsletter_key)
    managers = []
    message = mail.EmailMessage(sender=settings.DEFAULT_MAIL_FROM, subject=newsletter.title)
    user = UserProfile.get(user_key)
    message.to = user.email
    if not message.to:
        return Response("Ok")

    gifts = []
    gifts_images = {}
    if newsletter.gifts:
        gifts_split = newsletter.gifts.split(",")
        for gift in gifts_split:
            try:
                gift = gift.strip()
                obj = Gift.all().filter("uid =", gift).get()
                if obj:
                    gifts.append(obj)
                    if obj.main_thumb:
                        try:
                            img = ThumbImage.get(obj.main_thumb)
                            img = Image.get(img.thumb_200x200)
                            if img:
                                gifts_images[obj.uid] = base64.b64encode(str(img.image))
                        except Exception:
                            pass
            except Exception:
                pass

    message_text = render_to_string(
        "postman/send_newsletter.html",
        {"newsletter": newsletter, "gifts": gifts, "managers": managers, "gifts_images": gifts_images},
    )
    message.html = message_text
    attachments = []
    for file_key in newsletter.n_price_list:
        file_ = File.get(file_key)
        if file_ and file_.blob_key:
            bi = blobstore.BlobInfo.get(file_.blob_key)
            if bi:
                attachments.append(("%s" % file_.title_filename, bi.open().read()))
    message.attachments = attachments
    message.send()
    return Response("OK")
Пример #12
0
def get_image(request, thumb_key):
    thumb_key=string.rsplit(thumb_key, '.', maxsplit=1)[0]
    im = memcache.get(thumb_key)
    if not im:
        try:
            im = Image.get(thumb_key)
        except BadKeyError:
            return Response(status=404)
        if im:
            memcache.add(thumb_key, im, 28*24*60*60)
    if im:
        headers = Headers()
        headers['Content-Type'] = im.content_type
        headers['Last-Modified'] = im.modif_time.strftime(HTTP_DATE_FMT)
        current_day = datetime.today()
        exp_delta = timedelta(days=7)
        headers['Expires'] = (current_day + exp_delta).strftime(HTTP_DATE_FMT)
        return Response(im.image, headers=headers)
    return Response(status=404)
Пример #13
0
def write_category(wb, category, all=False):
    if category.gifts:
        ws = wb.add_sheet(category.name)
        if all:
            gifts = category.gifts
        else:
            gifts = category.gifts.filter('in_trash =', False).filter('leftovers >', 0)
        write_head(ws)
        for i, g in enumerate(gifts):
            url = 'http://www.5studio.ru/g/%s/' % g.uid
            ws.write(i + 1, 0, xlwt.Formula('HYPERLINK("%s")' % url))
            if g.main_thumb:
                img = ThumbImage.get(g.main_thumb)
                if img and getattr(img, 'thumb_100x100'):
                    img = "http://www.5studio.ru%s" % Image.get(img.thumb_100x100).get_link()
                    ws.write(i + 1, 1, xlwt.Formula('HYPERLINK("%s")' % img))
            ws.write(i + 1, 2, g.catalogue_id)
            ws.write(i + 1, 3, g.barcode)
            ws.write(i + 1, 4, g.name)
            ws.write(i + 1, 5, g.category.name)
            ws.write(i + 1, 6, g.group.name)
            ws.write(i + 1, 7, g.brand)
            ws.write(i + 1, 8, g.price)
            ws.write(i + 1, 9, g.real_price)
Пример #14
0
def send_newsletter_task2(request, email, newsletter_key_id):
    newsletter = Newsletter2.get_by_id(newsletter_key_id)

    managers = []
    for mgr_id in newsletter.managers:
        mgr = Manager.get_by_id(mgr_id)
        if mgr:
            managers.append(mgr)

    message = mail.EmailMessage(sender=settings.DEFAULT_MAIL_FROM, subject=newsletter.title)
    message.to = email
    if not message.to:
        return Response("Ok")
    mangers_emails = [manager.email for manager in managers]
    if mangers_emails:
        message.reply_to = ",".join(mangers_emails)

    gifts = []
    gifts_images = {}
    if newsletter.gifts:
        gifts_split = newsletter.gifts.split(",")
        for gift in gifts_split:
            try:
                gift = gift.strip()
                obj = Gift.all().filter("uid =", gift).get()
                if obj:
                    gifts.append(obj)
                    if obj.main_thumb:
                        try:
                            img = ThumbImage.get(obj.main_thumb)
                            img = Image.get(img.thumb_200x200)
                            if img:
                                gifts_images[obj.uid] = base64.b64encode(str(img.image))
                        except Exception:
                            pass
            except Exception:
                pass

    message_text = render_to_string(
        "postman/send_newsletter2.html",
        {"newsletter": newsletter, "gifts": gifts, "managers": managers, "gifts_images": gifts_images},
    )
    message.html = message_text
    attachments = []
    for file_key in newsletter.n_price_list:
        file_ = File.get(file_key)
        if file_ and file_.blob_key:
            bi = blobstore.BlobInfo.get(file_.blob_key)
            if bi:
                attachments.append(("%s" % file_.title_filename, bi.open().read()))
    if attachments:
        message.attachments = attachments
    try:
        message.send()
    except apiproxy_errors.OverQuotaError:

        def txn():
            taskqueue.add(
                url=url_for("postman/send_newsletter_task2", email=email, newsletter_key_id=newsletter_key_id),
                transactional=True,
            )

        db.run_in_transaction(txn)
    return Response("OK")