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)
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)
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)
'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)