Пример #1
0
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.")]
Пример #2
0
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.")]
Пример #3
0
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))
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
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))
Пример #7
0
            "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)
Пример #8
0
            "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)