Skip to content

Commit

Permalink
Set onsubmit form attr for automatic form submitting
Browse files Browse the repository at this point in the history
  • Loading branch information
exekias committed May 20, 2014
1 parent 817d603 commit 2d29af4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
9 changes: 6 additions & 3 deletions achilles/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ def get_form(self, form_data=None, *args, **kwargs):
def get_form_kwargs(self, form_data=None, *args, **kwargs):
kwargs = {
'initial': self.get_initial(),
'instance': self.get_instance(*args, **kwargs),
}
instance = self.get_instance(*args, **kwargs)
if instance:
kwargs['instance'] = instance,
return kwargs

def get_instance(self, *args, **kwargs):
Expand All @@ -46,6 +48,7 @@ def get_instance(self, *args, **kwargs):
def get_context_data(self, *args, **kwargs):
context = super(Form, self).get_context_data(*args, **kwargs)
context.update({
'block': self,
'form': self.get_form(*args, **kwargs),
})
return context
Expand All @@ -61,7 +64,7 @@ def form_invalid(self, request, form):


@register.action
def send(request, form, data):
def send(request, form, args=[], kwargs={}, data={}):
"""
Validate a form and call the proper callback Form.form_valid
or Form.form_invalid
Expand All @@ -73,7 +76,7 @@ def send(request, form, data):
"""
block = blocks.get(form)
data = QueryDict(data, encoding=request.encoding)
form = block.get_form(form_data=data)
form = block.get_form(form_data=data, *args, **kwargs)

if form.is_valid():
block.form_valid(request, form)
Expand Down
2 changes: 1 addition & 1 deletion achilles/templates/achilles/form.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<form method="post">
<form method="post" onsubmit="achilles.action('forms:send', ['{{ block.register_name }}', [], {}, $(this).serialize()]); return false">
{{ form.non_field_errors }}
{% for field in form %}
<div class="fieldWrapper">
Expand Down

0 comments on commit 2d29af4

Please sign in to comment.