예제 #1
0
    def upload(self):
        return_url = request.headers['Referer']
        file_data = request.files.get('file')
        try:
            question = CommitteeQuestion.import_from_uploaded_answer_file(file_data)
            if question.id:
                # it already existed
                flash("That question has already been imported.", "warn")
                return redirect(get_url('.edit_view', id=question.id, url=return_url))

            db.session.add(question)
            db.session.commit()
            flash("Successfully imported from %s" % (file_data.filename,))
            return redirect(get_url('.edit_view', id=question.id, url=return_url))
        except ValueError as e:
            flash("Couldn't import from %s: %s" % (file_data.filename, e.message), 'error')
            return redirect(return_url)
예제 #2
0
    def get_url(self, field):
        if field.thumbnail_size:
            filename = field.thumbnail_fn(field.data)
        else:
            filename = field.data

        if field.url_relative_path:
            filename = urljoin(field.url_relative_path, filename)

        return get_url(field.endpoint, filename=filename)
예제 #3
0
    def get_url(self, field):
        if field.thumbnail_size:
            filename = field.thumbnail_fn(field.data)
        else:
            filename = field.data

        if field.url_relative_path:
            filename = urljoin(field.url_relative_path, filename)

        return get_url(field.endpoint, filename=filename)
예제 #4
0
    def upload(self):
        return_url = request.headers['Referer']
        file_data = request.files.get('file')
        try:
            question = CommitteeQuestion.import_from_uploaded_answer_file(
                file_data)
            if question.id:
                # it already existed
                flash("That question has already been imported.", "warn")
                return redirect(
                    get_url('.edit_view', id=question.id, url=return_url))

            db.session.add(question)
            db.session.commit()
            flash("Successfully imported from %s" % (file_data.filename, ))
            return redirect(
                get_url('.edit_view', id=question.id, url=return_url))
        except ValueError as e:
            flash(
                "Couldn't import from %s: %s" %
                (file_data.filename, e.message), 'error')
            return redirect(return_url)
예제 #5
0
    def __call__(self, field, **kwargs):
        kwargs.setdefault('id', field.id)

        placeholder = ''
        if field.data and isinstance(field.data, ImageGridFsProxy):
            args = helpers.make_thumb_args(field.data)
            placeholder = self.template % {
                'thumb': get_url('.api_file_view', **args),
                'marker': '_%s-delete' % field.name
            }

        return HTMLString(
            '%s<input %s>' %
            (placeholder, html_params(name=field.name, type='file', **kwargs)))
예제 #6
0
    def __call__(self, field, **kwargs):
        kwargs.setdefault('id', field.id)

        placeholder = ''
        if field.data and isinstance(field.data, ImageGridFsProxy):
            args = helpers.make_thumb_args(field.data)
            placeholder = self.template % {
                'thumb': get_url('.api_file_view', **args),
                'marker': '_%s-delete' % field.name
            }

        return HTMLString('%s<input %s>' % (placeholder,
                                            html_params(name=field.name,
                                                        type='file',
                                                        **kwargs)))
예제 #7
0
    def __call__(self, field, **kwargs):
        kwargs.setdefault('data-role', 'select2-ajax')
        kwargs.setdefault('data-url',
                          get_url('.ajax_lookup', name=field.loader.name))

        allow_blank = getattr(field, 'allow_blank', False)
        if allow_blank and not self.multiple:
            kwargs['data-allow-blank'] = u'1'

        kwargs.setdefault('id', field.id)
        kwargs.setdefault('type', 'hidden')

        if self.multiple:
            result = []
            ids = []

            for value in field.data:
                data = field.loader.format(value)
                result.append(data)
                ids.append(as_unicode(data[0]))

            separator = getattr(field, 'separator', ',')

            kwargs['value'] = separator.join(ids)
            kwargs['data-json'] = json.dumps(result)
            kwargs['data-multiple'] = u'1'
        else:
            data = field.loader.format(field.data)

            if data:
                kwargs['value'] = data[0]
                kwargs['data-json'] = json.dumps(data)

        placeholder = gettext(
            field.loader.options.get('placeholder', 'Please select model'))
        kwargs.setdefault('data-placeholder', placeholder)

        return HTMLString('<input %s>' %
                          html_params(name=field.name, **kwargs))
예제 #8
0
    def __call__(self, field, **kwargs):
        kwargs.setdefault('data-role', 'select2-ajax')
        kwargs.setdefault('data-url', get_url('.ajax_lookup', name=field.loader.name))

        allow_blank = getattr(field, 'allow_blank', False)
        if allow_blank and not self.multiple:
            kwargs['data-allow-blank'] = u'1'

        kwargs.setdefault('id', field.id)
        kwargs.setdefault('type', 'hidden')

        if self.multiple:
            result = []
            ids = []

            for value in field.data:
                data = field.loader.format(value)
                result.append(data)
                ids.append(as_unicode(data[0]))

            separator = getattr(field, 'separator', ',')

            kwargs['value'] = separator.join(ids)
            kwargs['data-json'] = json.dumps(result)
            kwargs['data-multiple'] = u'1'
        else:
            data = field.loader.format(field.data)

            if data:
                kwargs['value'] = data[0]
                kwargs['data-json'] = json.dumps(data)

        placeholder = gettext(field.loader.options.get('placeholder', 'Please select model'))
        kwargs.setdefault('data-placeholder', placeholder)

        return HTMLString('<input %s>' % html_params(name=field.name, **kwargs))
예제 #9
0
    def __call__(self, field, **kwargs):
        kwargs["data-role"] = u"select2-ajax"
        kwargs["data-url"] = get_url(".ajax_lookup", name=field.loader.name)

        allow_blank = getattr(field, "allow_blank", False)
        if allow_blank and not self.multiple:
            kwargs["data-allow-blank"] = u"1"

        kwargs.setdefault("id", field.id)
        kwargs.setdefault("type", "hidden")

        if self.multiple:
            result = []
            ids = []

            for value in field.data:
                data = field.loader.format(value)
                result.append(data)
                ids.append(as_unicode(data[0]))

            separator = getattr(field, "separator", ",")

            kwargs["value"] = separator.join(ids)
            kwargs["data-json"] = json.dumps(result)
            kwargs["data-multiple"] = u"1"
        else:
            data = field.loader.format(field.data)

            if data:
                kwargs["value"] = data[0]
                kwargs["data-json"] = json.dumps(data)

        placeholder = gettext(field.loader.options.get("placeholder", "Please select model"))
        kwargs.setdefault("data-placeholder", placeholder)

        return HTMLString("<input %s>" % html_params(name=field.name, **kwargs))