def handle_submit(self, converted): request = self.request context = self.context ordering = getattr(context, 'ordering', None) if ordering is not None: ordering.sync(context.keys()) creator = authenticated_userid(request) reference_object = create_content( self.content_iface, converted['title'], converted['description'], creator, ) name = make_unique_name(context, converted['title']) context[name] = reference_object if ordering is not None: ordering.add(name) # save the tags set_tags(reference_object, request, converted['tags']) location = resource_url(reference_object, request) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if 'security_state' in converted: if workflow is not None: workflow.transition_to_state(context, request, converted['security_state']) context.title = converted['title'] context.text = converted['text'] context.description = extract_description(converted['text']) # Tags and attachments set_tags(context, request, converted['tags']) creator = authenticated_userid(request) attachments_folder = context['attachments'] upload_attachments( filter(lambda x: x is not None, converted['attachments']), attachments_folder, creator, request) # modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = resource_url(context, request) self.filestore.clear() return HTTPFound(location=location)
def handle_submit(self, converted): request = self.request context = self.context #create the news item and store it creator = authenticated_userid(request) newsitem = create_content( INewsItem, title=converted['title'], text=converted['text'], creator=creator, publication_date=converted['publication_date'], caption=converted['caption'], ) name = make_unique_name(context, converted['title']) context[name] = newsitem # tags, attachments, and photos set_tags(newsitem, request, converted['tags']) attachments_folder = newsitem['attachments'] upload_attachments(converted['attachments'], attachments_folder, creator, request) handle_photo_upload(newsitem, converted) self.filestore.clear() location = model_url(newsitem, request) return HTTPFound(location=location)
def handle_submit(self, converted): if lock.owns_lock(self.context, self.userid): lock.clear(self.context) context = self.context request = self.request workflow = self.workflow # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if workflow is not None: if 'security_state' in converted: workflow.transition_to_state(context, request, converted['security_state']) context.text = converted['text'] context.description = extract_description(converted['text']) newtitle = converted['title'] if newtitle != context.title: context.change_title(newtitle) # Save the tags on it set_tags(context, request, converted['tags']) # Modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = resource_url(context, request) msg = "?status_message=Wiki%20Page%20edited" return HTTPFound(location=location + msg)
def handle_submit(self, converted): request = self.request context = self.context # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) simple_fields = ['title', 'text', 'caption', 'publication_date'] for field in simple_fields: setattr(context, field, converted[field]) # save tags, attachments, photo set_tags(context, request, converted['tags']) userid = authenticated_userid(request) attachments_folder = context['attachments'] upload_attachments(converted['attachments'], attachments_folder, userid, request) handle_photo_upload(context, converted) self.filestore.clear # mark as modified context.modified_by = userid objectEventNotify(ObjectModifiedEvent(context)) location = resource_url(context, request) msg = "?status_message=News%20Item%20edited" return HTTPFound(location=location + msg)
def handle_submit(self, converted): context = self.context request = self.request # create the page and store it creator = authenticated_userid(request) page = create_content(IPage, converted['title'], converted['text'], extract_description(converted['text']), creator, ) name = make_unique_name(context, converted['title']) context[name] = page # tags and attachments set_tags(page, request, converted['tags']) attachments_folder = page['attachments'] upload_attachments(converted['attachments'], attachments_folder, creator, request) relocate_temp_images(page, request) # update ordering if in ordered container if hasattr(context, 'ordering'): context.ordering.add(name) location = resource_url(page, request) self.filestore.clear() return HTTPFound(location=location)
def handle_submit(self, converted): request = self.request context = self.context workflow = self.workflow wikipage = create_content( IWikiPage, converted['title'], converted['text'], extract_description(converted['text']), authenticated_userid(request), ) name = make_name(context, converted['title']) context[name] = wikipage if workflow is not None: workflow.initialize(wikipage) if 'security_state' in converted: workflow.transition_to_state(wikipage, request, converted['security_state']) # Save the tags on it. set_tags(wikipage, request, converted['tags']) relocate_temp_images(wikipage, request) if converted['sendalert']: alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(wikipage, request) msg = '?status_message=Wiki%20Page%20created' location = model_url(wikipage, request) + msg return HTTPFound(location=location)
def handle_submit(self, converted): request = self.request context = self.context #create the news item and store it creator = authenticated_userid(request) newsitem = create_content( INewsItem, title=converted['title'], text=converted['text'], creator=creator, publication_date=converted['publication_date'], caption=converted['caption'], ) name = make_unique_name(context, converted['title']) context[name] = newsitem relocate_temp_images(newsitem, request) # tags, attachments, and photos set_tags(newsitem, request, converted['tags']) attachments_folder = newsitem['attachments'] upload_attachments(converted['attachments'], attachments_folder, creator, request) try: handle_photo_upload(newsitem, converted) except Invalid, e: raise ValidationError(**e.error_dict)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow name = make_unique_name(context, converted['title']) creator = authenticated_userid(request) topic = create_content(IForumTopic, converted['title'], converted['text'], creator, ) topic.description = extract_description(converted['text']) context[name] = topic # Set up workflow if workflow is not None: workflow.initialize(topic) if 'security_state' in converted: workflow.transition_to_state(topic, request, converted['security_state']) # send the temp images to their final place relocate_temp_images(topic, request) # Tags and attachments set_tags(topic, request, converted['tags']) if support_attachments(topic): upload_attachments(converted['attachments'], topic['attachments'], creator, request) location = resource_url(topic, request) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow name = make_unique_name(context, converted['title']) creator = authenticated_userid(request) topic = create_content(IForumTopic, converted['title'], converted['text'], creator, ) topic.description = extract_description(converted['text']) context[name] = topic # Set up workflow if workflow is not None: workflow.initialize(topic) if 'security_state' in converted: workflow.transition_to_state(topic, request, converted['security_state']) # Tags and attachments set_tags(context, request, converted['tags']) if support_attachments(topic): upload_attachments(converted['attachments'], topic['attachments'], creator, request) location = model_url(topic, request) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if workflow is not None: if 'security_state' in converted: workflow.transition_to_state(context, request, converted['security_state']) context.title = converted['title'] context.text = converted['text'] context.description = extract_description(converted['text']) # Save the tags on it set_tags(context, request, converted['tags']) # Save new attachments creator = authenticated_userid(request) if support_attachments(context): upload_attachments(converted['attachments'], context['attachments'], creator, request) # Modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = resource_url(context, request, query={'status_message':'Forum Topic Edited'}) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request # create the page and store it creator = authenticated_userid(request) page = create_content( IPage, converted['title'], converted['text'], extract_description(converted['text']), creator, ) name = make_unique_name(context, converted['title']) context[name] = page # tags and attachments set_tags(page, request, converted['tags']) attachments_folder = page['attachments'] upload_attachments(converted['attachments'], attachments_folder, creator, request) relocate_temp_images(page, request) # update ordering if in ordered container if hasattr(context, 'ordering'): context.ordering.add(name) location = resource_url(page, request) self.filestore.clear() return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if workflow is not None: if 'security_state' in converted: workflow.transition_to_state(context, request, converted['security_state']) context.text = converted['text'] context.description = extract_description(converted['text']) newtitle = converted['title'] if newtitle != context.title: context.change_title(newtitle) # Save the tags on it set_tags(context, request, converted['tags']) # Modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = model_url(context, request) msg = "?status_message=Wiki%20Page%20edited" return HTTPFound(location=location+msg)
def handle_submit(self, converted): context = self.context request = self.request userid = authenticated_userid(request) # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) context.title = converted['title'] context.text = converted['text'] context.description = extract_description(converted['text']) # tags and attachments set_tags(context, request, converted['tags']) creator = userid attachments_folder = context['attachments'] upload_attachments(converted['attachments'], attachments_folder, creator, request) # modified context.modified_by = userid objectEventNotify(ObjectModifiedEvent(context)) self.filestore.clear() location = resource_url(context, request) msg = "?status_message=Page%20edited" return HTTPFound(location=location+msg)
def add_referencemanual_view(context, request): tags_list=request.POST.getall('tags') form = AddReferenceManualForm(tags_list=tags_list) if 'form.cancel' in request.POST: return HTTPFound(location=model_url(context, request)) if 'form.submitted' in request.POST: try: converted = form.validate(request.POST) # Create the reference manual and store it creator = authenticated_userid(request) reference_manual = create_content(IReferenceManual, converted['title'], converted['description'], creator, ) name = make_unique_name(context, converted['title']) context[name] = reference_manual # Save the tags on it. set_tags(reference_manual, request, converted['tags']) location = model_url(reference_manual, request) return HTTPFound(location=location) except Invalid, e: fielderrors = e.error_dict fill_values = form.convert(request.POST) tags_field = dict( records = [dict(tag=t) for t in request.POST.getall('tags')] )
def handle_submit(self, converted): request = self.request context = self.context #create the news item and store it creator = authenticated_userid(request) newsitem = create_content( INewsItem, title=converted['title'], text=converted['text'], creator=creator, publication_date=converted['publication_date'], caption=converted['caption'], ) name = make_unique_name(context, converted['title']) context[name] = newsitem # tags, attachments, and photos set_tags(newsitem, request, converted['tags']) attachments_folder = newsitem['attachments'] upload_attachments(converted['attachments'], attachments_folder, creator, request) try: handle_photo_upload(newsitem, converted) except Invalid, e: raise ValidationError(**e.error_dict)
def edit_referencesection_view(context, request): tags_list = request.POST.getall('tags') form = EditReferenceSectionForm(tags_list=tags_list) if 'form.cancel' in request.POST: return HTTPFound(location=model_url(context, request)) if 'form.submitted' in request.POST: try: converted = form.validate(request.POST) # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) context.title = converted['title'] context.description = converted['description'] # Save the tags on it set_tags(context, request, converted['tags']) # Modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = model_url(context, request) msg = "?status_message=Reference%20section%20edited" return HTTPFound(location=location+msg) except Invalid, e: fielderrors = e.error_dict fill_values = form.convert(request.POST)
def handle_submit(self, converted): request = self.request context = self.context workflow = self.workflow wikipage = create_content( IWikiPage, converted['title'], converted['text'], extract_description(converted['text']), authenticated_userid(request), ) name = make_name(context, converted['title']) context[name] = wikipage if workflow is not None: workflow.initialize(wikipage) if 'security_state' in converted: workflow.transition_to_state(wikipage, request, converted['security_state']) # Save the tags on it. set_tags(wikipage, request, converted['tags']) relocate_temp_images(wikipage, request) if converted['sendalert']: alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(wikipage, request) msg = '?status_message=Wiki%20Page%20created' location = resource_url(wikipage, request) + msg return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request userid = authenticated_userid(request) # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) context.title = converted['title'] context.text = converted['text'] context.description = extract_description(converted['text']) # tags and attachments set_tags(context, request, converted['tags']) creator = userid attachments_folder = context['attachments'] upload_attachments(converted['attachments'], attachments_folder, creator, request) # modified context.modified_by = userid objectEventNotify(ObjectModifiedEvent(context)) self.filestore.clear() location = resource_url(context, request) msg = "?status_message=Page%20edited" return HTTPFound(location=location + msg)
def handle_submit(self, converted): request = self.request context = self.context # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) simple_fields = ['title', 'text', 'caption', 'publication_date'] for field in simple_fields: setattr(context, field, converted[field]) # save tags, attachments, photo set_tags(context, request, converted['tags']) userid = authenticated_userid(request) attachments_folder = context['attachments'] upload_attachments(converted['attachments'], attachments_folder, userid, request) handle_photo_upload(context, converted) self.filestore.clear # mark as modified context.modified_by = userid objectEventNotify(ObjectModifiedEvent(context)) location = resource_url(context, request) msg = "?status_message=News%20Item%20edited" return HTTPFound(location=location+msg)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if workflow is not None: if 'security_state' in converted: workflow.transition_to_state(context, request, converted['security_state']) context.title = converted['title'] context.text = converted['text'] context.description = extract_description(converted['text']) # Save the tags on it set_tags(context, request, converted['tags']) # Save new attachments creator = authenticated_userid(request) if support_attachments(context): upload_attachments(converted['attachments'], context['attachments'], creator, request) # Modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = model_url(context, request, query={'status_message':'Forum Topic Edited'}) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow name = make_unique_name(context, converted['title']) creator = authenticated_userid(request) folder = create_content(ICommunityFolder, converted['title'], creator, ) context[name] = folder if workflow is not None: workflow.initialize(folder) if 'security_state' in converted: workflow.transition_to_state(folder, request, converted['security_state']) # Tags, attachments, alerts set_tags(folder, request, converted['tags']) # Make changes post-creation based on policy in src/osi customizer = queryMultiAdapter((folder, request), IFolderCustomizer) if customizer: for interface in customizer.markers: alsoProvides(folder, interface) location = model_url(folder, request) return HTTPFound(location=location)
def handle_submit(self, converted): request = self.request context = self.context name = make_name(context, converted['title']) userid = authenticated_userid(request) community = create_content( ICommunity, converted['title'], converted['description'], converted['text'], userid, ) community.sendalert_default = converted.get('sendalert_default', True) # this *must* directly follow content creation because the # toolinfo add stuff depends on the community having a full # path. context[name] = community # required to use moderators_group_name and # members_group_name community.__name__ = name tools_present = [] for toolinfo in self.available_tools: if toolinfo['name'] in converted.get('tools', []): toolinfo['component'].add(community, request) tools_present.append(toolinfo['name']) # Set the default tool if converted.get('default_tool') in tools_present: community.default_tool = converted['default_tool'] else: community.default_tool = None users = find_users(context) moderators_group_name = community.moderators_group_name members_group_name = community.members_group_name for group_name in moderators_group_name, members_group_name: users.add_group(userid, group_name) if self.workflow is not None: if 'security_state' in converted: self.workflow.transition_to_state(community, request, converted['security_state']) # Save the tags on it. set_tags(community, request, converted['tags']) # Adding a community should take you to the Add Existing # User screen, so the moderator can include some users. location = resource_url(community, request, 'members', 'add_existing.html', query={'status_message': 'Community added'}) return HTTPFound(location=location)
def handle_submit(self, converted): request = self.request context = self.context name = make_name(context, converted['title']) userid = authenticated_userid(request) community = create_content(ICommunity, converted['title'], converted['description'], converted['text'], userid, ) community.sendalert_default = converted.get('sendalert_default', True) # this *must* directly follow content creation because the # toolinfo add stuff depends on the community having a full # path. context[name] = community # required to use moderators_group_name and # members_group_name community.__name__ = name tools_present = [] for toolinfo in self.available_tools: if toolinfo['name'] in converted.get('tools', []): toolinfo['component'].add(community, request) tools_present.append(toolinfo['name']) # Set the default tool if converted.get('default_tool') in tools_present: community.default_tool = converted['default_tool'] else: community.default_tool = None users = find_users(context) moderators_group_name = community.moderators_group_name members_group_name = community.members_group_name for group_name in moderators_group_name, members_group_name: users.add_group(userid, group_name) if self.workflow is not None: if 'security_state' in converted: self.workflow.transition_to_state(community, request, converted['security_state']) # Save the tags on it. set_tags(community, request, converted['tags']) # Adding a community should take you to the Add Existing # User screen, so the moderator can include some users. location = resource_url( community, request, 'members', 'add_existing.html', query={'status_message': 'Community added'}) return HTTPFound(location=location)
def handle_submit(self, converted): request = self.request context = self.context workflow = self.workflow creator = authenticated_userid(request) f = converted['file'] if not f.file: raise ValidationError(file='Must upload a file') file = create_content(ICommunityFile, title=converted['title'], stream=f.file, mimetype=get_mimetype(f.mimetype, f.filename), filename=f.filename, creator=creator, ) self.check_upload_size(context, file, 'file') # For file objects, OSI's policy is to store the upload file's # filename as the objectid, instead of basing __name__ on the # title field). filename = basename_of_filepath(f.filename) file.filename = filename name = make_name(context, filename, raise_error=False) if not name: msg = 'The filename must not be empty' raise ValidationError(file=msg) # Is there a key in context with that filename? if name in context: msg = 'Filename %s already exists in this folder' % filename raise ValidationError(file=msg) context[name] = file if workflow is not None: workflow.initialize(file) if 'security_state' in converted: workflow.transition_to_state(file, request, converted['security_state']) # Tags, attachments, alerts set_tags(file, request, converted['tags']) if converted.get('sendalert'): alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(file, request) self.filestore.clear() location = model_url(file, request) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) context.title = converted['title'] context.description = converted['description'] # save the tags set_tags(context, request, converted['tags']) # modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = resource_url(context, request) msg = "?status_message=%s" % self.success_msg return HTTPFound(location='%s%s' % (location, msg))
def handle_submit(self, converted): # base class does some validation and simple massaging super(AddCalendarEventFormController, self).handle_submit(converted) # we create the event and handle other details context = self.context request = self.request creator = authenticated_userid(request) attendees = converted.get('attendees') or [] calendar_event = create_content(ICalendarEvent, converted['title'], converted['start_date'], converted['end_date'], creator, converted['text'], converted['location'], attendees, converted['contact_name'], converted['contact_email'], calendar_category=converted['category'], ) calendar_event.description = extract_description(converted['text']) calname = make_unique_name(context, calendar_event.title) context[calname] = calendar_event # set up workflow workflow = get_workflow(ICalendarEvent, 'security', context) if workflow is not None: workflow.initialize(calendar_event) if 'security_state' in converted: workflow.transition_to_state(calendar_event, request, converted['security_state']) # save tags and attachments set_tags(calendar_event, request, converted['tags']) upload_attachments(converted['attachments'], calendar_event['attachments'], creator, request) # send alert if converted.get('sendalert', False): alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(calendar_event, request) self.filestore.clear() return HTTPFound(location=model_url(calendar_event, request))
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow name = make_unique_name(context, converted['title']) creator = authenticated_userid(request) blogentry = create_content( IBlogEntry, converted['title'], converted['text'], extract_description(converted['text']), creator, ) context[name] = blogentry # Set up workflow if workflow is not None: workflow.initialize(blogentry) if 'security_state' in converted: workflow.transition_to_state(blogentry, request, converted['security_state']) # Tags, attachments, alerts, images set_tags(blogentry, request, converted['tags']) attachments_folder = blogentry['attachments'] upload_attachments(filter(lambda x: x is not None, converted['attachments']), attachments_folder, creator, request) relocate_temp_images(blogentry, request) if converted['sendalert']: alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(blogentry, request) location = resource_url(blogentry, request) self.filestore.clear() return HTTPFound(location=location)
def add_referencesection_view(context, request): tags_list=request.POST.getall('tags') form = AddReferenceSectionForm(tags_list = tags_list) if 'form.cancel' in request.POST: return HTTPFound(location=model_url(context, request)) if 'form.submitted' in request.POST: try: converted = form.validate(request.POST) # Be a chicken and sync the ordering every time before # adding something, just to make sure nothing gets lost. context.ordering.sync(context.keys()) # Create the reference section and store it creator = authenticated_userid(request) reference_section = create_content(IReferenceSection, converted['title'], converted['description'], creator, ) name = make_unique_name(context, converted['title']) context[name] = reference_section # Save the tags on it. set_tags(reference_section, request, converted['tags']) # Update the ordering context.ordering.add(name) location = model_url(reference_section, request) return HTTPFound(location=location) except Invalid, e: fielderrors = e.error_dict fill_values = form.convert(request.POST) tags_field = dict( records = [dict(tag=t) for t in request.POST.getall('tags')] )
def handle_submit(self, converted): # base class does some validation and simple massaging super(EditCalendarEventFormController, self).handle_submit(converted) context = self.context request = self.request # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if self.workflow is not None: if 'security_state' in converted: self.workflow.transition_to_state(context, request, converted['security_state']) context.title = converted['title'] context.startDate = converted['start_date'] context.endDate = converted['end_date'] context.text = converted['text'] context.location = converted['location'] context.attendees = converted.get('attendees') or [] context.contact_name = converted['contact_name'] context.contact_email = converted['contact_email'] context.calendar_category = converted['category'] context.description = extract_description(converted['text']) # Save the tags on it set_tags(context, request, converted['tags']) # Save new attachments userid = authenticated_userid(request) attachments_folder = context['attachments'] upload_attachments(converted['attachments'], attachments_folder, userid, request) # Modified context.modified_by = userid objectEventNotify(ObjectModifiedEvent(context)) self.filestore.clear() location = model_url(context, request) msg = "?status_message=Calendar%20Event%20edited" return HTTPFound(location='%s%s' % (location, msg))
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow name = make_unique_name(context, converted['title']) creator = authenticated_userid(request) blogentry = create_content( IBlogEntry, converted['title'], converted['text'], extract_description(converted['text']), creator, ) context[name] = blogentry # Set up workflow if workflow is not None: workflow.initialize(blogentry) if 'security_state' in converted: workflow.transition_to_state(blogentry, request, converted['security_state']) # Tags, attachments, alerts, images set_tags(blogentry, request, converted['tags']) attachments_folder = blogentry['attachments'] upload_attachments( filter(lambda x: x is not None, converted['attachments']), attachments_folder, creator, request) relocate_temp_images(blogentry, request) if converted['sendalert']: alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(blogentry, request) location = resource_url(blogentry, request) self.filestore.clear() return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow name = make_unique_name(context, converted['title']) creator = authenticated_userid(request) topic = create_content( IForumTopic, converted['title'], converted['text'], creator, ) topic.description = extract_description(converted['text']) context[name] = topic # Set up workflow if workflow is not None: workflow.initialize(topic) if 'security_state' in converted: workflow.transition_to_state(topic, request, converted['security_state']) # send the temp images to their final place relocate_temp_images(topic, request) # Tags and attachments set_tags(topic, request, converted['tags']) if support_attachments(topic): upload_attachments(converted['attachments'], topic['attachments'], creator, request) if 'sendalert' in converted and converted['sendalert']: alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(topic, request) location = resource_url(topic, request) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if workflow is not None: if 'security_state' in converted: workflow.transition_to_state(context, request, converted['security_state']) context.title = converted['title'] f = converted['file'] if f.filename: context.upload(f.file) context.mimetype = get_mimetype(f.mimetype, f.filename) context.filename = f.filename check_upload_size(context, context, 'file') else: meta = f.metadata if meta.get('remove'): raise ValidationError(file='Must supply a file') # Tags, attachments, alerts set_tags(context, request, converted['tags']) # modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) self.filestore.clear() location = model_url(context, request, query={'status_message':'File changed'}) return HTTPFound(location=location)
def handle_submit(self, converted): request = self.request context = self.context ordering = getattr(context, 'ordering', None) if ordering is not None: ordering.sync(context.keys()) creator = authenticated_userid(request) reference_object = create_content(self.content_iface, converted['title'], converted['description'], creator, ) name = make_unique_name(context, converted['title']) context[name] = reference_object if ordering is not None: ordering.add(name) # save the tags set_tags(reference_object, request, converted['tags']) location = resource_url(reference_object, request) return HTTPFound(location=location)
def handle_submit(self, converted): context = self.context request = self.request workflow = self.workflow # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if workflow is not None: if 'security_state' in converted: workflow.transition_to_state(context, request, converted['security_state']) context.title = converted['title'] # Tags, attachments, alerts set_tags(context, request, converted['tags']) # modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = model_url(context, request, query= {'status_message':'Folder changed'}) return HTTPFound(location=location)
def add_calendarevent_view(context, request): tags_list=request.POST.getall('tags') form = AddCalendarEventForm(tags_list=tags_list) workflow = get_workflow(ICalendarEvent, 'security', context) if workflow is None: security_states = [] else: security_states = get_security_states(workflow, None, request) if security_states: form.add_field('security_state', security_state_field) if 'form.cancel' in request.POST: return HTTPFound(location=model_url(context, request)) if 'form.submitted' in request.POST: try: if 'calendar_category' not in request.POST: # FormEncode doesn't let us mark certain keys as being missable # Either any key can be missing from form or none, so we just # manually massage calendar_category, which may be missing, # before performing validation. request.POST['calendar_category'] = None converted = form.validate(request.POST) creator = authenticated_userid(request) if converted['contact_email'] is None: # Couldn't convince the email validator to call # _to_python converted['contact_email'] = u'' calendarevent = create_content(ICalendarEvent, converted['title'], converted['startDate'], converted['endDate'], creator, converted['text'], converted['location'], converted['attendees'], converted['contact_name'], converted['contact_email'], calendar_category= converted['calendar_category'], ) calendarevent.description = extract_description(converted['text']) calname = make_unique_name(context, calendarevent.title) context[calname] = calendarevent # Set up workflow if workflow is not None: workflow.initialize(calendarevent) if 'security_state' in converted: workflow.transition_to_state(calendarevent, request, converted['security_state']) # Save the tags on it. set_tags(calendarevent, request, converted['tags']) store_attachments(calendarevent['attachments'], request.params, creator) if converted['sendalert']: alerts = queryUtility(IAlerts, default=Alerts()) alerts.emit(calendarevent, request) location = model_url(calendarevent, request) return HTTPFound(location=location) except Invalid, e: fielderrors = e.error_dict fill_values = form.convert(request.POST) tags_field = dict( records = [dict(tag=t) for t in request.POST.getall('tags')] )
def edit_calendarevent_view(context, request): tags_list = request.POST.getall('tags') form = EditCalendarEventForm(tags_list=tags_list) workflow = get_workflow(ICalendarEvent, 'security', context) if workflow is None: security_states = [] else: security_states = get_security_states(workflow, context, request) if security_states: form.add_field('security_state', security_state_field) if 'form.cancel' in request.POST: return HTTPFound(location=model_url(context, request)) if 'form.submitted' in request.POST: try: if 'calendar_category' not in request.POST: # FormEncode doesn't let us mark certain keys as being missable # Either any key can be missing from form or none, so we just # manually massage calendar_category, which may be missing, # before performing validation. request.POST['calendar_category'] = None converted = form.validate(request.POST) # *will be* modified event objectEventNotify(ObjectWillBeModifiedEvent(context)) if workflow is not None: if 'security_state' in converted: workflow.transition_to_state(context, request, converted['security_state']) context.title = converted['title'] context.startDate = converted['startDate'] context.endDate = converted['endDate'] context.text = converted['text'] context.location = converted['location'] context.attendees = converted['attendees'] context.contact_name = converted['contact_name'] context.contact_email = converted['contact_email'] context.calendar_category = converted['calendar_category'] context.description = extract_description(converted['text']) # Save the tags on it set_tags(context, request, converted['tags']) # Save new attachments creator = authenticated_userid(request) store_attachments(context['attachments'], request.params, creator) # Modified context.modified_by = authenticated_userid(request) objectEventNotify(ObjectModifiedEvent(context)) location = model_url(context, request) msg = "?status_message=Calendar%20Event%20edited" return HTTPFound(location=location+msg) except Invalid, e: fielderrors = e.error_dict fill_values = form.convert(request.POST)
def _callFUT(self, context, request, values): from karl.views.tags import set_tags return set_tags(context, request, values)