Skip to content

Commit f178b56

Browse files
committed
Merge pull request #1 from springload/feature/wagtail-1.3.1-update
Templates and logic adapted to Wagtail 1.3.1 changes
2 parents 77a7d21 + 8b763ca commit f178b56

File tree

7 files changed

+54
-15
lines changed

7 files changed

+54
-15
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
setup(
1111
name='wagtailembedder',
12-
version='0.1.4',
12+
version='0.1.5',
1313
packages=['wagtailembedder'],
1414
include_package_data=True,
1515
license='BSD License',

wagtailembedder/format.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
from django.core.exceptions import ObjectDoesNotExist
22
from django.template.loader import render_to_string
3+
34
from wagtail.wagtailsnippets.views.snippets import get_content_type_from_url_params
4-
# from wagtail.wagtailembedder.embeds import get_embed
55

66

77
def embed_to_frontend_html(id, content_type_app_name, content_type_model_name):
8+
"""
9+
Provides the Snippet representation through the appropiate template
10+
"""
811
try:
912
content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
1013
model = content_type.model_class()
@@ -22,6 +25,9 @@ def embed_to_frontend_html(id, content_type_app_name, content_type_model_name):
2225

2326

2427
def embed_to_editor_html(id, content_type_app_name, content_type_model_name):
28+
"""
29+
Provides the Snippet representation to display in the RichTextEditor
30+
"""
2531
try:
2632
content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
2733
model = content_type.model_class()

wagtailembedder/helper.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from wagtail.wagtailcore.rich_text import EMBED_HANDLERS
2+
23
from wagtailembedder.format import embed_to_editor_html, embed_to_frontend_html
34

45

wagtailembedder/static/wagtailembedder/js/hallo-embedder.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
function placeCaretAtEnd(el) {
2+
el.focus();
3+
if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
4+
var range = document.createRange();
5+
range.selectNodeContents(el);
6+
range.collapse(false);
7+
var sel = window.getSelection();
8+
sel.removeAllRanges();
9+
sel.addRange(range);
10+
} else if (typeof document.body.createTextRange != "undefined") {
11+
var textRange = document.body.createTextRange();
12+
textRange.moveToElementText(el);
13+
textRange.collapse(false);
14+
textRange.select();
15+
}
16+
}
17+
118
(function() {
219
(function($) {
320
return $.widget("IKS.halloembedder", {

wagtailembedder/templates/wagtailembedder/snippets/types_list.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010

1111
<div class="nice-padding">
1212
<ul class="listing">
13-
{% for name, description, content_type in snippet_types %}
13+
{% for app_label, name, description in snippet_types %}
1414
<li>
1515
<div class="row row-flush title snippet-list">
1616
<h2>
17-
<a href="{% url 'wagtailembedder_class_chosen' content_type.app_label content_type.model %}" class="snippet-embedder col6">
17+
<a href="{% url 'wagtailembedder_class_chosen' app_label name %}" class="snippet-embedder col6">
1818
{{ name|capfirst }}
1919
</a>
2020
</h2>

wagtailembedder/views/chooser.py

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,25 @@
77

88
from wagtail.wagtailsnippets.models import get_snippet_content_types
99
from wagtail.wagtailsnippets.permissions import user_can_edit_snippet_type
10-
from wagtail.wagtailsnippets.views.snippets import get_snippet_type_description, get_snippet_type_name
1110
from wagtail.wagtailsnippets.views.snippets import get_content_type_from_url_params
11+
from wagtail.wagtailsnippets.models import get_snippet_models
12+
1213
from wagtailembedder.format import embed_to_editor_html
1314

1415

1516
@permission_required('wagtailadmin.access_admin')
1617
def index(request):
17-
snippet_types = [(
18-
get_snippet_type_name(content_type)[1],
19-
get_snippet_type_description(content_type),
20-
content_type)
21-
for content_type in get_snippet_content_types()
18+
"""
19+
Fetches all human-readabe names of all snippet classes and presents them
20+
in a list.
21+
"""
22+
snippet_types = [
23+
(
24+
content_type._meta.app_label,
25+
content_type._meta.model.__name__,
26+
content_type._meta.description,
27+
)
28+
for content_type in get_snippet_models()
2229
if user_can_edit_snippet_type(request.user, content_type)
2330
]
2431
return render_modal_workflow(
@@ -32,13 +39,16 @@ def index(request):
3239

3340

3441
def index_objects(request, content_type_app_name, content_type_model_name):
42+
"""
43+
Fetch objects of related model of the given ContentType and call the template
44+
to properly display them in a list.
45+
"""
3546
snippet_types = get_snippet_content_types()
3647
for content_type in snippet_types:
37-
name = get_snippet_type_name(content_type)[0]
38-
if name.lower().replace(" ", "") == content_type_model_name:
39-
model = content_type.model_class()
40-
items = model.objects.all()
41-
snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type)
48+
if content_type.model == content_type_model_name.lower():
49+
items = content_type.model_class().objects.all()
50+
snippet_type_name = content_type.model_class()._meta.verbose_name
51+
snippet_type_name_plural = content_type.model_class()._meta.verbose_name_plural
4252

4353
return render_modal_workflow(
4454
request,
@@ -56,6 +66,9 @@ def index_objects(request, content_type_app_name, content_type_model_name):
5666

5767

5868
def choose_snippet(request, id, content_type_app_name, content_type_model_name):
69+
"""
70+
Choose snippet and display its representation in the Hallo.js richtext field.
71+
"""
5972
content_type = get_content_type_from_url_params(content_type_app_name, content_type_model_name)
6073
if not user_can_edit_snippet_type(request.user, content_type):
6174
raise PermissionDenied

wagtailembedder/wagtail_hooks.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
from django.conf import settings
33
from django.utils.html import format_html, format_html_join
44
from django.core.urlresolvers import reverse
5+
56
from wagtail.wagtailcore import hooks
7+
68
from wagtailembedder import urls
79
from wagtailembedder.helper import add_embed_handler
810

0 commit comments

Comments
 (0)