def default_steps(request, project_id): """Assign default project steps to a project. :params project_id: Id of the project to be edited """ project = get_object_or_404(models.Project, pk=project_id) form = ProjectDefaultStepForm() form.set_step_choices() if request.method == 'POST': if '_cancel' in request.POST: return HttpResponseRedirect(reverse('admin:inhouse_project_change', args=(project.id,))) #if form.is_valid(): ids = request.POST.getlist('steps') if len(ids) == 0: messages.warning(request, _(u'No steps have been selected.')) else: tpls = models.ProjectStepTemplate.objects.filter(id__in=ids) for tpl in tpls: query = models.ProjectStep.objects.filter(project=project, name=tpl.name) if query.count() != 0: continue new = models.ProjectStep.copy(tpl) new.project = project new.next_position() new.save() messages.success(request, _(u'The project steps have been' u' successfully added.')) return HttpResponseRedirect(reverse( 'admin:inhouse_project_changelist')) return render(request, 'admin/inhouse/project/default_steps.html', { 'form': form, 'project': project})
def profile_details(request): try: profile = models.UserProfile.new(user=request.user) except InhouseModelError: profile = request.user.get_profile() address = profile.address commdata = profile.communication address_form = forms.UserProfileAddressForm(instance=address) commdata_form = forms.Communication(instance=commdata) user_form = forms.UserProfileForm(instance=profile) return render(request, 'inhouse/profile.html', { 'profile_form_address': address_form, 'profile_form_commdata': commdata_form, 'profile_form_user': user_form, })
def profile_details(request): try: profile = models.UserProfile.new(user=request.user) except InhouseModelError: profile = request.user.get_profile() address = profile.address commdata = profile.communication address_form = forms.UserProfileAddressForm(instance=address) commdata_form = forms.Communication(instance=commdata) user_form = forms.UserProfileForm(instance=profile) return render( request, 'inhouse/profile.html', { 'profile_form_address': address_form, 'profile_form_commdata': commdata_form, 'profile_form_user': user_form, })
def default_steps(request, project_id): """Assign default project steps to a project. :params project_id: Id of the project to be edited """ project = get_object_or_404(models.Project, pk=project_id) form = ProjectDefaultStepForm() form.set_step_choices() if request.method == 'POST': if '_cancel' in request.POST: return HttpResponseRedirect( reverse('admin:inhouse_project_change', args=(project.id, ))) #if form.is_valid(): ids = request.POST.getlist('steps') if len(ids) == 0: messages.warning(request, _(u'No steps have been selected.')) else: tpls = models.ProjectStepTemplate.objects.filter(id__in=ids) for tpl in tpls: query = models.ProjectStep.objects.filter(project=project, name=tpl.name) if query.count() != 0: continue new = models.ProjectStep.copy(tpl) new.project = project new.next_position() new.save() messages.success( request, _(u'The project steps have been' u' successfully added.')) return HttpResponseRedirect( reverse('admin:inhouse_project_changelist')) return render(request, 'admin/inhouse/project/default_steps.html', { 'form': form, 'project': project })
def index(request): """The user's dashboard.""" return render(request, 'inhouse/dashboard.html')
def copy_project(request, project_id): """Creates a copy of a project and optionally of it's child objects. :param project_id: The id of the project to be copied """ project = get_object_or_404(models.Project, pk=project_id) form = ProjectCopyForm(initial={'name': u'%s \'%s\'' % (_(u'Copy of'), project.name)}) steps = project.projectstep_set.all() members = project.projectuser_set.all() trackers = project.projecttracker_set.all() if request.method == 'POST': if '_cancel' in request.POST: return HttpResponseRedirect(reverse('admin:inhouse_project_change', args=(project.id,))) with_steps = bool(request.POST.get('steps')) with_members = bool(request.POST.get('members')) with_trackers = bool(request.POST.get('tracker')) name = request.POST.get('name') p = models.Project.copy(project) p.name = name p.save() p.master = p p.save() if with_steps: # Copy the project steps for step in steps: new = models.ProjectStep.copy(step) new.project = p new.next_position() new.save() if with_members: # Copy all project members for project_user in members: new = models.ProjectUser() new.project = p new.user = project_user.user if project_user.default_step: # Retrieve the user's default step, if possible query = models.ProjectStep.objects.filter( project=p, name=project_user.default_step.name) if query.count() == 1: new.default_step = query[0] else: new.default_step = None new.save() if with_trackers: # Copy assigned issue trackers for project_tracker in trackers: new = models.ProjectTracker() new.project = p new.tracker = project_tracker.tracker new.save() messages.success(request, _(u'The project has been' u' successfully copied.')) return HttpResponseRedirect(reverse( 'admin:inhouse_project_changelist')) return render(request, 'admin/inhouse/project/copy_project.html', { 'form': form, 'project': project, 'steps': steps, 'members': members, 'trackers': trackers},)
def copy_project(request, project_id): """Creates a copy of a project and optionally of it's child objects. :param project_id: The id of the project to be copied """ project = get_object_or_404(models.Project, pk=project_id) form = ProjectCopyForm( initial={'name': u'%s \'%s\'' % (_(u'Copy of'), project.name)}) steps = project.projectstep_set.all() members = project.projectuser_set.all() trackers = project.projecttracker_set.all() if request.method == 'POST': if '_cancel' in request.POST: return HttpResponseRedirect( reverse('admin:inhouse_project_change', args=(project.id, ))) with_steps = bool(request.POST.get('steps')) with_members = bool(request.POST.get('members')) with_trackers = bool(request.POST.get('tracker')) name = request.POST.get('name') p = models.Project.copy(project) p.name = name p.save() p.master = p p.save() if with_steps: # Copy the project steps for step in steps: new = models.ProjectStep.copy(step) new.project = p new.next_position() new.save() if with_members: # Copy all project members for project_user in members: new = models.ProjectUser() new.project = p new.user = project_user.user if project_user.default_step: # Retrieve the user's default step, if possible query = models.ProjectStep.objects.filter( project=p, name=project_user.default_step.name) if query.count() == 1: new.default_step = query[0] else: new.default_step = None new.save() if with_trackers: # Copy assigned issue trackers for project_tracker in trackers: new = models.ProjectTracker() new.project = p new.tracker = project_tracker.tracker new.save() messages.success(request, _(u'The project has been' u' successfully copied.')) return HttpResponseRedirect( reverse('admin:inhouse_project_changelist')) return render( request, 'admin/inhouse/project/copy_project.html', { 'form': form, 'project': project, 'steps': steps, 'members': members, 'trackers': trackers }, )