Commit 3081d3175e1730896296ee08e6d23a834a910d3d
1 parent
c2547bc9
Widget system as a Django App
Showing
9 changed files
with
66 additions
and
54 deletions
Show diff stats
colab/accounts/views.py
| @@ -15,7 +15,7 @@ from colab.super_archives.models import (EmailAddress, | @@ -15,7 +15,7 @@ from colab.super_archives.models import (EmailAddress, | ||
| 15 | EmailAddressValidation) | 15 | EmailAddressValidation) |
| 16 | from colab.search.utils import get_collaboration_data, get_visible_threads | 16 | from colab.search.utils import get_collaboration_data, get_visible_threads |
| 17 | from colab.accounts.models import User | 17 | from colab.accounts.models import User |
| 18 | -from colab.plugins.utils.widget_manager import WidgetManager | 18 | +from colab.widgets.widget_manager import WidgetManager |
| 19 | 19 | ||
| 20 | from .forms import (UserCreationForm, ListsForm, UserUpdateForm) | 20 | from .forms import (UserCreationForm, ListsForm, UserUpdateForm) |
| 21 | from .utils import mailman | 21 | from .utils import mailman |
colab/plugins/utils/widget_manager.py
| @@ -1,53 +0,0 @@ | @@ -1,53 +0,0 @@ | ||
| 1 | -from django.utils.safestring import mark_safe | ||
| 2 | - | ||
| 3 | -class Widget: | ||
| 4 | - identifier = None | ||
| 5 | - name = None | ||
| 6 | - default_url = None | ||
| 7 | - content = '' | ||
| 8 | - | ||
| 9 | - def get_body(self): | ||
| 10 | - # avoiding regex in favor of performance | ||
| 11 | - start = self.content.find('<body>') | ||
| 12 | - end = self.content.find('</body>') | ||
| 13 | - | ||
| 14 | - if -1 in [start, end]: | ||
| 15 | - return '' | ||
| 16 | - | ||
| 17 | - body = self.content[start + len('<body>'):end] | ||
| 18 | - return mark_safe(body) | ||
| 19 | - | ||
| 20 | - def get_header(self): | ||
| 21 | - # avoiding regex in favor of performance | ||
| 22 | - start = self.content.find('<head>') | ||
| 23 | - end = self.content.find('</head>') | ||
| 24 | - | ||
| 25 | - if -1 in [start, end]: | ||
| 26 | - return '' | ||
| 27 | - | ||
| 28 | - head = self.content[start + len('<head>'):end] | ||
| 29 | - return mark_safe(head) | ||
| 30 | - | ||
| 31 | - def generate_content(self, request=None): | ||
| 32 | - self.content = '' | ||
| 33 | - | ||
| 34 | - | ||
| 35 | -class WidgetManager(object): | ||
| 36 | - widget_categories = {} | ||
| 37 | - | ||
| 38 | - @staticmethod | ||
| 39 | - def register_widget(category, widget): | ||
| 40 | - if not WidgetManager.widget_categories.has_key(category): | ||
| 41 | - WidgetManager.widget_categories[category] = [] | ||
| 42 | - | ||
| 43 | - WidgetManager.widget_categories[category].append(widget) | ||
| 44 | - | ||
| 45 | - @staticmethod | ||
| 46 | - def get_widgets(category, request=None): | ||
| 47 | - if not WidgetManager.widget_categories.has_key(category): | ||
| 48 | - return [] | ||
| 49 | - | ||
| 50 | - widgets = WidgetManager.widget_categories[category] | ||
| 51 | - for widget in widgets: | ||
| 52 | - widget.generate_content(request) | ||
| 53 | - return widgets |
| @@ -0,0 +1,53 @@ | @@ -0,0 +1,53 @@ | ||
| 1 | +from django.utils.safestring import mark_safe | ||
| 2 | + | ||
| 3 | +class Widget(object): | ||
| 4 | + identifier = None | ||
| 5 | + name = None | ||
| 6 | + default_url = None | ||
| 7 | + content = '' | ||
| 8 | + | ||
| 9 | + def get_body(self): | ||
| 10 | + # avoiding regex in favor of performance | ||
| 11 | + start = self.content.find('<body>') | ||
| 12 | + end = self.content.find('</body>') | ||
| 13 | + | ||
| 14 | + if -1 in [start, end]: | ||
| 15 | + return '' | ||
| 16 | + | ||
| 17 | + body = self.content[start + len('<body>'):end] | ||
| 18 | + return mark_safe(body) | ||
| 19 | + | ||
| 20 | + def get_header(self): | ||
| 21 | + # avoiding regex in favor of performance | ||
| 22 | + start = self.content.find('<head>') | ||
| 23 | + end = self.content.find('</head>') | ||
| 24 | + | ||
| 25 | + if -1 in [start, end]: | ||
| 26 | + return '' | ||
| 27 | + | ||
| 28 | + head = self.content[start + len('<head>'):end] | ||
| 29 | + return mark_safe(head) | ||
| 30 | + | ||
| 31 | + def generate_content(self, request=None): | ||
| 32 | + self.content = '' | ||
| 33 | + | ||
| 34 | + | ||
| 35 | +class WidgetManager(object): | ||
| 36 | + widget_categories = {} | ||
| 37 | + | ||
| 38 | + @staticmethod | ||
| 39 | + def register_widget(category, widget): | ||
| 40 | + if not WidgetManager.widget_categories.has_key(category): | ||
| 41 | + WidgetManager.widget_categories[category] = [] | ||
| 42 | + | ||
| 43 | + WidgetManager.widget_categories[category].append(widget) | ||
| 44 | + | ||
| 45 | + @staticmethod | ||
| 46 | + def get_widgets(category, request=None): | ||
| 47 | + if not WidgetManager.widget_categories.has_key(category): | ||
| 48 | + return [] | ||
| 49 | + | ||
| 50 | + widgets = WidgetManager.widget_categories[category] | ||
| 51 | + for widget in widgets: | ||
| 52 | + widget.generate_content(request) | ||
| 53 | + return widgets |