def details_post(http_request, factory, factory_form, screensize_form, colordepth_form): """ Process a post request to the details page, e.g. to add or remove a screen size or color depth. """ if factory_form.is_valid(): factory.update_fields( hardware=factory_form.cleaned_data['hardware'], operating_system=factory_form.cleaned_data['operating_system']) return results.redirect(factory, 'updated_factory', factory.name) if screensize_form.is_valid(): try: screen_size = ScreenSize.objects.create(factory=factory, width = screensize_form.cleaned_data['width'], height = screensize_form.cleaned_data['height']) return results.redirect(factory, 'added_screen_size', unicode(screen_size), 'screensizes') except IntegrityError, e: transaction.rollback() if 'duplicate' in str(e).lower(): screensize_form.errors['width'] = [ _("This screen size is already enabled.")] else: screensize_form.errors['width'] = [_("Invalid data.")]
def details_post(http_request, factory, factory_form, screensize_form, colordepth_form): """ Process a post request to the details page, e.g. to add or remove a screen size or color depth. """ if factory_form.is_valid(): factory.update_fields( hardware=factory_form.cleaned_data['hardware'], operating_system=factory_form.cleaned_data['operating_system']) return results.redirect(factory, 'updated_factory', factory.name) if screensize_form.is_valid(): try: screen_size = ScreenSize.objects.create(factory=factory, width = screensize_form.cleaned_data['width'], height = screensize_form.cleaned_data['height']) return results.redirect(factory, 'added_screen_size', unicode(screen_size), 'screensizes') except IntegrityError, e: transaction.rollback() if 'duplicate' in str(e).lower(): screensize_form.errors['width'] = [ _("This screen size is already enabled.")] else: screensize_form.errors['width'] = [_("Invalid data.")]
def details(http_request, hashkey): """ Show large preview and detailed information about a screenshot. """ screenshot = get_object_or_404(Screenshot, hashkey=hashkey) request = get_object_or_404(Request, screenshot=screenshot) problem_form = ProblemForm(http_request.POST) requested = { 'browser': unicode(screenshot.browser), 'operating_system': unicode(screenshot.factory.operating_system), 'java': unicode(screenshot.browser.java), 'javascript': unicode(screenshot.browser.javascript), 'flash': unicode(screenshot.browser.flash), } choices = [] codes = PROBLEM_CHOICES.keys() codes.sort() for code in codes: if code in PROBLEM_CHOICES_EXPLICIT: choices.append((code, PROBLEM_CHOICES_EXPLICIT[code] % requested)) else: choices.append((code, PROBLEM_CHOICES[code])) choices.append((999, '')) problem_form.fields['code'].choices = choices if problem_form.is_valid(): code = int(problem_form.cleaned_data['code']) if code in PROBLEM_CHOICES_EXPLICIT: problem_form.cleaned_data['message'] = ( PROBLEM_CHOICES_EXPLICIT[code] % requested) elif code in PROBLEM_CHOICES: problem_form.cleaned_data['message'] = PROBLEM_CHOICES[code] if problem_form.cleaned_data['message']: problem_report = ProblemReport.objects.create( screenshot=screenshot, ip=http_request.META['REMOTE_ADDR'], **problem_form.cleaned_data) return results.redirect(screenshot.factory, 'added_problem_report', problem_report, 'problems') length = len(PROBLEM_CHOICES) select = "document.forms['problem_form'].code[%d].checked=true" % length message_field = problem_form['message'].as_text({ 'onclick': select, 'onchange': 'if (this.value) ' + select }) return render_to_response('screenshots/details.html', locals(), context_instance=RequestContext(http_request))
def add(http_request): """ Add a new screenshot factory. """ factory = None form = CreateFactoryForm(http_request.POST or None) if form.is_valid(): factory = form.create_factory(http_request.user) if factory: factory.update_fields(ip=http_request.META['REMOTE_ADDR']) else: form_title = _("register a new screenshot factory") form_submit = _("register") form_javascript = "document.getElementById('id_name').focus()" return render_to_response('form.html', locals(), context_instance=RequestContext(http_request)) return results.redirect(factory, 'added_factory', factory.name)
def add(http_request): """ Add a new screenshot factory. """ factory = None form = CreateFactoryForm(http_request.POST or None) if form.is_valid(): factory = form.create_factory(http_request.user) if factory: factory.update_fields(ip=http_request.META['REMOTE_ADDR']) else: form_title = _("register a new screenshot factory") form_submit = _("register") form_javascript = "document.getElementById('id_name').focus()" return render_to_response('form.html', locals(), context_instance=RequestContext(http_request)) return results.redirect(factory, 'added_factory', factory.name)
def details(http_request, hashkey): """ Show large preview and detailed information about a screenshot. """ screenshot = get_object_or_404(Screenshot, hashkey=hashkey) request = get_object_or_404(Request, screenshot=screenshot) problem_form = ProblemForm(http_request.POST) requested = { 'browser': unicode(screenshot.browser), 'operating_system': unicode(screenshot.factory.operating_system), 'java': unicode(screenshot.browser.java), 'javascript': unicode(screenshot.browser.javascript), 'flash': unicode(screenshot.browser.flash), } choices = [] codes = PROBLEM_CHOICES.keys() codes.sort() for code in codes: if code in PROBLEM_CHOICES_EXPLICIT: choices.append((code, PROBLEM_CHOICES_EXPLICIT[code] % requested)) else: choices.append((code, PROBLEM_CHOICES[code])) choices.append((999, '')) problem_form.fields['code'].choices = choices if problem_form.is_valid(): code = int(problem_form.cleaned_data['code']) if code in PROBLEM_CHOICES_EXPLICIT: problem_form.cleaned_data['message'] = ( PROBLEM_CHOICES_EXPLICIT[code] % requested) elif code in PROBLEM_CHOICES: problem_form.cleaned_data['message'] = PROBLEM_CHOICES[code] if problem_form.cleaned_data['message']: problem_report = ProblemReport.objects.create( screenshot=screenshot, ip=http_request.META['REMOTE_ADDR'], **problem_form.cleaned_data) return results.redirect( screenshot.factory, 'added_problem_report', problem_report, 'problems') length = len(PROBLEM_CHOICES) select = "document.forms['problem_form'].code[%d].checked=true" % length message_field = problem_form['message'].as_text( {'onclick': select, 'onchange': 'if (this.value) ' + select}) return render_to_response('screenshots/details.html', locals(), context_instance=RequestContext(http_request))
"You don't have permission to edit this browser.") return browser def deactivate_browser(http_request, id): """ Deactivate the specified browser. """ try: browser = get_browser(http_request, id) if not browser.active: raise InvalidRequest(_("This browser is already inactive.")) except InvalidRequest, error: return error_page(http_request, error.title, error.args[0]) browser.update_fields(active=False) return results.redirect(browser.factory, 'deactivated_browser', browser, 'browsers') def activate_browser(http_request, id): """ Activate the specified browser. """ try: browser = get_browser(http_request, id) if browser.active: raise InvalidRequest("This browser is already active.") except InvalidRequest, error: return error_page(http_request, error.title, error.args[0]) data = dict((field.name, getattr(browser, field.name)) for field in Browser._meta.fields) browsers_views.delete_or_deactivate_similar_browsers(data, exclude=browser)
"You don't have permission to edit this browser.") return browser def deactivate_browser(http_request, id): """ Deactivate the specified browser. """ try: browser = get_browser(http_request, id) if not browser.active: raise InvalidRequest(_("This browser is already inactive.")) except InvalidRequest, error: return error_page(http_request, error.title, error.args[0]) browser.update_fields(active=False) return results.redirect(browser.factory, 'deactivated_browser', browser, 'browsers') def activate_browser(http_request, id): """ Activate the specified browser. """ try: browser = get_browser(http_request, id) if browser.active: raise InvalidRequest("This browser is already active.") except InvalidRequest, error: return error_page(http_request, error.title, error.args[0]) data = dict((field.name, getattr(browser, field.name)) for field in Browser._meta.fields) browsers_views.delete_or_deactivate_similar_browsers(data, exclude=browser)