def test_lang_file_is_hiding(self): """ `hide_contrib_form` should return true if lang file has the comment (## hide_form ##), and false otherwise. """ # 'de' lang file has 'active' and 'hide_form' comments ok_(hide_contrib_form('de')) # 'fr' lang file has 'active' comment ok_(not hide_contrib_form('fr')) # 'pt-BR' lang file has hide_form' comment ok_(hide_contrib_form('pt-BR')) # 'sl' lang file has no comments ok_(not hide_contrib_form('sl'))
def contribute(request, template, return_to_form): has_contribute_form = (request.method == 'POST' and 'contribute-form' in request.POST) has_newsletter_form = (request.method == 'POST' and 'newsletter-form' in request.POST) locale = getattr(request, 'locale', 'en-US') contribute_success = False newsletter_success = False # This is ugly, but we need to handle two forms. I would love if # these forms could post to separate pages and get redirected # back, but we're forced to keep the error/success workflow on the # same page. Please change this. if has_contribute_form: form = ContributeForm(request.POST) contribute_success = email_contribute.handle_form(request, form) if contribute_success: # If form was submitted successfully, return a new, empty # one. form = ContributeForm() else: form = ContributeForm() if has_newsletter_form: newsletter_form = NewsletterForm(locale, request.POST, prefix='newsletter') if newsletter_form.is_valid(): data = newsletter_form.cleaned_data try: basket.subscribe(data['email'], 'about-mozilla', format=data['fmt'], country=data['country']) newsletter_success = True except basket.BasketException: msg = newsletter_form.error_class( ['We apologize, but an error occurred in our system.' 'Please try again later.'] ) newsletter_form.errors['__all__'] = msg else: newsletter_form = NewsletterForm(locale, prefix='newsletter') return l10n_utils.render(request, template, {'form': form, 'contribute_success': contribute_success, 'newsletter_form': newsletter_form, 'newsletter_success': newsletter_success, 'return_to_form': return_to_form, 'hide_form': hide_contrib_form(request.locale), 'has_moz15': locale in settings.LOCALES_WITH_MOZ15})