@@ -4,7 +4,7 @@ pywe-jssdk==1.1.0
pywe-membercard==1.0.1
pywe-miniapp==1.1.5
pywe-oauth==1.0.7
-pywe-pay==1.0.12
+pywe-pay==1.0.13
pywe-pay-notify==1.0.4
pywe-response==1.0.1
pywe-sign==1.1.0
@@ -1,3 +1,3 @@ |
||
| 1 |
-hiredis==1.0.0 |
|
| 1 |
+hiredis==1.0.1 |
|
| 2 | 2 |
redis==2.10.6 |
| 3 | 3 |
redis-extensions==1.2.5 |
@@ -0,0 +1,36 @@ |
||
| 1 |
+# -- coding: utf-8 -- |
|
| 2 |
+"""simditor fields.""" |
|
| 3 |
+from django import forms |
|
| 4 |
+from django.db import models |
|
| 5 |
+ |
|
| 6 |
+from .widgets import SimditorWidget |
|
| 7 |
+ |
|
| 8 |
+ |
|
| 9 |
+class RichTextFormField(forms.fields.CharField): |
|
| 10 |
+ """RichTextFormField.""" |
|
| 11 |
+ |
|
| 12 |
+ def __init__(self, *args, **kwargs): |
|
| 13 |
+ kwargs.update( |
|
| 14 |
+ {
|
|
| 15 |
+ 'widget': SimditorWidget() |
|
| 16 |
+ } |
|
| 17 |
+ ) |
|
| 18 |
+ super(RichTextFormField, self).__init__(*args, **kwargs) |
|
| 19 |
+ |
|
| 20 |
+ |
|
| 21 |
+class RichTextField(models.TextField): |
|
| 22 |
+ """RichTextField.""" |
|
| 23 |
+ |
|
| 24 |
+ def __init__(self, *args, **kwargs): |
|
| 25 |
+ super(RichTextField, self).__init__(*args, **kwargs) |
|
| 26 |
+ |
|
| 27 |
+ def formfield(self, **kwargs): |
|
| 28 |
+ defaults = {
|
|
| 29 |
+ 'form_class': self._get_form_class() |
|
| 30 |
+ } |
|
| 31 |
+ defaults.update(kwargs) |
|
| 32 |
+ return super(RichTextField, self).formfield(**defaults) |
|
| 33 |
+ |
|
| 34 |
+ @staticmethod |
|
| 35 |
+ def _get_form_class(): |
|
| 36 |
+ return RichTextFormField |
@@ -0,0 +1,11 @@ |
||
| 1 |
+# -- coding: utf-8 -- |
|
| 2 |
+"""simditor image pillow_backend.""" |
|
| 3 |
+from __future__ import absolute_import |
|
| 4 |
+ |
|
| 5 |
+from simditor import utils |
|
| 6 |
+ |
|
| 7 |
+ |
|
| 8 |
+def image_verify(file_object): |
|
| 9 |
+ """image_verify.""" |
|
| 10 |
+ if not utils.is_valid_image_extension(file_object.name): |
|
| 11 |
+ raise utils.NotAnImageException |
@@ -0,0 +1,28 @@ |
||
| 1 |
+# -- coding: utf-8 -- |
|
| 2 |
+"""simditor image pillow_backend.""" |
|
| 3 |
+from __future__ import absolute_import |
|
| 4 |
+ |
|
| 5 |
+import os |
|
| 6 |
+from io import BytesIO |
|
| 7 |
+ |
|
| 8 |
+from django.core.files.storage import default_storage |
|
| 9 |
+from django.core.files.uploadedfile import InMemoryUploadedFile |
|
| 10 |
+ |
|
| 11 |
+from simditor import utils |
|
| 12 |
+ |
|
| 13 |
+ |
|
| 14 |
+try: |
|
| 15 |
+ from PIL import Image, ImageOps |
|
| 16 |
+except ImportError: |
|
| 17 |
+ import Image |
|
| 18 |
+ import ImageOps |
|
| 19 |
+ |
|
| 20 |
+ |
|
| 21 |
+THUMBNAIL_SIZE = (75, 75) |
|
| 22 |
+ |
|
| 23 |
+ |
|
| 24 |
+def image_verify(f): |
|
| 25 |
+ try: |
|
| 26 |
+ Image.open(f).verify() |
|
| 27 |
+ except IOError: |
|
| 28 |
+ raise utils.NotAnImageException |
@@ -0,0 +1,16 @@ |
||
| 1 |
+# -- coding: utf-8 -- |
|
| 2 |
+"""simditor image_processing.""" |
|
| 3 |
+from __future__ import absolute_import |
|
| 4 |
+ |
|
| 5 |
+from django.conf import settings |
|
| 6 |
+ |
|
| 7 |
+ |
|
| 8 |
+def get_backend(): |
|
| 9 |
+ """Get backend.""" |
|
| 10 |
+ backend = getattr(settings, 'SIMDITOR_IMAGE_BACKEND', None) |
|
| 11 |
+ |
|
| 12 |
+ if backend == 'pillow': |
|
| 13 |
+ from simditor.image import pillow_backend as backend |
|
| 14 |
+ else: |
|
| 15 |
+ from simditor.image import dummy_backend as backend |
|
| 16 |
+ return backend |
@@ -0,0 +1,11 @@ |
||
| 1 |
+<?xml version="1.0" standalone="no"?> |
|
| 2 |
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > |
|
| 3 |
+<svg xmlns="http://www.w3.org/2000/svg"> |
|
| 4 |
+<metadata>Generated by IcoMoon</metadata> |
|
| 5 |
+<defs> |
|
| 6 |
+<font id="icomoon" horiz-adv-x="512"> |
|
| 7 |
+<font-face units-per-em="512" ascent="480" descent="-32" /> |
|
| 8 |
+<missing-glyph horiz-adv-x="512" /> |
|
| 9 |
+<glyph unicode=" " d="" horiz-adv-x="256" /> |
|
| 10 |
+<glyph unicode="" d="M438.624 86.624l-73.376 73.376-45.248-45.248 73.376-73.376-73.376-73.376h192v192zM192 480h-192v-192l73.376 73.376 72.688-72.624 45.248 45.248-72.688 72.624zM192 114.752l-45.248 45.248-73.376-73.376-73.376 73.376v-192h192l-73.376 73.376zM512 480h-192l73.376-73.376-72.688-72.624 45.248-45.248 72.688 72.624 73.376-73.376z" /> |
|
| 11 |
+</font></defs></svg> |
@@ -0,0 +1,82 @@ |
||
| 1 |
+{
|
|
| 2 |
+ "IcoMoonType": "selection", |
|
| 3 |
+ "icons": [ |
|
| 4 |
+ {
|
|
| 5 |
+ "icon": {
|
|
| 6 |
+ "paths": [ |
|
| 7 |
+ "M877.248 786.752l-146.752-146.752-90.496 90.496 146.752 146.752-146.752 146.752h384v-384zM384 0h-384v384l146.752-146.752 145.376 145.248 90.496-90.496-145.376-145.248zM384 730.496l-90.496-90.496-146.752 146.752-146.752-146.752v384h384l-146.752-146.752zM1024 0h-384l146.752 146.752-145.376 145.248 90.496 90.496 145.376-145.248 146.752 146.752z" |
|
| 8 |
+ ], |
|
| 9 |
+ "tags": [ |
|
| 10 |
+ "fullscreen", |
|
| 11 |
+ "expand" |
|
| 12 |
+ ], |
|
| 13 |
+ "grid": 16, |
|
| 14 |
+ "attrs": [] |
|
| 15 |
+ }, |
|
| 16 |
+ "attrs": [], |
|
| 17 |
+ "properties": {
|
|
| 18 |
+ "id": 99, |
|
| 19 |
+ "order": 2, |
|
| 20 |
+ "prevSize": 16, |
|
| 21 |
+ "code": 58880, |
|
| 22 |
+ "name": "fullscreen" |
|
| 23 |
+ }, |
|
| 24 |
+ "setIdx": 1, |
|
| 25 |
+ "setId": 6, |
|
| 26 |
+ "iconIdx": 99 |
|
| 27 |
+ } |
|
| 28 |
+ ], |
|
| 29 |
+ "height": 1024, |
|
| 30 |
+ "metadata": {
|
|
| 31 |
+ "name": "icomoon" |
|
| 32 |
+ }, |
|
| 33 |
+ "preferences": {
|
|
| 34 |
+ "fontPref": {
|
|
| 35 |
+ "prefix": "icon-", |
|
| 36 |
+ "metadata": {
|
|
| 37 |
+ "fontFamily": "icomoon", |
|
| 38 |
+ "majorVersion": 1, |
|
| 39 |
+ "minorVersion": 0 |
|
| 40 |
+ }, |
|
| 41 |
+ "showGlyphs": true, |
|
| 42 |
+ "metrics": {
|
|
| 43 |
+ "emSize": 512, |
|
| 44 |
+ "baseline": 6.25, |
|
| 45 |
+ "whitespace": 50 |
|
| 46 |
+ }, |
|
| 47 |
+ "resetPoint": 58880, |
|
| 48 |
+ "showQuickUse": true, |
|
| 49 |
+ "quickUsageToken": false, |
|
| 50 |
+ "showMetrics": false, |
|
| 51 |
+ "showMetadata": false, |
|
| 52 |
+ "autoHost": true, |
|
| 53 |
+ "embed": false, |
|
| 54 |
+ "ie7": false, |
|
| 55 |
+ "showSelector": false, |
|
| 56 |
+ "showVersion": true |
|
| 57 |
+ }, |
|
| 58 |
+ "imagePref": {
|
|
| 59 |
+ "color": 0, |
|
| 60 |
+ "height": 32, |
|
| 61 |
+ "columns": 16, |
|
| 62 |
+ "margin": 16, |
|
| 63 |
+ "png": false, |
|
| 64 |
+ "sprites": true, |
|
| 65 |
+ "prefix": "icon-" |
|
| 66 |
+ }, |
|
| 67 |
+ "historySize": 100, |
|
| 68 |
+ "showCodes": true, |
|
| 69 |
+ "gridSize": 16, |
|
| 70 |
+ "showLiga": false, |
|
| 71 |
+ "showGrid": true, |
|
| 72 |
+ "showGlyphs": true, |
|
| 73 |
+ "showQuickUse": true, |
|
| 74 |
+ "search": "", |
|
| 75 |
+ "quickUsageToken": {
|
|
| 76 |
+ "UntitledProject1": "ZWEwOTk2NTRmNjMyOGQ1MzAwZWFiYmJlODViMWMzZDcjMiMxNDA3NzM0MTA2IyMj" |
|
| 77 |
+ }, |
|
| 78 |
+ "showQuickUse2": true, |
|
| 79 |
+ "showSVGs": true, |
|
| 80 |
+ "fontHostingName": false |
|
| 81 |
+ } |
|
| 82 |
+} |
@@ -0,0 +1 @@ |