Exemple #1
0
                    filename = file_upload.filename
                    file = file_upload.file
                
                    value.add_file(filename, file)

    def value(self, value):
        if value:
            return ', '.join(self.get_filenames())
        else:
            return ''

    def download(self, value, filename, request):
        from mimetypes import guess_type
        content_type, encoding = guess_type(filename)

        file_path = value.file_path(filename)

        res = Response(content_type=content_type, conditional_response=True)
        res.app_iter = open(file_path,'rb')
        res.content_length = os.path.getsize(file_path)
        res.last_modified = os.path.getmtime(file_path)
        res.etag = '%s-%s-%s' % (os.path.getmtime(file_path),
                                 os.path.getsize(file_path),
                                 hash(file_path))

        return res


register_widget(FileUploadWidget, FileUploadWidgetController)
Exemple #2
0
        return render("feedback_items.pt", dict(widget=self.widget, summaries=summaries), request)

    def render_feedback_for_item(self, item, request):
        summaries = []

        for feedback in item.feedback:
            value = feedback.get_widget_value(self.widget)

            if value and value.get_value():
                summaries.append({"reviewer": feedback.user.name, "comment": value.get_value()})

        return render("feedback_item.pt", dict(widget=self.widget, summaries=summaries), request)

    def value(self, value):
        return value.get_value()

    def populate_record_from_request(self, record, request):
        session = DBSession()
        value = (
            session.query(ParagraphTextValue).filter(Value.record == record).filter(Value.widget == self.widget).first()
        )

        if not value:
            value = ParagraphTextValue(record, self.widget)

        value.set_value(request.params.get(self.field_id(), ""))
        session.add(value)


register_widget(ParagraphTextWidget, ParagraphTextController)
Exemple #3
0
        for choice in data:
            if data[choice]['count']:
                data[choice]['percent'] = int(100 * data[choice]['count'] / num_feedback)
                data[choice]['color'] = int(128 - 128 * data[choice]['percent']/100)

        return render(
            'feedback_item.pt',
            dict(
                widget=self.widget,
                field_id=self.field_id(),
                choices=choices,
                data=data
            ),
            request
        )

    def value(self, value):
        return value.get_value()

    def populate_record_from_request(self, record, request):
        session = DBSession()
        value = session.query(MultipleChoiceValue).filter(Value.record==record).filter(Value.widget==self.widget).first()

        if not value:
            value = MultipleChoiceValue(record, self.widget)
            
        value.set_value(request.params.get(self.field_id(), ''))
        session.add(value)

register_widget(MultipleChoiceWidget, MultipleChoiceWidgetController)
Exemple #4
0
                    'reviewer':feedback.user.name,
                    'comment':value.get_value()
                })

        return render(
            'feedback_item.pt',
            dict(
                widget=self.widget,
                summaries=summaries
            ),
            request
        )

    def value(self, value):
        if value:
            return value.get_value()
        else:
            return ''

    def populate_record_from_request(self, record, request):
        session = DBSession()
        value = session.query(SingleLineTextValue).filter(Value.record==record).filter(Value.widget==self.widget).first()

        if not value:
            value = SingleLineTextValue(record, self.widget)
            
        value.set_value(request.params.get(self.field_id(), ''))
        session.add(value)

register_widget(SingleLineTextWidget, SingleLineTextController)