From 1be1ffdf2443f777fc587f2763834186ba04ead8 Mon Sep 17 00:00:00 2001 From: Dmitriy Shesterkin Date: Fri, 5 May 2017 22:24:03 +0300 Subject: [PATCH] add watermark app, templatetag, templates --- batiskaf/jinja2.py | 2 + batiskaf/jinja2_ext/currency.py | 1 - batiskaf/jinja2_ext/watermarks.py | 6 + batiskaf/settings.py | 1 + .../includes/category_category_thumb.jinja | 2 +- .../includes/category_product_thumb.jinja | 2 +- batiskaf/templates/jinja2/index.jinja | 2 +- batiskaf/templates/jinja2/product.jinja | 6 +- batiskaf/templates/jinja2/promo/list.jinja | 2 +- static/watermarks/logo-all-small.png | Bin 0 -> 18272 bytes static/watermarks/logo-small-45.png | Bin 0 -> 58527 bytes watermarker/__init__.py | 1 + watermarker/admin.py | 15 ++ watermarker/core.py | 168 ++++++++++++++++++ watermarker/migrations/0001_initial.py | 34 ++++ watermarker/migrations/__init__.py | 0 watermarker/models.py | 52 ++++++ 17 files changed, 286 insertions(+), 8 deletions(-) create mode 100644 batiskaf/jinja2_ext/watermarks.py create mode 100644 static/watermarks/logo-all-small.png create mode 100644 static/watermarks/logo-small-45.png create mode 100644 watermarker/__init__.py create mode 100644 watermarker/admin.py create mode 100644 watermarker/core.py create mode 100644 watermarker/migrations/0001_initial.py create mode 100644 watermarker/migrations/__init__.py create mode 100644 watermarker/models.py diff --git a/batiskaf/jinja2.py b/batiskaf/jinja2.py index 91ee1ec..eaa3141 100644 --- a/batiskaf/jinja2.py +++ b/batiskaf/jinja2.py @@ -4,6 +4,7 @@ from django.core.urlresolvers import reverse from batiskaf.jinja2_ext.thumbnails import thumbnail from batiskaf.jinja2_ext.cart import cart from batiskaf.jinja2_ext.currency import currency +from batiskaf.jinja2_ext.watermarks import watermark from batiskaf.jinja2_ext.html_filters import * from jinja2 import Environment from store.models import Category, Brand, Currency @@ -22,6 +23,7 @@ def environment(**options): env.filters['thumbnail'] = thumbnail env.filters['cart'] = cart env.filters['currency'] = currency + env.filters['watermark'] = watermark env.filters['bootstrap'] = bootstrap env.filters['bootstrap_inline'] = bootstrap_inline env.filters['bootstrap_horizontal'] = bootstrap_horizontal diff --git a/batiskaf/jinja2_ext/currency.py b/batiskaf/jinja2_ext/currency.py index bffee30..7af7248 100644 --- a/batiskaf/jinja2_ext/currency.py +++ b/batiskaf/jinja2_ext/currency.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # -*- coding: utf-8 -*- from store.currency import Currency diff --git a/batiskaf/jinja2_ext/watermarks.py b/batiskaf/jinja2_ext/watermarks.py new file mode 100644 index 0000000..06b7e50 --- /dev/null +++ b/batiskaf/jinja2_ext/watermarks.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +from watermarker import core + + +def watermark(url, wm): + return core.watermark(url, wm) diff --git a/batiskaf/settings.py b/batiskaf/settings.py index a045cd7..500b391 100644 --- a/batiskaf/settings.py +++ b/batiskaf/settings.py @@ -62,6 +62,7 @@ INSTALLED_APPS = ( 'django.contrib.sitemaps', 'django.contrib.sites', #'django_extensions', + 'watermarker', 'rest_framework', 'easy_thumbnails', 'bootstrapform_jinja', diff --git a/batiskaf/templates/jinja2/includes/category_category_thumb.jinja b/batiskaf/templates/jinja2/includes/category_category_thumb.jinja index ccb54e6..0c27948 100644 --- a/batiskaf/templates/jinja2/includes/category_category_thumb.jinja +++ b/batiskaf/templates/jinja2/includes/category_category_thumb.jinja @@ -2,7 +2,7 @@
{% set im = child.image|thumbnail("420x420") %} - Купить {{ child.title }}

diff --git a/batiskaf/templates/jinja2/includes/category_product_thumb.jinja b/batiskaf/templates/jinja2/includes/category_product_thumb.jinja index 25fe254..5c976f4 100644 --- a/batiskaf/templates/jinja2/includes/category_product_thumb.jinja +++ b/batiskaf/templates/jinja2/includes/category_product_thumb.jinja @@ -7,7 +7,7 @@ {% endif %} {% set im = product.main_image()|thumbnail("420x420") %} - Купить {{ product.title }}
diff --git a/batiskaf/templates/jinja2/index.jinja b/batiskaf/templates/jinja2/index.jinja index 565dac4..74f3eea 100644 --- a/batiskaf/templates/jinja2/index.jinja +++ b/batiskaf/templates/jinja2/index.jinja @@ -36,7 +36,7 @@
{% set im = product.main_image()|thumbnail("420x420") %} - Купить {{ product.title }} diff --git a/batiskaf/templates/jinja2/product.jinja b/batiskaf/templates/jinja2/product.jinja index 3ec8f5e..98c7ed2 100644 --- a/batiskaf/templates/jinja2/product.jinja +++ b/batiskaf/templates/jinja2/product.jinja @@ -36,9 +36,9 @@
{% set im = product.main_image()|thumbnail("398x398") %} - {{ product.title }} + data-zoom-image='/static/{{ product.main_image().url|watermark('big-photo')}}'/>

@@ -149,7 +149,7 @@
{% set im = product.main_image()|thumbnail("420x420") %} - Купить {{ product.title }} diff --git a/batiskaf/templates/jinja2/promo/list.jinja b/batiskaf/templates/jinja2/promo/list.jinja index ce161bf..ffdd469 100644 --- a/batiskaf/templates/jinja2/promo/list.jinja +++ b/batiskaf/templates/jinja2/promo/list.jinja @@ -39,7 +39,7 @@

{# {% set im = object.image|thumbnail("400x400") %}#} - {{ object.title }} diff --git a/static/watermarks/logo-all-small.png b/static/watermarks/logo-all-small.png new file mode 100644 index 0000000000000000000000000000000000000000..44ab2b7c5c68794704523161efa077ff0aa06be4 GIT binary patch literal 18272 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 O0000Akz^*8h8ZlF-E9m@t?Dy7H;1>Z-e* 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 du6xq&pF8