Пример #1
0
class ImagePlugin(BasePlugin):

    slug = settings.SLUG
    sidebar = {
        'headline': _('Images'),
        'icon_class': 'fa-picture-o',
        'template': 'wiki/plugins/images/sidebar.html',
        'form_class': forms.SidebarForm,
        'get_form_kwargs': (lambda a: {'instance': models.Image(article=a)})
    }

    # List of notifications to construct signal handlers for. This
    # is handled inside the notifications plugin.
    notifications = [
        {'model': models.ImageRevision,
         'message': lambda obj: _("An image was added: %s") % truncate_title(obj.get_filename()),
         'key': ARTICLE_EDIT,
         'created': False,
         # Ignore if there is a previous revision... the image isn't new
         'ignore': lambda revision: bool(revision.previous_revision),
         'get_article': lambda obj: obj.article}
    ]

    class RenderMedia:
        js = [
            'wiki/colorbox/jquery.colorbox-min.js',
            'wiki/js/images.js',
        ]

        css = {
            'screen': 'wiki/colorbox/example1/colorbox.css'
        }

    urlpatterns = {'article': [
        url('^$',
            views.ImageView.as_view(),
            name='images_index'),
        url('^delete/(?P<image_id>\d+)/$',
            views.DeleteView.as_view(),
            name='images_delete'),
        url('^restore/(?P<image_id>\d+)/$',
            views.DeleteView.as_view(),
            name='images_restore',
            kwargs={'restore': True}),
        url('^purge/(?P<image_id>\d+)/$',
            views.PurgeView.as_view(),
            name='images_purge'),
        url('^(?P<image_id>\d+)/revision/change/(?P<rev_id>\d+)/$',
            views.RevisionChangeView.as_view(),
            name='images_set_revision'),
        url('^(?P<image_id>\d+)/revision/add/$',
            views.RevisionAddView.as_view(),
            name='images_add_revision'),
    ]}

    markdown_extensions = [ImageExtension()]

    def __init__(self):
        # print "I WAS LOADED!"
        pass
Пример #2
0
    def setUp(self):
        super().setUp()

        self.image_revision = models.ImageRevision(
            image=self._create_test_gif_file(), width=1, height=1)
        self.image = models.Image(article=self.root_article)
        self.image.add_revision(self.image_revision)
        self.assertEqual(1, self.image.id)
Пример #3
0
 def save(self, *args, **kwargs):
     if not self.instance.id:
         image = models.Image()
         image.article = self.article
         kwargs['commit'] = False
         revision = super(SidebarForm, self).save(*args, **kwargs)
         revision.set_from_request(self.request)
         image.add_revision(self.instance, save=True)
         return revision
     return super(SidebarForm, self).save(*args, **kwargs)
Пример #4
0
class ImagePlugin(BasePlugin):

    slug = settings.SLUG
    sidebar = {
        "headline": _("Images"),
        "icon_class": "fa-image",
        "template": "wiki/plugins/images/sidebar.html",
        "form_class": forms.SidebarForm,
        "get_form_kwargs": (lambda a: {
            "instance": models.Image(article=a)
        }),
    }

    # List of notifications to construct signal handlers for. This
    # is handled inside the notifications plugin.
    notifications = [{
        "model":
        models.ImageRevision,
        "message":
        lambda obj: _("An image was added: %s") % truncate_title(
            obj.get_filename()),
        "key":
        ARTICLE_EDIT,
        "created":
        False,
        # Ignore if there is a previous revision... the image isn't new
        "ignore":
        lambda revision: bool(revision.previous_revision),
        "get_article":
        lambda obj: obj.article,
    }]

    class RenderMedia:
        js = [
            "wiki/colorbox/jquery.colorbox-min.js",
            "wiki/js/images.js",
        ]

        css = {"screen": "wiki/colorbox/example1/colorbox.css"}

    urlpatterns = {
        "article": [
            re_path("^$", views.ImageView.as_view(), name="images_index"),
            re_path(
                "^delete/(?P<image_id>[0-9]+)/$",
                views.DeleteView.as_view(),
                name="images_delete",
            ),
            re_path(
                "^restore/(?P<image_id>[0-9]+)/$",
                views.DeleteView.as_view(),
                name="images_restore",
                kwargs={"restore": True},
            ),
            re_path(
                "^purge/(?P<image_id>[0-9]+)/$",
                views.PurgeView.as_view(),
                name="images_purge",
            ),
            re_path(
                "^(?P<image_id>[0-9]+)/revision/change/(?P<rev_id>[0-9]+)/$",
                views.RevisionChangeView.as_view(),
                name="images_set_revision",
            ),
            re_path(
                "^(?P<image_id>[0-9]+)/revision/add/$",
                views.RevisionAddView.as_view(),
                name="images_add_revision",
            ),
        ]
    }

    markdown_extensions = [ImageExtension()]