def create(request): username = None group = 'parent' if request.user.is_authenticated(): username = request.user.username if request.user.has_perm('updates.add_update'): group = 'teacher' if request.POST: form = UpdateForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/updates/all') else: form = UpdateForm() args = {} args.update(csrf(request)) args['form'] = form args['username'] = username args['group'] = group return render_to_response('create_update.html', args)
def update(request): user = User.objects.get(email=request.user.email) form = UpdateForm(request.POST or None, request.FILES or None, instance=user) if request.method == 'POST': if form.is_valid(): form.save() messages.success(request, "Успешно сохранено!", extra_tags='info') return redirect('user_update') else: messages.warning(request, "Некорректные данные", extra_tags='info') context = {'avatar_url': user.avatar, 'form': form, 'passform': ChangePasswordForm} return render(request, 'user_update.html', context)
def update_profile(request): form = UpdateForm(request.POST or None, instance=request.user) if form.is_valid(): form.save() messages.success(request, 'Success, your project was saved!') context = { "form": form, "page_name": "Update", "button_value": "Update", "links": ["logout"], } return render(request, 'auth_form.html', context)
def compose_update(request, project_id): project = Project.objects.get(id=project_id) if request.method == 'POST': form = UpdateForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/dashboard/{}'.format(project_id)) else: data = { 'project': project, 'posted': datetime.datetime.now() } form = UpdateForm(initial= data) return render(request, 'updates/compose-update.html', {'form': form, 'project': project})
def handle_updates (request, owner_name = None): """ Used by coords to send updates to Core. Cores will just see the updates they have received. Return a dict containing update variables. """ page_owner = get_page_owner (request, owner_name) update_dict = dict () if page_owner.groups.filter (name = 'Coords'): # For Coords update_form = UpdateForm () update_status = "Blank" update_dict['updates'] = Update.objects.filter (author = page_owner) update_dict['update_form'] = update_form update_dict['update_status'] = update_status else: if page_owner.groups.filter (name = 'Supercoords'): # For Supercoords update_form = UpdateForm () update_status = "Blank" update_dict['updates'] = get_all_updates (page_owner.get_profile ().department) update_dict['update_form'] = update_form update_dict['update_status'] = update_status else: # For Core, just display all updates for his dept update_dict['updates'] = get_all_updates ( page_owner.get_profile ().department) if request.method == 'POST': update_form = UpdateForm (request.POST) if update_form.is_valid(): new_update = update_form.save (commit = False) new_update.author = page_owner new_update.save () update_form = UpdateForm () update_status = "Success" update_dict['update_status'] = update_status return update_dict else: update_status = "Failed" update_dict['update_status'] = update_status update_dict['update_form'] = update_form return update_dict return update_dict
def handle_updates(request, owner_name=None): """ Used by coords to send updates to Core. Cores will just see the updates they have received. Return a dict containing update variables. """ page_owner = get_page_owner(request, owner_name) update_dict = dict() if page_owner.groups.filter(name='Coords'): # For Coords update_form = UpdateForm() update_status = "Blank" update_dict['updates'] = Update.objects.filter(author=page_owner) update_dict['update_form'] = update_form update_dict['update_status'] = update_status else: # For Core, just display all updates for his dept update_dict['updates'] = get_all_updates( page_owner.get_profile().get_dept()) if request.method == 'POST': update_form = UpdateForm(request.POST) if update_form.is_valid(): new_update = update_form.save(commit=False) new_update.author = page_owner new_update.save() update_form = UpdateForm() update_status = "Success" update_dict['update_status'] = update_status return update_dict else: update_status = "Failed" update_dict['update_status'] = update_status update_dict['update_form'] = update_form return update_dict return update_dict
def post(self, request, *args, **kwargs): group_membership = request.user.groups.values_list('name', flat=True) # if this user is not in the Enablement group, throw a permission denied error if 'Enablement' not in group_membership: raise PermissionDenied self.slug = self.kwargs['slug'] enablement_request = EnablementRequest.objects.get(slug=self.slug) pre_update_state = enablement_request.current_state old_config_details_id = int(enablement_request.config_details_id) update_form = UpdateForm(request.POST, instance=enablement_request) config_details_form = ConfigDetailsForm(request.POST) comment_form = CommentForm(request.POST) if update_form.is_valid() and config_details_form.is_valid( ) and comment_form.is_valid(): # don't commit to database until we check for other conditions updated_enablement_request = update_form.save(commit=False) # see if the config_details_id changed upon update, and if so, # + does it match an existing request, and if so, # + associate the two via the "parent_request" attribute config_details = config_details_form.save() config_details_id = int(config_details.id) if old_config_details_id != config_details_id: first_parent_request = EnablementRequest.objects.filter( config_details_id=config_details_id, ).exclude( id=enablement_request.id).first() if first_parent_request: parent_request = first_parent_request.identifier updated_enablement_request.parent_request = parent_request post_update_state = updated_enablement_request.current_state if pre_update_state != post_update_state: comment_form.save(enablement_request=enablement_request, commenter=request.user, pre_comment_state=pre_update_state, post_comment_state=post_update_state) identifier = enablement_request.identifier url = 'http://newt.netapp.com:4173/view/%s' % identifier email_subject = 'Enablement Request %s - current state has changed to %s' % ( identifier, post_update_state) email_message = 'The Enablement Request (%s) state has been changed to "%s".' % ( identifier, post_update_state) email_message += 'You can view the Enablement Request at <a href="%s">%s</a>' % ( url, url) enablement_group_emails = Group.objects.get( name='Enablement').user_set.values_list('email', flat=True) sales_initiator_email = enablement_request.sales_initiator.email email_addresses = [] if post_update_state == 'Completed': updated_enablement_request.completion_timestamp = datetime.now( ) email_addresses = [sales_initiator_email] email_addresses.extend(enablement_group_emails) elif post_update_state == 'Enablement Review': email_addresses.extend(enablement_group_emails) elif post_update_state == 'Sales Review': email_addresses = [sales_initiator_email] elif post_update_state == 'Engineering Review': engineering_group_emails = Group.objects.get( name='Engineering').user_set.values_list('email', flat=True) email_addresses.extend(engineering_group_emails) elif post_update_state == 'Support Review': support_group_emails = Group.objects.get( name='Support').user_set.values_list('email', flat=True) email_addresses.extend(support_group_emails) else: email_addresses = [sales_initiator_email] send_mail(email_subject, email_message, 'NEWT Admin', email_addresses, html_message=email_message) else: comment_form.save(enablement_request=enablement_request, commenter=request.user) updated_enablement_request.save() return HttpResponseRedirect( reverse('view', kwargs={'slug': self.slug})) context = { 'enablement_request': enablement_request, 'update_form': update_form, 'config_details_form': config_details_form, 'comment_form': comment_form, 'group_membership': group_membership, 'navbar_options_template': 'enablement_navbar_options.html', } return render(request, self.template_name, context)