Skip to content
This repository has been archived by the owner on Sep 5, 2019. It is now read-only.

Commit

Permalink
Builtin forms may now be deleted/edited just like custom forms
Browse files Browse the repository at this point in the history
Resolves #213
  • Loading branch information
Denis Krienbühl committed Jun 21, 2016
1 parent 0faa51b commit 3048a5c
Show file tree
Hide file tree
Showing 9 changed files with 20 additions and 44 deletions.
3 changes: 3 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
Changelog
---------

- Builtin forms may now be deleted/edited just like custom forms.
[href]

- Fixes telephone number on people records being unclickable.
[href]

Expand Down
6 changes: 1 addition & 5 deletions onegov/town/forms/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@
RoomAllocationEditForm
)
from onegov.town.forms.event import EventForm
from onegov.town.forms.form_definition import (
BuiltinDefinitionForm,
CustomDefinitionForm
)
from onegov.town.forms.form_definition import CustomDefinitionForm
from onegov.town.forms.newsletter import NewsletterForm, NewsletterSendForm
from onegov.town.forms.page import LinkForm, PageForm
from onegov.town.forms.person import PersonForm
Expand All @@ -27,7 +24,6 @@
from onegov.town.forms.userprofile import UserProfileForm

__all__ = [
'BuiltinDefinitionForm',
'CustomDefinitionForm',
'DaypassAllocationForm',
'DaypassAllocationEditForm',
Expand Down
14 changes: 0 additions & 14 deletions onegov/town/forms/form_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,6 @@ class FormDefinitionBaseForm(Form):
filters=[sanitize_html, annotate_html])


class BuiltinDefinitionForm(FormDefinitionBaseForm):
""" Form to edit builtin forms. """

definition = TextAreaField(
label=_("Definition"),
validators=[validators.InputRequired(), ValidFormDefinition()],
render_kw={
'rows': 24,
'readonly': 'readonly',
'data-editor': 'form'
}
)


class CustomDefinitionForm(FormDefinitionBaseForm):
""" Same as the default form definition form, but with the definition
made read-only.
Expand Down
2 changes: 1 addition & 1 deletion onegov/town/initial_content.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ def add_builtin_forms(session, definitions=None):
name=name,
title=title,
definition=definition,
type='builtin'
type='custom'
)

assert form.form_class().has_required_email_field, (
Expand Down
13 changes: 1 addition & 12 deletions onegov/town/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -509,18 +509,7 @@ def editbar_links(self):
classes=('edit-link', )
)

if self.form.type == 'builtin':
delete_link = DeleteLink(
text=_("Delete"),
url=self.request.link(self.form),
confirm=_("This form can't be deleted."),
extra_information=_(
"This is a builtin-form. "
"Builtin-forms can't be deleted."
)
)

elif self.form.has_submissions(with_state='complete'):
if self.form.has_submissions(with_state='complete'):
delete_link = DeleteLink(
text=_("Delete"),
url=self.request.link(self.form),
Expand Down
3 changes: 1 addition & 2 deletions onegov/town/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from onegov.town.models.clipboard import Clipboard
from onegov.town.models.editor import Editor
from onegov.town.models.file import File, FileCollection
from onegov.town.models.form import BuiltinFormDefinition, CustomFormDefinition
from onegov.town.models.form import CustomFormDefinition
from onegov.town.models.image import Image, ImageCollection, Thumbnail
from onegov.town.models.page import AtoZPages, News, Topic
from onegov.town.models.page_move import PageMove
Expand All @@ -22,7 +22,6 @@
__all__ = [
'AtoZ',
'AtoZPages',
'BuiltinFormDefinition',
'Clipboard',
'CustomFormDefinition',
'DaypassResource',
Expand Down
18 changes: 11 additions & 7 deletions onegov/town/upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,14 @@
"""
from onegov.core.orm.abstract import sort_siblings
from onegov.core.upgrade import upgrade_task
from onegov.form import FormCollection
from onegov.form import FormCollection, FormDefinition
from onegov.libres import ResourceCollection
from onegov.page import PageCollection
from onegov.town import TownApp
from onegov.town.initial_content import add_builtin_forms, add_resources
from onegov.town.initial_content import add_resources
from onegov.town.models.extensions import ContactExtension


@upgrade_task('Update builtin forms')
def update_builtin_forms(context, always_run=True):
add_builtin_forms(context.session)


@upgrade_task('Add initial libres resources')
def add_initial_libres_resources(context):
if isinstance(context.app, TownApp):
Expand Down Expand Up @@ -60,3 +55,12 @@ def change_contact_html(context):

# forces a re-render of the contact html
item.contact = item.contact


@upgrade_task('Convert builtin forms into custom forms')
def convert_builtin_forms(context):
forms = FormCollection(context.session)

query = forms.definitions.query()
query = query.filter(FormDefinition.type == 'builtin')
query.update({FormDefinition.type: 'custom'})
2 changes: 1 addition & 1 deletion onegov/town/views/form_collection.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
""" Lists the builtin and custom forms. """
""" Lists the custom forms. """

from onegov.core.security import Public
from onegov.form import FormCollection
Expand Down
3 changes: 1 addition & 2 deletions onegov/town/views/form_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from onegov.form import FormCollection, FormDefinition
from onegov.town import _, TownApp
from onegov.town.elements import Link
from onegov.town.forms import BuiltinDefinitionForm, CustomDefinitionForm
from onegov.town.forms import CustomDefinitionForm
from onegov.town.layout import FormEditorLayout
from onegov.town.models import CustomFormDefinition
from webob import exc
Expand All @@ -17,7 +17,6 @@ def get_form_class(model, request):
model = CustomFormDefinition()

form_classes = {
'builtin': BuiltinDefinitionForm,
'custom': CustomDefinitionForm
}

Expand Down

0 comments on commit 3048a5c

Please sign in to comment.