Skip to content

Commit

Permalink
Feat:
Browse files Browse the repository at this point in the history
Make project django 2.2 compatible
stephenmcd#247
  • Loading branch information
slothyrulez committed Jul 7, 2020
1 parent 89fe031 commit d465df6
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 8 deletions.
11 changes: 5 additions & 6 deletions forms_builder/forms/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from django import VERSION as DJANGO_VERSION
from django.contrib.sites.models import Site
from django.utils.html import format_html_join

try:
from django.urls import reverse
Expand Down Expand Up @@ -142,16 +143,14 @@ def get_absolute_url(self):
return reverse("form_detail", kwargs={"slug": self.slug})

def admin_links(self):
kw = {"args": (self.id,)}
links = [
kw = {"args": (self.id, )}

return format_html_join("\n", "<div><a href='{1}'>{0}</a></div>", (
(_("View form on site"), self.get_absolute_url()),
(_("Filter entries"), reverse("admin:form_entries", **kw)),
(_("View all entries"), reverse("admin:form_entries_show", **kw)),
(_("Export all entries"), reverse("admin:form_entries_export", **kw)),
]
for i, (text, url) in enumerate(links):
links[i] = "<a href='%s'>%s</a>" % (url, ugettext(text))
return "<br>".join(links)
))
admin_links.allow_tags = True
admin_links.short_description = ""

Expand Down
12 changes: 12 additions & 0 deletions forms_builder/forms/tests.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import unicode_literals

from django.utils.safestring import SafeText
from django.conf import settings
from django.contrib.auth.models import User, AnonymousUser
from django.contrib.sites.models import Site
Expand Down Expand Up @@ -239,3 +240,14 @@ def test_input_dropdown_required_with_default(self):
<option value="two" selected>two</option>
<option value="three">three</option>
</select>""", html=True)

def test_admin_link(self):
form = Form.objects.create(title="Test")
content = form.admin_links()
self.assertIsInstance(content, SafeText)
self.assertInHTML(content, """
<div><a href='/forms/test/'>View form on site</a></div>
<div><a href='/admin/forms/form/1/entries/'>Filter entries</a></div>
<div><a href='/admin/forms/form/1/entries/show/'>View all entries</a></div>
<div><a href='/admin/forms/form/1/entries/export/'>Export all entries</a></div>
""")
20 changes: 20 additions & 0 deletions forms_builder/forms/utils.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,29 @@
from __future__ import unicode_literals

import utils.logging as logging

from django.template.defaultfilters import slugify as django_slugify
from importlib import import_module
from unidecode import unidecode

logger = logging.getLogger(__name__)


def copy_form(form, name):
""" Creates a deep copy of form and fields """
fields = form.fields.all()
new_form = form
new_form.pk = None
new_form.title = name
new_form.slug = slugify(new_form.title)
new_form.save()
for field in fields:
new_field = field
new_field.pk = None
new_field.form = new_form
new_field.save()
return new_form


# Timezone support with fallback.
try:
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@
"sphinx-me >= 0.1.2",
"unidecode",
"django-email-extras >= 0.2",
"django >= 1.8, < 2.2",
"future <= 0.15.0",
"django >= 1.8, < 2.2.999",
"future <= 0.18.999",
],
classifiers = [
"Development Status :: 5 - Production/Stable",
Expand Down

0 comments on commit d465df6

Please sign in to comment.