def edit_issue(request, issue_id): current_issue = get_object_or_404(Issue, pk=issue_id) contact_form = ContactForm() form = IssueForm(instance=current_issue) if request.method == 'POST' and ('new_issue' in request.POST or 'continue_editing' in request.POST): current_assignee = current_issue.assignee form = IssueForm(request.POST or None, instance=current_issue) if form.is_valid(): form.save() if current_assignee != current_issue.assignee: issue_assign.delay(current_issue) if 'continue_editing' in request.POST: return HttpResponseRedirect(reverse('helpdesk:edit_issue', args=[current_issue.id])) return HttpResponseRedirect(reverse('helpdesk:issue', args=[current_issue.id])) elif request.method == 'POST' and 'new_contact' in request.POST: contact_form = ContactForm(request.POST) if contact_form.is_valid(): new_contact = contact_form.save(commit=False) new_contact.region = current_issue.region new_contact.save() contact_form = ContactForm() current_issue.contact = new_contact current_issue.save() form = IssueForm(instance=current_issue) return render(request, 'helpdesk/new_issue.html', {'form': form, 'current_issue': current_issue, 'contact_form': contact_form})
def index(request): if request.POST: issue = Issue() form = IssueForm(request.POST, instance=issue) if (form.is_valid()): #send issue to GitHub title = form.cleaned_data.get('title') body = form.cleaned_data.get('body') url = 'https://api.github.com/repos/mcdermott-scholars/mcdermott/issues' auth = (settings.GITHUB_USERNAME, settings.GITHUB_PASSWORD) data = {'title': title, 'body': body} r = requests.post(url, auth=auth, data=json.dumps(data)) messages.add_message( request, messages.SUCCESS if r.status_code==201 else messages.ERROR, 'Issue submitted' if r.status_code==201 else 'Error submitting issue', ) return redirect(reverse('issues:index')) else: form = IssueForm(request.POST, instance=issue) else: form = IssueForm() context = { 'form': form, } return render(request, 'issues/index.html', context)
def issues_edit(request, instance_pk=None): if instance_pk is not None: instance = get_object_or_404(Issue, pk=instance_pk) else: instance = None if request.method == 'POST': form = IssueForm(request.POST, instance=instance) if form.is_valid(): issue = form.save(commit=False) issue.user = request.user issue.save() # form.save_m2m() # return a message messages.success(request, 'Issue Created') # return a redirect return HttpResponseRedirect(reverse('journals:journal_today')) if request.method == 'GET': form = IssueForm(instance=instance) return render_to_response('journals/issues_edit.html', RequestContext(request,{ 'form' : form, 'instance' : instance, }))
def index(request): if request.POST: issue = Issue() form = IssueForm(request.POST, instance=issue) if (form.is_valid()): #send issue to GitHub title = form.cleaned_data.get('title') body = form.cleaned_data.get('body') url = 'https://api.github.com/repos/mcdermott-scholars/mcdermott/issues' auth = (settings.GITHUB_USERNAME, settings.GITHUB_PASSWORD) data = {'title': title, 'body': body} r = requests.post(url, auth=auth, data=json.dumps(data)) messages.add_message( request, messages.SUCCESS if r.status_code == 201 else messages.ERROR, 'Issue submitted' if r.status_code == 201 else 'Error submitting issue', ) return redirect(reverse('issues:index')) else: form = IssueForm(request.POST, instance=issue) else: form = IssueForm() context = { 'form': form, } return render(request, 'issues/index.html', context)
def manageissue(request,issueid=None): if request.method == "POST": form = IssueForm(request.POST) if form.is_valid(): if issueid is None: issue = form.save(commit=False) issue.owner = request.user issue.save() else: if Issue.objects.filter(id=int(issueid), owner = request.user).exists(): issue = form.save(commit=False) issue.owner = request.user issue.id = issueid issue.save(force_update=True) IssueItem.objects.filter(issueid=issue.id).delete() else: return HttpResponseForbidden("You do not have permission to edit this Issue.") for i, val in enumerate(request.REQUEST.getlist("item-title")) : if IssueItem.objects.filter(issueid=issue.id, url=request.REQUEST.getlist("item-url")[i]).count() > 0: item = IssueItem.objects.filter(issueid=issue.id, url=request.REQUEST.getlist("item-url")[i])[0] else: item = IssueItem.objects.create(issueid=issue.id) item.url = request.REQUEST.getlist("item-url")[i] item.title = request.REQUEST.getlist("item-title")[i] item.description = request.REQUEST.getlist("item-description")[i] item.img = request.REQUEST.getlist("item-img")[i] item.ordernumber = i; item.save() return HttpResponseRedirect('/issuelist/') elif request.method == 'DELETE': issue = get_object_or_404( Issue, id=int(issueid) ) if issue.owner != request.user: return HttpResponseForbidden("You do not have permission to edit this Issue.") else: issue.delete() return HttpResponseRedirect('/issuelist/') else: if issueid is None: form = IssueForm() else: issue = Issue.objects.get(id=issueid, owner=request.user) form = IssueForm(instance=issue) return render_to_response('manageissue.html', {'form': form, 'issueid': issueid}, context_instance=RequestContext(request))
def create_issue(request, employee, tab): issue_form = IssueForm if request.method == 'POST': issue_form = IssueForm(employee, False, data=request.POST) if issue_form.is_valid(): issue_form.save() return redirect('/management/manage_issues') return render(request, 'management/create_issue.html', { 'issue_form': issue_form, 'models': IssueForm, 'tab': tab, })
def add_edit_issue(request, *args, **kwargs): """Adds/Edits issues""" project_name = kwargs['project_name'] project = get_object_or_404(CollabProject, slug=project_name) project_id = project.id issueset_id = kwargs['issueset_id'] issueset = get_object_or_404(IssueSet, id__exact=issueset_id) if not is_allowed(request, project_id, Issue._meta.verbose_name, 'Editable'): return handle_privilege(request, "You do not have privileges to edit issues!", issueset.get_absolute_url()) if 'issue_id' in kwargs: issue_id = kwargs['issue_id'] issue = get_object_or_404(Issue, id=issue_id) # Check if the issue exists in that project AND issue set! if issue.issueset.project.id != project.id or issue.issueset.id != issueset.id: return handle_privilege(request, "The issue does not match the project or issue list!", project.get_absolute_url()) edit = True instance=issue else: edit = False instance=None if request.method == 'POST': form = IssueForm(request.POST, instance=instance, issueset=issueset) if form.is_valid(): if not edit: issue = Issue() message = "The issue was added." else: message = "The issue was modified." issue = form.save(commit=False) if not edit: issue.reporter = request.user # issue.issueset = issueset issue.save() request.user.message_set.create(message=message) return HttpResponseRedirect(issue.get_absolute_url()) else: form = IssueForm(initial={'issueset': issueset.pk}, instance=instance, issueset=issueset) return render_to_response('issues/add_edit_issue.html', {'form': form, 'edit': edit, 'project': project, 'issueset': issueset, 'issue': instance}, context_instance=RequestContext(request))
def edit_issue(request, employee, tab, issue_id): issue = Issue.objects.get(id=issue_id) if issue.current == None: issue_form = IssueForm(employee=employee, edit=True, instance=issue, initial={'assigned_to': None}) else: issue_form = IssueForm(employee=employee, edit=True, instance=issue, initial={'assigned_to': issue.current.worker}) #if we have already posted if request.method == 'POST': issue_form = IssueForm(employee, True, request.POST, instance=issue) if issue_form.is_valid(): issue_form.save(); return redirect('/management/manage_issues') return render(request, 'management/edit_issue.html', { 'issue': issue, 'issue_id': issue_id, 'issue_form': issue_form, 'tab': tab })
def edit_issue(request, issue_id): if request.method == 'POST': form = IssueForm(request.POST) if form.is_valid(): cd = form.cleaned_data issue = Issue(pk=issue_id) issue.save_edited(cd, request.user) return HttpResponseRedirect("/" + str(issue.id)) else: issue = Issue.objects.filter(id=issue_id, author=request.user).exclude(status='deleted')[0] form = IssueForm( initial={'label': issue.label, 'text': issue.text, 'expiration': issue.expiration} ) form.fields['receiver'].queryset = User.objects.exclude(id=request.user.id) if issue.receiver: is_common = False receivers = issue.receiver.all() form.fields['receiver'].initial = receivers else: is_common = True comments = comments_gettext_loop(Comment.objects.filter(issue=issue).order_by('date')) if issue.expiration: # Probably, we can do it in template expiration_time = str(issue.expiration.time().hour) + ":" + \ str(issue.expiration.time().minute) expiration_date = issue.expiration.date().isoformat() else: expiration_date = expiration_time = None counter = count_issues(request) return render_to_response('edit_issue.html', {'form': form, 'receivers': receivers, 'user': request.user, 'is_common': is_common, 'expiration_date': expiration_date, 'expiration_time': expiration_time, 'comments': comments, 'counter': counter, 'issue_id': issue.id, 'tomorrow': get_tomorrow()})
def new_issue(request): current_user = request.user context = {} contact_form = ContactForm() if request.method == 'POST' and ('new_issue' in request.POST or 'continue_editing' in request.POST): form = IssueForm(request.POST) if form.is_valid(): if 'continue_editing' in request.POST: return save_issue(form, current_user, continue_editing=True) return save_issue(form, current_user) elif request.method == 'POST' and 'new_contact' in request.POST: contact_form = ContactForm(request.POST) if contact_form.is_valid(): curr_region = get_object_or_404(Region, pk=contact_form['region'].value()) contact = contact_form.save(commit=False) contact.region = curr_region contact.save() contact_form = ContactForm() submitted_data = request.POST.copy() submitted_data['contact'] = contact.id form = IssueForm(submitted_data) context['created_contact'] = contact else: form = IssueForm(request.POST) else: initial_data = {'opened': date.today(), 'control': date.today() + timedelta(days=7), 'assignee': current_user.id, 'project': 1, 'service_type': 4, 'status': 1, 'priority': 3, 'formed': False} form = IssueForm(initial=initial_data) context['form'] = form context['contact_form'] = contact_form return render(request, 'helpdesk/new_issue.html', context)
def index(request, fltr='all', add_task=None): counter = count_issues(request) # filter issues according to status issues = filter_issues(fltr, request.user) if request.method == 'POST': form = IssueForm(request.POST) if form.is_valid(): cd = form.cleaned_data issue = Issue() issue.add(cd, request.user) return HttpResponseRedirect("/") else: form = IssueForm() form.fields['receiver'].queryset = User.objects.exclude( id=request.user.id) return render_to_response('index.html', {'issues': issues, 'form': form, 'user': request.user, 'tomorrow': get_tomorrow(), 'counter': counter, 'page_type': 'index', 'add_task': add_task} )