Commit 97f8413e by Bridger Maxwell

Fixed some circular imports that were causing errors.

parent 8e76eaeb
from django.utils.translation import ugettext as _
"""Base classes for different plugin objects.
* BasePlugin: Create a wiki_plugin.py with a class that inherits from BasePlugin.
* PluginSidebarFormMixin: Mix in this class in the form that should be rendered in the editor sidebar
* PluginSettingsFormMixin: ..and this one for a form in the settings tab.
Please have a look in wiki.models.pluginbase to see where to inherit your
plugin's models.
"""
class BasePlugin(object):
"""Plugins should inherit from this"""
# Must fill in!
slug = None
# Optional
settings_form = None# A form class to add to the settings tab
urlpatterns = []
article_tab = None #(_(u'Attachments'), "icon-file")
article_view = None # A view for article_id/plugin/slug/
notifications = [] # A list of notification handlers to be subscribed if the notification system is active
# Example
# [{'model': models.AttachmentRevision,
# 'message': lambda obj: _(u"A file was changed: %s") % obj.get_filename(),
# 'key': ARTICLE_EDIT,
# 'created': True,
# 'get_article': lambda obj: obj.attachment.article}
# ]
markdown_extensions = []
pass
class PluginSidebarFormMixin(object):
def get_usermessage(self):
pass
class PluginSettingsFormMixin(object):
settings_form_headline = _(u'Settings for plugin')
settings_order = 1
settings_write_access = False
def get_usermessage(self):
pass
......@@ -5,11 +5,13 @@ _EditorClass = None
_editor = None
def getEditorClass():
global _EditorClass
if not _EditorClass:
_EditorClass = get_callable(settings.EDITOR)
return _EditorClass
def getEditor():
global _editor
if not _editor:
_editor = getEditorClass()()
return _editor
......@@ -9,24 +9,24 @@ from django.utils.html import escape, conditional_escape
from itertools import chain
from wiki import models
from wiki.editors import editor
from wiki.editors import getEditor
from wiki.core.diff import simple_merge
from django.forms.widgets import HiddenInput
from wiki.plugins import PluginSettingsFormMixin
from wiki.core import baseplugin
class CreateRootForm(forms.Form):
title = forms.CharField(label=_(u'Title'), help_text=_(u'Initial title of the article. May be overridden with revision titles.'))
content = forms.CharField(label=_(u'Type in some contents'),
help_text=_(u'This is just the initial contents of your article. After creating it, you can use more complex features like adding plugins, meta data, related articles etc...'),
required=False, widget=editor.get_widget()) #@UndefinedVariable
required=False, widget=getEditor().get_widget()) #@UndefinedVariable
class EditForm(forms.Form):
title = forms.CharField(label=_(u'Title'),)
content = forms.CharField(label=_(u'Contents'),
required=False, widget=editor.get_widget()) #@UndefinedVariable
required=False, widget=getEditor().get_widget()) #@UndefinedVariable
summary = forms.CharField(label=_(u'Summary'), help_text=_(u'Give a short reason for your edit, which will be stated in the revision log.'),
required=False)
......@@ -181,7 +181,7 @@ class CreateForm(forms.Form):
title = forms.CharField(label=_(u'Title'),)
slug = forms.SlugField(label=_(u'Slug'), help_text=_(u"This will be the address where your article can be found. Use only alphanumeric characters and - or _. Note that you cannot change the slug after creating the article."),)
content = forms.CharField(label=_(u'Contents'),
required=False, widget=editor.get_widget()) #@UndefinedVariable
required=False, widget=getEditor().get_widget()) #@UndefinedVariable
summary = forms.CharField(label=_(u'Summary'), help_text=_(u"Write a brief message for the article's history log."),
required=False)
......@@ -225,7 +225,7 @@ class DeleteForm(forms.Form):
return cd
class PermissionsForm(PluginSettingsFormMixin, forms.ModelForm):
class PermissionsForm(baseplugin.PluginSettingsFormMixin, forms.ModelForm):
settings_form_headline = _(u'Permissions')
settings_order = 5
......
......@@ -124,10 +124,11 @@ class URLPath(MPTTModel):
root_nodes = cls.objects.root_nodes().filter(site=site)
if not root_nodes:
# (get_or_create does not work for MPTT models??)
root = cls.objects.create(site=site)
article = Article()
article.add_revision(ArticleRevision(title=title, **kwargs),
save=True)
article.save()
root = cls.objects.create(site=site, article=article)
article.add_object_relation(root)
else:
root = root_nodes[0]
......@@ -152,9 +153,12 @@ class URLPath(MPTTModel):
######################################################
# Just get this once
urlpath_content_type = ContentType.objects.get_for_model(URLPath)
urlpath_content_type = None
def on_article_relation_save(instance, *args, **kwargs):
global urlpath_content_type
if not urlpath_content_type:
urlpath_content_type = ContentType.objects.get_for_model(URLPath)
if instance.content_type == urlpath_content_type:
URLPath.objects.filter(id=instance.object_id).update(article=instance.article)
......
from django import forms
from django.utils.translation import ugettext as _
"""Base classes for different plugin objects.
* BasePlugin: Create a wiki_plugin.py with a class that inherits from BasePlugin.
* PluginSidebarFormMixin: Mix in this class in the form that should be rendered in the editor sidebar
* PluginSettingsFormMixin: ..and this one for a form in the settings tab.
Please have a look in wiki.models.pluginbase to see where to inherit your
plugin's models.
"""
class BasePlugin(object):
"""Plugins should inherit from this"""
# Must fill in!
slug = None
# Optional
settings_form = None# A form class to add to the settings tab
urlpatterns = []
article_tab = None #(_(u'Attachments'), "icon-file")
article_view = None # A view for article_id/plugin/slug/
notifications = [] # A list of notification handlers to be subscribed if the notification system is active
# Example
# [{'model': models.AttachmentRevision,
# 'message': lambda obj: _(u"A file was changed: %s") % obj.get_filename(),
# 'key': ARTICLE_EDIT,
# 'created': True,
# 'get_article': lambda obj: obj.attachment.article}
# ]
markdown_extensions = []
pass
class PluginSidebarFormMixin(object):
def get_usermessage(self):
pass
class PluginSettingsFormMixin(object):
settings_form_headline = _(u'Settings for plugin')
settings_order = 1
settings_write_access = False
def get_usermessage(self):
pass
......@@ -2,15 +2,14 @@
from django.conf.urls.defaults import patterns, url
from django.utils.translation import ugettext as _
from wiki.core import plugins_registry
from wiki import plugins
from wiki.core import plugins_registry, baseplugin
from wiki.plugins.attachments import views
from wiki.plugins.attachments import models
from wiki.plugins.attachments import settings
from wiki.plugins.attachments.markdown_extensions import AttachmentExtension
from wiki.plugins.notifications import ARTICLE_EDIT
class AttachmentPlugin(plugins.BasePlugin):
class AttachmentPlugin(baseplugin.BasePlugin):
#settings_form = 'wiki.plugins.notifications.forms.SubscriptionForm'
......
from django import forms
from django.utils.translation import ugettext as _
from wiki.plugins import PluginSidebarFormMixin
from wiki.core.baseplugin import PluginSidebarFormMixin
from wiki.plugins.images import models
......
......@@ -2,12 +2,11 @@
from django.conf.urls.defaults import patterns, url
from django.utils.translation import ugettext as _
from wiki.core import plugins_registry
from wiki import plugins
from wiki.core import plugins_registry, baseplugin
from wiki.plugins.images import views, models, settings, forms
from wiki.plugins.notifications import ARTICLE_EDIT
class ImagePlugin(plugins.BasePlugin):
class ImagePlugin(baseplugin.BasePlugin):
#settings_form = 'wiki.plugins.notifications.forms.SubscriptionForm'
......
......@@ -6,9 +6,9 @@ from django.contrib.contenttypes.models import ContentType
from django.utils.safestring import mark_safe
from wiki.plugins.notifications import ARTICLE_EDIT
from wiki.plugins import PluginSettingsFormMixin
from wiki.core import baseplugin
class SubscriptionForm(PluginSettingsFormMixin, forms.Form):
class SubscriptionForm(baseplugin.PluginSettingsFormMixin, forms.Form):
settings_form_headline = _(u'Notifications')
settings_order = 1
......
from wiki.core import plugins_registry
from wiki import plugins
from wiki.core import plugins_registry, baseplugin
class NotifyPlugin(plugins.BasePlugin):
class NotifyPlugin(baseplugin.BasePlugin):
settings_form = 'wiki.plugins.notifications.forms.SubscriptionForm'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment