def edit_staff(request, object_id): try: object_id = int(object_id) except ValueError: return HttpResponseRedirect(reverse('workflowmax-staff-list')) context_vars = dict() context_vars['header'] = capfirst(_('edit staff %d') % object_id) staff = Staff.objects.get(id=object_id) form = StaffForm(staff.to_dict()) helper = FormHelper() helper.form_class = 'uniform' submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = StaffForm(request.POST, request.FILES) if form.is_valid(): staff.name = form.cleaned_data['name'] staff.address = form.cleaned_data['address'] staff.phone = form.cleaned_data['phone'] staff.mobile = form.cleaned_data['mobile'] staff.email = form.cleaned_data['email'] staff.payrollcode = form.cleaned_data['payrollcode'] staff.save() return HttpResponseRedirect(reverse('workflowmax-staff', args=[staff.id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='workflowmax/form.html', extra_context=context_vars)
def create_game(request): if request.method == 'POST': form = CreateGameForm(request.user, request.POST) if form.is_valid(): game = form.create_game() return HttpResponseRedirect(game.get_absolute_url()) else: form = CreateGameForm(request.user) # add in a submit button helper = FormHelper() submit = Submit('create', 'create a new game') helper.add_input(submit) # XXX need friends model friends = User.objects.exclude(pk=request.user.pk) friends_json = json.dumps(dict( (u.pk, escape(u.username)) for u in friends)) return { 'form': form, 'helper': helper, 'friends': friends_json, 'username': request.user.username }
def test_change_layout_dynamically_delete_field(self): template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) form = TestForm() form_helper = FormHelper() form_helper.add_layout( Layout( Fieldset( u'Company Data', 'is_company', 'email', 'password1', 'password2', css_id = "multifield_info", ), Column( 'first_name', 'last_name', css_id = "column_name", ) ) ) # We remove email field on the go # Layout needs to be adapted for the new form fields del form.fields['email'] del form_helper.layout.fields[0].fields[1] c = Context({'form': form, 'form_helper': form_helper}) html = template.render(c) self.assertFalse('email' in html)
def setUp(self): self.style = '<style>.formRow{color:red;}</style>' layout = Layout( # first fieldset shows the company Fieldset('', 'is_company'), # second fieldset shows the contact info Fieldset('Contact details', 'email', Row('password1','password2'), 'first_name', 'last_name', ) ) form_helper = FormHelper() form_helper.add_layout(layout) self.c = Context({'formset': TestFormset(), 'formset_helper': form_helper}) template = get_template_from_string(""" {% load uni_form_tags %} {% uni_form_set formset formset_helper %} """) self.html = template.render(self.c)
def helper(self): helper = FormHelper() helper.add_input(Submit('submit', _('Search'))) helper.form_action = reverse('search:search') helper.form_method = 'get' return helper
def edit_job(request, object_id): context_vars = dict() context_vars['header'] = '%s %s' % (capfirst(_('job')), object_id) job = Job.objects.get(id=object_id) form = EditJobForm(job.to_dict()) helper = FormHelper() helper.form_class = 'uniform' submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = EditJobForm(request.POST, request.FILES) if form.is_valid(): job.state = form.cleaned_data['state'] if form.cleaned_data['assigned']: job.assigned = [] for assigned_id in form.cleaned_data['assigned']: try: job.assigned.append(Staff.objects.get(id=assigned_id)) except ResponseStatusError: pass job.save() return HttpResponseRedirect(reverse('workflowmax-job', args=[job.id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='workflowmax/form.html', extra_context=context_vars)
def add_client(request): context_vars = dict() context_vars['header'] = capfirst(_('add new client')) form = ClientForm() helper = FormHelper() helper.form_class = 'uniform' submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = ClientForm(request.POST, request.FILES) if form.is_valid(): client = Client() client.name = form.cleaned_data['name'] client.address = form.cleaned_data['address'] client.postal_address = form.cleaned_data['postal_address'] client.phone = form.cleaned_data['phone'] client.fax = form.cleaned_data['fax'] client.website = form.cleaned_data['website'] client.referral_source = form.cleaned_data['referral_source'] client = client.save() return HttpResponseRedirect(reverse('workflowmax-client', args=[client.id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='workflowmax/form.html', extra_context=context_vars)
def edit_client(request, object_id): try: object_id = int(object_id) except ValueError: return HttpResponseRedirect(reverse('workflowmax-client-list')) context_vars = dict() context_vars['header'] = '%s %d' % (capfirst(_('client')), object_id) client = Client.objects.get(id=object_id) form = ClientForm(client.to_dict()) helper = FormHelper() helper.form_class = 'uniform' submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = ClientForm(request.POST, request.FILES) if form.is_valid(): client.name = form.cleaned_data['name'] client.address = form.cleaned_data['address'] client.postal_address = form.cleaned_data['postal_address'] client.phone = form.cleaned_data['phone'] client.fax = form.cleaned_data['fax'] client.website = form.cleaned_data['website'] client.referral_source = form.cleaned_data['referral_source'] client.save() return HttpResponseRedirect(reverse('workflowmax-client', args=[client.id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='workflowmax/form.html', extra_context=context_vars)
def edit_client_contact(request, owner_id, object_id): try: owner_id = int(owner_id) except ValueError: return HttpResponseRedirect(reverse('workflowmax-client-list')) try: object_id = int(object_id) except ValueError: return HttpResponseRedirect(reverse('workflowmax-client', args=[owner_id])) context_vars = dict() context_vars['header'] = capfirst(_('edit contact %d') % object_id) contact = Contact.objects.get(id=object_id) form = ContactForm(contact.to_dict()) helper = FormHelper() helper.form_class = 'uniform' submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = ContactForm(request.POST, request.FILES) if form.is_valid(): contact.name = form.cleaned_data['name'] contact.mobile = form.cleaned_data['mobile'] contact.email = form.cleaned_data['email'] contact.phone = form.cleaned_data['phone'] contact.position = form.cleaned_data['position'] contact.save() return HttpResponseRedirect(reverse('workflowmax-client', args=[owner_id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='workflowmax/form.html', extra_context=context_vars)
def add_job(request): context_vars = dict() context_vars['header'] = capfirst(_('add new job')) form = AddJobForm() helper = FormHelper() helper.form_class = 'uniform' submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = AddJobForm(request.POST, request.FILES) if form.is_valid(): job = Job() job.name = form.cleaned_data['name'] job.description = form.cleaned_data['description'] job.start_date = strptime(form.cleaned_data['start_date'], '%Y%m%d') job.due_date = strptime(form.cleaned_data['due_date'], '%Y%m%d') client_id = form.cleaned_data['client'] client = Client.objects.get(id=client_id) job.clients = [client,] job = job.save() return HttpResponseRedirect(reverse('workflowmax-job', args=[job.id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='workflowmax/form.html', extra_context=context_vars)
def create_game(request): if request.method == 'POST': form = CreateGameForm(request.user, request.POST) if form.is_valid(): game = form.create_game() return HttpResponseRedirect(game.get_absolute_url()) else: form = CreateGameForm(request.user) # add in a submit button helper = FormHelper() submit = Submit('create','create a new game') helper.add_input(submit) # XXX need friends model friends = User.objects.exclude(pk=request.user.pk) friends_json = json.dumps(dict((u.pk, escape(u.username)) for u in friends)) return { 'form': form, 'helper': helper, 'friends': friends_json, 'username': request.user.username }
def helper(self): helper = FormHelper() submit = Submit('submit', 'Submit your application') helper.add_input(submit) helper.form_action = self.form_action helper.form_method = 'POST' return helper
def view_helper(request): # Create the form if request.method == "POST": form = TestForm(request.POST) else: form = TestForm() # create a formHelper helper = FormHelper() # Add in a class and id helper.form_id = 'this-form-rocks' helper.form_class = 'search' # add in a submit and reset button submit = Submit('search', 'search this site') helper.add_input(submit) reset = Reset('reset', 'reset button') helper.add_input(reset) hidden = Hidden('not-seen', 'hidden value stored here') helper.add_input(hidden) # create the response dictionary response_dictionary = { 'form': form, 'helper': helper, 'title': 'view helper test' } return render_to_response('test_app/generic_form_test.html', response_dictionary, context_instance=RequestContext(request))
def add_task(request, object_id): context_vars = dict() try: object_id = int(object_id) job = Job.objects.get(id=object_id) except ValueError: return HttpResponseRedirect(reverse('job-list')) except ObjectDoesNotExist: return HttpResponseRedirect(reverse('job-list')) form = TaskForm() helper = FormHelper() submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = TaskForm(request.POST, request.FILES) if form.is_valid(): task = form.save(commit=False) task.job = job task.save() form.save_m2m() # if settings.WORKFLOWMAX_APIKEY and settings.WORKFLOWMAX_ACCOUNTKEY: # task.wm_sync() messages.success(request, capfirst(_('task was added successfully')), fail_silently=True) return HttpResponseRedirect(reverse('job-view', args=[job.id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='job/uniform.html', extra_context=context_vars)
def test_second_layout_multifield_column(self): form_helper = FormHelper() form_helper.add_layout( Layout( MultiField( 'is_company', 'email', 'password1', 'password2', css_id = "multifield_info", ), Column( 'first_name', 'last_name', css_id = "column_name", ) ) ) template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({'form': TestForm(), 'form_helper': form_helper}) html = template.render(c) self.assertTrue('multiField' in html) self.assertTrue('formColumn' in html) self.assertTrue('id="multifield_info"' in html) self.assertTrue('id="column_name"' in html)
def test_uni_form_formset(self): template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form testFormSet formset_helper %} """) form_helper = FormHelper() form_helper.form_id = 'this-formset-rocks' form_helper.form_class = 'formsets-that-rock' form_helper.form_method = 'GET' form_helper.form_action = 'simpleAction' from django.forms.models import formset_factory TestFormSet = formset_factory(TestForm, extra = 3) testFormSet = TestFormSet() c = Context({'testFormSet': testFormSet, 'formset_helper': form_helper}) html = template.render(c) self.assertTrue('<form' in html) self.assertEqual(html.count('<form'), 1) self.assertTrue('class="uniForm formsets-that-rock"' in html) self.assertTrue('method="get"' in html) self.assertTrue('id="this-formset-rocks">' in html) self.assertTrue('action="%s"' % reverse('simpleAction') in html)
def test_change_layout_dynamically_delete_field(self): template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) form = TestForm() form_helper = FormHelper() form_helper.add_layout( Layout( Fieldset( u'Company Data', 'is_company', 'email', 'password1', 'password2', css_id="multifield_info", ), Column( 'first_name', 'last_name', css_id="column_name", ))) # We remove email field on the go # Layout needs to be adapted for the new form fields del form.fields['email'] del form_helper.layout.fields[0].fields[1] c = Context({'form': form, 'form_helper': form_helper}) html = template.render(c) self.assertFalse('email' in html)
def edit_note(request, owner_id, object_id): context_vars = dict() try: owner_id = int(owner_id) job = Job.objects.get(id=owner_id) except ValueError: return HttpResponseRedirect(reverse('job-list')) except ObjectDoesNotExist: return HttpResponseRedirect(reverse('job-list')) try: object_id = int(object_id) note = Note.objects.get(id=object_id) except ValueError: return HttpResponseRedirect(reverse('job-view', args=[job.id])) except ObjectDoesNotExist: return HttpResponseRedirect(reverse('job-view', args=[job.id])) form = NoteForm(instance=note) helper = FormHelper() submit = Submit('save',_('save')) helper.add_input(submit) if request.method == "POST": form = NoteForm(request.POST, request.FILES, instance=note) if form.is_valid(): form.save() # if settings.WORKFLOWMAX_APIKEY and settings.WORKFLOWMAX_ACCOUNTKEY: # note.wm_sync() messages.success(request, capfirst(_('note was modified successfully')), fail_silently=True) return HttpResponseRedirect(reverse('job-view', args=[job.id])) context_vars['form'] = form context_vars['helper'] = helper return direct_to_template(request, template='job/uniform.html', extra_context=context_vars)
def test_change_layout_dynamically_delete_field(self): template = get_template_from_string( u""" {% load uni_form_tags %} {% uni_form form form_helper %} """ ) form = TestForm() form_helper = FormHelper() form_helper.add_layout( Layout( Fieldset(u"Company Data", "is_company", "email", "password1", "password2", css_id="multifield_info"), Column("first_name", "last_name", css_id="column_name"), ) ) # We remove email field on the go # Layout needs to be adapted for the new form fields del form.fields["email"] del form_helper.layout.fields[0].fields[1] c = Context({"form": form, "form_helper": form_helper}) html = template.render(c) self.assertFalse("email" in html)
def test_second_layout_multifield_column_buttonholder_submit(self): form_helper = FormHelper() form_helper.add_layout( Layout( MultiField( "Some company data", "is_company", "email", "password1", "password2", css_id="multifield_info" ), Column("first_name", "last_name", css_id="column_name"), ButtonHolder(Submit("Save", "Save", css_class="button white")), ) ) template = get_template_from_string( u""" {% load uni_form_tags %} {% uni_form form form_helper %} """ ) c = Context({"form": TestForm(), "form_helper": form_helper}) html = template.render(c) self.assertTrue("multiField" in html) self.assertTrue("formColumn" in html) self.assertTrue('id="multifield_info"' in html) self.assertTrue('id="column_name"' in html) self.assertTrue('div class="buttonHolder">' in html) self.assertTrue('input type="submit"' in html) self.assertTrue('name="save"' in html)
def test_uni_form_formset(self): template = get_template_from_string( u""" {% load uni_form_tags %} {% uni_form testFormSet formset_helper %} """ ) form_helper = FormHelper() form_helper.form_id = "thisFormsetRocks" form_helper.form_class = "formsets-that-rock" form_helper.form_method = "POST" form_helper.form_action = "simpleAction" TestFormSet = formset_factory(TestForm, extra=3) testFormSet = TestFormSet() c = Context({"testFormSet": testFormSet, "formset_helper": form_helper, "csrf_token": _get_new_csrf_key()}) html = template.render(c) self.assertEqual(html.count("<form"), 1) self.assertEqual(html.count("<input type='hidden' name='csrfmiddlewaretoken'"), 1) self.assertTrue('class="uniForm formsets-that-rock"' in html) self.assertTrue('method="post"' in html) self.assertTrue('id="thisFormsetRocks">' in html) self.assertTrue('action="%s"' % reverse("simpleAction") in html)
def test_uni_form_formset_with_helper_without_layout(self): template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form testFormSet formset_helper %} """) form_helper = FormHelper() form_helper.form_id = 'thisFormsetRocks' form_helper.form_class = 'formsets-that-rock' form_helper.form_method = 'POST' form_helper.form_action = 'simpleAction' TestFormSet = formset_factory(TestForm, extra = 3) testFormSet = TestFormSet() c = Context({'testFormSet': testFormSet, 'formset_helper': form_helper, 'csrf_token': _get_new_csrf_key()}) html = template.render(c) self.assertEqual(html.count('<form'), 1) self.assertEqual(html.count("<input type='hidden' name='csrfmiddlewaretoken'"), 1) # Check formset management form self.assertTrue('form-TOTAL_FORMS' in html) self.assertTrue('form-INITIAL_FORMS' in html) self.assertTrue('form-MAX_NUM_FORMS' in html) self.assertTrue('class="uniForm formsets-that-rock"' in html) self.assertTrue('method="post"' in html) self.assertTrue('id="thisFormsetRocks">' in html) self.assertTrue('action="%s"' % reverse('simpleAction') in html)
def test_uni_form_helper_form_attributes(self): template = get_template_from_string(""" {% load uni_form_tags %} {% uni_form form form_helper %} """) # First we build a standard form helper form_helper = FormHelper() form_helper.form_id = 'this-form-rocks' form_helper.form_class = 'forms-that-rock' form_helper.form_method = 'GET' # now we render it c = Context({'form':TestForm(),'form_helper':form_helper}) html = template.render(c) # Lets make sure everything loads right self.assertTrue("""<form""" in html) self.assertTrue("""class="uniForm forms-that-rock" """ in html) self.assertTrue("""method="get" """ in html) self.assertTrue("""id="this-form-rocks">""" in html) # now lets remove the form tag and render it again. All the True items above # should now be false because the form tag is removed. form_helper.form_tag = False c = Context({'form':TestForm(),'form_helper':form_helper}) html = template.render(c) self.assertFalse("""<form""" in html) self.assertFalse("""id="this-form-rocks">""" in html) self.assertFalse("""class="uniForm forms-that-rock" """ in html) self.assertFalse("""method="get" """ in html) self.assertFalse("""id="this-form-rocks">""" in html)
def profile_edit(request, template_name="profiles/profile_edit.html"): helper = FormHelper() submit = Submit('edit','Edit') helper.add_input(submit) reset = Reset('reset','Reset') helper.add_input(reset) profile = get_object_or_404(Profile, user=request.user) form = ProfileForm(request.POST or None, instance=profile) if form.is_valid(): form.save() msg = 'Profile edited' messages.add_message(request, messages.INFO, msg) return HttpResponseRedirect(reverse("profile_detail", kwargs={"username":profile.user.username })) return render_to_response(template_name, { "profile": profile, "form": form, "helper":helper, }, context_instance=RequestContext(request) )
def csrf_token_test(request): # Create the form if request.method == "POST": form = TestForm(request.POST) else: form = TestForm() helper = FormHelper() helper.use_csrf_protection = True # add in a submit and reset button success = Submit('check-csrf', 'Check CSRF') helper.add_input(success) # create the response dictionary response_dictionary = { 'form': form, 'helper': helper, 'title': 'CSRF token test' } return render_to_response('test_app/generic_form_test.html', response_dictionary, context_instance=RequestContext(request))
def setUp(self): self.style = '<style>.formRow{color:red;}</style>' layout = Layout( # first fieldset shows the company Fieldset('', 'is_company'), # second fieldset shows the contact info Fieldset( 'Contact details', 'email', Row('password1', 'password2'), 'first_name', 'last_name', )) form_helper = FormHelper() form_helper.add_layout(layout) self.c = Context({ 'formset': TestFormset(), 'formset_helper': form_helper }) template = get_template_from_string(""" {% load uni_form_tags %} {% uni_form_set formset formset_helper %} """) self.html = template.render(self.c)
def test_invalid_helper_method(self): form_helper = FormHelper() try: form_helper.form_method = "superPost" self.fail("Setting an invalid form_method within the helper should raise an Exception") except FormHelpersException: pass
def setUp(self): form_helper = FormHelper() form_helper.form_id = 'this-formset-rocks' form_helper.form_class = 'formsets-that-rock' form_helper.form_method = 'GET' self.c = Context({'formset': TestFormset(), 'formset_helper': form_helper})
def test_invalid_helper_method(self): form_helper = FormHelper() try: form_helper.form_method = "superPost" self.fail( "Setting an invalid form_method within the helper should raise an Exception" ) except FormHelpersException: pass
class ViewShareRegistrationForm(RegistrationForm): username = forms.RegexField( regex=r'^[\w.-]+$', max_length=30, widget=forms.TextInput(attrs={'class': 'required'}), label=_("Username"), error_messages={'invalid': _invalid_username_}) organization = forms.CharField( required=True, max_length=100, label=_("Name")) org_type = forms.CharField( label=_("Type of Organization"), max_length=100, required=True) org_state = forms.ChoiceField( label=_("Organization State"), choices=_state_list_, required=False) reason = forms.CharField( label=_(" "), required=True, widget=forms.Textarea) def __init__(self, *args, **kwargs): super(ViewShareRegistrationForm, self).__init__(*args, **kwargs) org_types = models.OrganizationType.objects.all().order_by("value") self.org_type_choices = json.dumps([b.value for b in org_types]) # self.fields["username"].regex = r"^[\w.-_]+$" self.helper = FormHelper() self.helper.layout = Layout( Fieldset("User Information", "username", "email", "password1", "password2", css_class="inlineLabels"), Fieldset("Describe your Organization", "organization", "org_type", "org_state", css_class="inlineLabels"), Fieldset("How do you plan to use Viewshare?", "reason", css_class="inlineLabels") ) self.helper.add_input(Submit('add', "Sign Up"))
def set_helper(self): print "AadhaarLoginForm.helper In helper" #form = AadhaarLoginForm() helper = FormHelper() reset = Reset('', 'Reset') helper.add_input(reset) submit = Submit('', 'Authenticate') helper.add_input(submit) helper.form_action = '/aadhaar/authenticate/' + self.detail helper.form_method = 'POST' helper.form_class = "blueForms" style = """ <style> fieldset.formRow { margin-bottom: 1em; border-width: 0 0 1px 0; border-color:#CCCCCC; border-style:solid; } </style> """ common_layout = Layout( Fieldset( 'Required Parameters', 'aadhaar_id', 'aadhaar_attributes', )) pi_layout = Layout( Fieldset( "Personally Identifiable Information", 'aadhaar_pi_match', 'aadhaar_name', 'aadhaar_dob', 'aadhaar_age', 'aadhaar_gender', 'aadhaar_email', 'aadhaar_phone', )) pa_layout = Layout( Fieldset("Address", 'aadhaar_pa_match', 'aadhaar_co', 'aadhaar_house', 'aadhaar_street', 'aadhaar_landmark', 'aadhaar_locality', 'aadhaar_vtc', 'aadhaar_subdist', 'aadhaar_district', 'aadhaar_state', 'aadhaar_pincode', 'aadhaar_postoffice')) if self.detail == "personal": layout = Layout(common_layout, pi_layout) elif self.detail == "address": layout = Layout(common_layout, pa_layout) else: layout = Layout(common_layout, pi_layout, pa_layout) helper.layout = layout self.helper = helper
def view_helper(request): # Create the form if request.method == "POST": form = TestForm(request.POST) else: form = TestForm() # create a formHelper helper = FormHelper() # Add in a class and id helper.form_id = 'this-form-rocks' helper.form_class = 'search' # add in a submit and reset button submit = Submit('search','search this site') helper.add_input(submit) reset = Reset('reset','reset button') helper.add_input(reset) hidden = Hidden('not-seen','hidden value stored here') helper.add_input(hidden) # create the response dictionary response_dictionary = {'form':form, 'helper': helper, 'title':'view helper test'} return render_to_response('test_app/generic_form_test.html', response_dictionary, context_instance=RequestContext(request))
def render (self, request, dct): ## Preconditions & preparation: results = msgs = None cls = self.__class__ ## Main: # instantiate form in one of several ways ... form_cls = cls.ToolForm # if the form has been submitted... if request.method == 'POST': form = form_cls (request.POST, request.FILES) # if the form is valid if form.is_valid(): # get the clean data and do the work msgs, results = self.process_form (form.cleaned_data) else: msgs, results = ( messages.Error ('there was a problem processing the form'), ) else: # if you're coming to the form anew, make an unbound form form = form_cls() helper = FormHelper() # Add in a class and id helper.form_id = 'this-form-rocks' helper.form_class = 'tool_form' # if necessary, do fieldsets if cls.fieldsets: sets = [] for field_pair in cls.fieldsets: if (isinstance (field_pair, basestring)): # if just a naked field name field_pair = ['', field_pair] sets.append (Fieldset (*field_pair)) helper.add_layout (Layout(*sets)) # add in submit actions and a reset button for button in cls.actions: submit = Submit (button[0], button[1]) helper.add_input (submit) reset = Reset ('reset','Reset form') helper.add_input (reset) ## Postconditions & return: context = self.context() context.update ({ 'identifier' : self.identifier, 'title' : self.title, 'description': self.description, 'form': form, 'results': results, 'msgs': msgs, 'helper': helper, }) return render_to_response ('relais.amergin/tool.html', context, context_instance=RequestContext(request))
def setUp(self): form_helper = FormHelper() form_helper.form_id = 'this-formset-rocks' form_helper.form_class = 'formsets-that-rock' form_helper.form_method = 'GET' self.c = Context({ 'formset': TestFormset(), 'formset_helper': form_helper })
def test_csrf_token_GET_form(self): form_helper = FormHelper() form_helper.form_method = 'GET' template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({'form': TestForm(), 'form_helper': form_helper, 'csrf_token': _get_new_csrf_key()}) html = template.render(c) self.assertFalse("<input type='hidden' name='csrfmiddlewaretoken'" in html)
def advanced_search(request, reset=False): marketplace = request.marketplace if reset: form = AdvancedSearchForm(marketplace=marketplace) else: form = AdvancedSearchForm(marketplace=marketplace, data=request.GET) if request.GET.get("do"): result_list = [] if form.is_valid(): result_list = form.search() pager = Paginator(result_list, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE) try: page = int(request.GET.get("page", "1")) except: page = 1 try: paginator = pager.page(page) except (EmptyPage, InvalidPage): raise Http404 paged = (pager.num_pages > 1) return render_to_response( "%s/buy/advanced_search_results.html" % marketplace.template_prefix, {"result_list": paginator, "form": form, "pages": pager.page_range, "paged": paged, "total": pager.count, "view_mode": form.cleaned_data["view_by"]}, RequestContext(request)) form_helper = FormHelper() layout = Layout( Fieldset("", "q"), Fieldset("", Row("categories", "subcategories")), Fieldset("", "include"), Fieldset("", Row("from_price", "to_price")), Fieldset("", "sort"), Fieldset("", "view_by"), ) form_helper.add_layout(layout) submit = Submit("do", _("Search")) submit.field_classes = "button_primary" form_helper.add_input(submit) return render_to_response( "%s/buy/advanced_search.html" % marketplace.template_prefix, {"form": form, "helper": form_helper} , RequestContext(request))
def index(cls, request): ## Preconditions & preparation: results = msgs = None ## Main: # instantiate form in one of several ways ... form_cls = cls.ToolForm # if the form has been submitted... if request.method == "POST": form = form_cls(request.POST, request.FILES) # if the form is valid if form.is_valid(): # get the clean data and do the work msgs, results = cls.process_form(form.cleaned_data) else: msgs = [messages.Error("there was problem processing the form")] else: # if you're coming to the form anew, make an unbound form form = form_cls() helper = FormHelper() # Add in a class and id helper.form_id = "this-form-rocks" helper.form_class = "tool_form" # if necessary, do fieldsets if cls.fieldsets: sets = [] for field_pair in cls.fieldsets: if isinstance(field_pair, basestring): # if just a naked field name field_pair = ["", field_pair] sets.append(Fieldset(*field_pair)) helper.add_layout(Layout(*sets)) # add in submit actions and a reset button for button in cls.actions: submit = Submit(button[0], button[1].title()) helper.add_input(submit) reset = Reset("reset", "Reset form") helper.add_input(reset) ## Postconditions & return: return render_to_response( "relais.amergin/base_tool.html", { "identifier": cls.identifier, "title": cls.title, "description": cls.description, "form": form, "results": results, "messages": msgs, "helper": helper, }, )
def set_helper(self): helper = FormHelper() reset = Reset('', 'Reset') helper.add_input(reset) submit = Submit('', 'Submit') helper.add_input(submit) helper.form_action = '' helper.form_method = 'POST' helper.form_class = "blueForms" self.helper = helper
def test_double_rendered_field(self): form = TestForm() form_helper = FormHelper() form_helper.add_layout(Layout('is_company', 'is_company')) template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({'form': TestForm(), 'form_helper': form_helper}) settings.UNIFORM_FAIL_SILENTLY = False self.assertRaises(Exception, lambda: template.render(c)) del settings.UNIFORM_FAIL_SILENTLY
def test_uni_form_helper_inputs(self): form_helper = FormHelper() submit = Submit('my-submit', 'Submit', css_class="button white") reset = Reset('my-reset', 'Reset') hidden = Hidden('my-hidden', 'Hidden') button = Button('my-button', 'Button') form_helper.add_input(submit) form_helper.add_input(reset) form_helper.add_input(hidden) form_helper.add_input(button) template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({'form': TestForm(), 'form_helper': form_helper}) html = template.render(c) self.assertTrue('class="submit submitButton button white"' in html) self.assertTrue('id="submit-id-my-submit"' in html) self.assertTrue('class="reset resetButton"' in html) self.assertTrue('id="reset-id-my-reset"' in html) self.assertTrue('name="my-hidden"' in html) self.assertTrue('class="button"' in html) self.assertTrue('id="button-id-my-button"' in html)
def test_uni_form_helper_generic_attributes(self): form_helper = FormHelper() form_helper.form_id = 'this-form-rocks' form_helper.form_class = 'forms-that-rock' form_helper.form_method = 'GET' c = Context({'form':TestForm(),'form_helper':form_helper}) template = get_template_from_string(""" {% load uni_form_tags %} {% uni_form form form_helper %} """) html = template.render(c) good_response = """<form action="" class="uniForm forms-that-rock" method="POST" id="this-form-rocks" >"""
def test_layout_invalid_unicode_characters(self): # Adds a BooleanField that uses non valid unicode characters "ñ" form = TestForm() form_helper = FormHelper() form_helper.add_layout(Layout('españa')) template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({'form': TestForm(), 'form_helper': form_helper}) settings.UNIFORM_FAIL_SILENTLY = False self.assertRaises(Exception, lambda: template.render(c)) del settings.UNIFORM_FAIL_SILENTLY
def test_i18n(self): template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form.helper %} """) form = TestForm() form_helper = FormHelper() form_helper.layout = Layout( HTML(_("i18n text")), Fieldset( _("i18n legend"), 'first_name', 'last_name', )) form.helper = form_helper html = template.render(Context({'form': form}))
def test_CSRF_token_GET_form(self): form_helper = FormHelper() form_helper.form_method = 'GET' template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({ 'form': TestForm(), 'form_helper': form_helper, 'csrf_token': _get_new_csrf_key() }) html = template.render(c) self.assertFalse( "<input type='hidden' name='csrfmiddlewaretoken'" in html)
def helper(self): form = LoginForm() helper = FormHelper() reset = Reset('', 'Reset') helper.add_input(reset) submit = Submit('', 'Authenticate') helper.add_input(submit) helper.form_action = '/account/aadhaar/authenticate' helper.form_method = 'POST' return helper
def helper(self): form = SignupForm() helper = FormHelper() reset = Reset('', 'Reset') helper.add_input(reset) submit = Submit('', 'Sign Up') helper.add_input(submit) helper.form_action = '/account/signup' helper.form_method = 'POST' return helper
def helper(self): form = LoginForm() helper = FormHelper() reset = Reset('', 'Reset') helper.add_input(reset) submit = Submit('', 'Log In') helper.add_input(submit) helper.form_action = '/account/login' helper.form_method = 'POST' return helper
def helper(self): form = CreateClientForm() helper = FormHelper() reset = Reset('', 'Reset') helper.add_input(reset) submit = Submit('', 'Create Client') helper.add_input(submit) helper.form_action = '/account/clients' helper.form_method = 'POST' return helper
def helper(self): print "ProfileForm.helper In helper" form = ProfileForm() helper = FormHelper() reset = Reset('', 'Reset') helper.add_input(reset) submit = Submit('', 'Update') helper.add_input(submit) helper.form_action = '/account/profile/edit' helper.form_method = 'POST' helper.form_class = "blueForms" return helper
class LayoutTestForm(forms.Form): is_company = forms.CharField(label="company", required=False, widget=forms.CheckboxInput()) email = forms.CharField(label="email", max_length=30, required=True, widget=forms.TextInput()) password1 = forms.CharField(label="password", max_length=30, required=True, widget=forms.PasswordInput()) password2 = forms.CharField(label="re-enter password", max_length=30, required=True, widget=forms.PasswordInput()) first_name = forms.CharField(label="first name", max_length=30, required=True, widget=forms.TextInput()) last_name = forms.CharField(label="last name", max_length=30, required=True, widget=forms.TextInput()) # Attach a formHelper to your forms class. helper = FormHelper() # create some HTML that you want in the page style = """ <style> .formRow { color: red; } </style> """ # create the layout object layout = Layout( # first fieldset shows the company Fieldset('', 'is_company'), # second fieldset shows the contact info Fieldset( 'Contact details', HTML(style), 'email', Row('password1', 'password2'), 'first_name', 'last_name', )) helper.add_layout(layout) submit = Submit('add', 'Add this contact') helper.add_input(submit)
def test_layout_within_layout(self): form_helper = FormHelper() form_helper.add_layout( Layout( Layout( MultiField( "Some company data", 'is_company', 'email', css_id="multifield_info", ), ), Column( 'first_name', # 'last_name', Missing a field on purpose css_id="column_name", css_class="columns", ), ButtonHolder(Submit('Save', 'Save', css_class='button white'), ), Div( 'password1', 'password2', css_id="custom-div", css_class="customdivs", ))) template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({'form': TestForm(), 'form_helper': form_helper}) html = template.render(c) self.assertTrue('multiField' in html) self.assertTrue('formColumn' in html) self.assertTrue('id="multifield_info"' in html) self.assertTrue('id="column_name"' in html) self.assertTrue('class="formColumn columns"' in html) self.assertTrue('class="buttonHolder">' in html) self.assertTrue('input type="submit"' in html) self.assertTrue('name="save"' in html) self.assertTrue('id="custom-div"' in html) self.assertTrue('class="customdivs"' in html) self.assertTrue('last_name' in html)
def test_uni_form_helper_generic_attributes(self): form_helper = FormHelper() form_helper.form_id = 'this-form-rocks' form_helper.form_class = 'forms-that-rock' form_helper.form_method = 'GET' c = Context({'form': TestForm(), 'form_helper': form_helper}) template = get_template_from_string(""" {% load uni_form_tags %} {% uni_form form form_helper %} """) html = template.render(c) good_response = """<form action="" class="uniForm forms-that-rock" method="POST" id="this-form-rocks" >""" self.assertTrue( '<form action="" class="uniForm forms-that-rock" method="GET" id="this-form-rocks" >' in html)
class MUAccountForm(MUAccountBaseForm): # this displays how to attach a formHelper to your forms class. helper = FormHelper() helper.add_input(Submit('submit', _('Save'))) is_multipart = True def __init__(self, *args, **kwargs): super(MUAccountForm, self).__init__(*args, **kwargs) if 'owner' in self.fields: self.fields['owner'].widget = forms.HiddenInput()
def test_layout_fieldset_row_html_with_unicode_fieldnames(self): form_helper = FormHelper() form_helper.add_layout( Layout( Fieldset(u'Company Data', u'is_company', css_id="fieldset_company_data", css_class="fieldsets"), Fieldset( u'User Data', u'email', Row(u'password1', u'password2', css_id="row_passwords", css_class="rows"), HTML('<a href="#" id="testLink">test link</a>'), HTML(u""" {% if flag %}{{ message }}{% endif %} """), u'first_name', u'last_name', ))) template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form form form_helper %} """) c = Context({ 'form': TestForm(), 'form_helper': form_helper, 'flag': True, 'message': "Hello!", }) html = template.render(c) self.assertTrue('id="fieldset_company_data"' in html) self.assertTrue('class="fieldsets' in html) self.assertTrue('id="row_passwords"' in html) self.assertTrue('class="formRow rows"' in html) self.assertTrue('Hello!' in html) self.assertTrue('testLink' in html)
def advanced_search(request, reset=False): marketplace = request.marketplace if reset: form = AdvancedSearchForm(marketplace=marketplace) else: form = AdvancedSearchForm(marketplace=marketplace, data=request.GET) if request.GET.get("do"): result_list = [] if form.is_valid(): result_list = form.search() pager = Paginator(result_list, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE) try: page = int(request.GET.get("page", "1")) except: page = 1 try: paginator = pager.page(page) except (EmptyPage, InvalidPage): raise Http404 paged = (pager.num_pages > 1) return render_to_response( "%s/buy/advanced_search_results.html" % marketplace.template_prefix, { "result_list": paginator, "form": form, "pages": pager.page_range, "paged": paged, "total": pager.count, "view_mode": form.cleaned_data["view_by"] }, RequestContext(request)) form_helper = FormHelper() layout = Layout( Fieldset("", "q"), Fieldset("", Row("categories", "subcategories")), Fieldset("", "include"), Fieldset("", Row("from_price", "to_price")), Fieldset("", "sort"), Fieldset("", "view_by"), ) form_helper.add_layout(layout) submit = Submit("do", _("Search")) submit.field_classes = "button_primary" form_helper.add_input(submit) return render_to_response( "%s/buy/advanced_search.html" % marketplace.template_prefix, { "form": form, "helper": form_helper }, RequestContext(request))
def profile_edit(request, template_name="profiles/profile_edit.html"): helper = FormHelper() submit = Submit('edit', 'Edit') helper.add_input(submit) reset = Reset('reset', 'Reset') helper.add_input(reset) profile = get_object_or_404(Profile, user=request.user) form = ProfileForm(request.POST or None, instance=profile) if form.is_valid(): form.save() msg = 'Profile edited' messages.add_message(request, messages.INFO, msg) return HttpResponseRedirect( reverse("profile_detail", kwargs={"username": profile.user.username})) return render_to_response(template_name, { "profile": profile, "form": form, "helper": helper, }, context_instance=RequestContext(request))
def test_uni_form_helper_form_attributes(self): template = get_template_from_string(""" {% load uni_form_tags %} {% uni_form form form_helper %} """) # First we build a standard form helper form_helper = FormHelper() form_helper.form_id = 'this-form-rocks' form_helper.form_class = 'forms-that-rock' form_helper.form_method = 'GET' # now we render it c = Context({'form': TestForm(), 'form_helper': form_helper}) html = template.render(c) # Lets make sure everything loads right self.assertTrue("""<form""" in html) self.assertTrue("""class="uniForm forms-that-rock" """ in html) self.assertTrue("""method="get" """ in html) self.assertTrue("""id="this-form-rocks">""" in html) # now lets remove the form tag and render it again. All the True items above # should now be false because the form tag is removed. form_helper.form_tag = False c = Context({'form': TestForm(), 'form_helper': form_helper}) html = template.render(c) self.assertFalse("""<form""" in html) self.assertFalse("""id="this-form-rocks">""" in html) self.assertFalse("""class="uniForm forms-that-rock" """ in html) self.assertFalse("""method="get" """ in html) self.assertFalse("""id="this-form-rocks">""" in html)
def test_uni_form_formset_with_helper_without_layout(self): template = get_template_from_string(u""" {% load uni_form_tags %} {% uni_form testFormSet formset_helper %} """) form_helper = FormHelper() form_helper.form_id = 'thisFormsetRocks' form_helper.form_class = 'formsets-that-rock' form_helper.form_method = 'POST' form_helper.form_action = 'simpleAction' TestFormSet = formset_factory(TestForm, extra=3) testFormSet = TestFormSet() c = Context({ 'testFormSet': testFormSet, 'formset_helper': form_helper, 'csrf_token': _get_new_csrf_key() }) html = template.render(c) self.assertEqual(html.count('<form'), 1) self.assertEqual( html.count("<input type='hidden' name='csrfmiddlewaretoken'"), 1) # Check formset management form self.assertTrue('form-TOTAL_FORMS' in html) self.assertTrue('form-INITIAL_FORMS' in html) self.assertTrue('form-MAX_NUM_FORMS' in html) self.assertTrue('class="uniForm formsets-that-rock"' in html) self.assertTrue('method="post"' in html) self.assertTrue('id="thisFormsetRocks">' in html) self.assertTrue('action="%s"' % reverse('simpleAction') in html)
def view_helper_set_action(request): # Create the form form = TestForm() # create a formHelper helper = FormHelper() # add in a submit and reset button submit = Submit('send-away', 'Send to other page') helper.add_input(submit) helper.form_action = 'view_helper' helper.form_method = 'GET' # create the response dictionary response_dictionary = { 'form': form, 'helper': helper, 'title': 'view helper action' } return render_to_response('test_app/generic_form_test.html', response_dictionary, context_instance=RequestContext(request))