def manage_project(request, project): result = plugins.first('has_perm', request.user, 'edit_project', project) if result is False and not request.user.has_perm('sentry.can_change_project'): return HttpResponseRedirect(reverse('sentry')) team_list = get_team_list(request.user) form = EditProjectForm(request, team_list, request.POST or None, instance=project) if form.is_valid(): project = form.save() return HttpResponseRedirect(request.path + '?success=1') member_list = [(tm, tm.user) for tm in project.team.member_set.select_related('user')] try: key = ProjectKey.objects.get(user=request.user, project=project) except ProjectKey.DoesNotExist: key = None # superuser context = csrf(request) context.update({ 'can_remove_project': can_remove_project(request.user, project), 'page': 'details', 'key': key, 'form': form, 'project': project, 'member_list': member_list, 'TEAM_LIST': team_list.values(), }) return render_to_response('sentry/projects/manage.html', context, request)
def new_project(request): from django.contrib.auth.models import User if not can_create_projects(request.user): return HttpResponseRedirect(reverse('sentry')) allow_create_teams = can_create_teams(request.user) team_list = get_team_list(request.user) if request.user.has_perm('sentry.can_add_project') and User.objects.all()[0:2] == 2: project_form_cls = NewProjectAdminForm project_initial = { 'owner': request.user.username, } else: project_form_cls = NewProjectForm project_initial = {} if len(team_list) > 0: select_team_form = SelectTeamForm(team_list, request.POST or None, prefix='st') elif not allow_create_teams: return render_to_response('sentry/projects/cannot_create_teams.html', {}, request) else: select_team_form = None if allow_create_teams: new_team_form = NewTeamForm(request.POST or None, prefix='nt') else: new_team_form = None project_form = project_form_cls(request.POST or None, initial=project_initial, prefix='prj') is_new_team = new_team_form and new_team_form.is_valid() if is_new_team or not select_team_form: team_form = new_team_form else: team_form = select_team_form if project_form.is_valid() and team_form.is_valid(): project = project_form.save(commit=False) if not project.owner: project.owner = request.user if is_new_team: team = new_team_form.save(commit=False) team.owner = project.owner team.save() else: team = select_team_form.cleaned_data['team'] project.team = team project.save() return HttpResponseRedirect(reverse('sentry-project-client-help', args=[project.slug])) return render_to_response('sentry/projects/new.html', { 'project_form': project_form, 'select_team_form': select_team_form, 'new_team_form': new_team_form, }, request)
def manage_project(request, project): result = plugins.first('has_perm', request.user, 'edit_project', project) if result is False and not request.user.has_perm( 'sentry.can_change_project'): return HttpResponseRedirect(reverse('sentry')) team_list = get_team_list(request.user) if request.user.has_perm('sentry.can_change_project'): form_cls = EditProjectAdminForm else: form_cls = EditProjectForm form = form_cls(request, team_list, request.POST or None, instance=project, initial={ 'origins': '\n'.join(get_option('sentry:origins', project) or []), 'owner': project.owner, }) if form.is_valid(): project = form.save() set_option('sentry:origins', form.cleaned_data.get('origins') or [], project) return HttpResponseRedirect(request.path + '?success=1') if not project.team: member_list = [] else: member_list = [(tm, tm.user) for tm in project.team.member_set.select_related('user') ] context = csrf(request) context.update({ 'can_remove_project': can_remove_project(request.user, project), 'page': 'details', 'form': form, 'project': project, 'member_list': member_list, 'TEAM_LIST': team_list.values(), }) return render_to_response('sentry/projects/manage.html', context, request)
def _wrapped(request, team_slug, *args, **kwargs): if request.user.is_superuser: try: team = Team.objects.get_from_cache(slug=team_slug) except Team.DoesNotExist: return HttpResponseRedirect(reverse('sentry')) return func(request, team, *args, **kwargs) team_list = get_team_list(request.user, group_or_func) try: team = team_list[team_slug] except KeyError: return HttpResponseRedirect(reverse('sentry')) return func(request, team, *args, **kwargs)
def _wrapped(request, team_slug, *args, **kwargs): if request.user.is_superuser: try: team = Team.objects.get_from_cache(slug=team_slug) except Team.DoesNotExist: return HttpResponseRedirect(reverse('sentry')) return func(request, team, *args, **kwargs) team_list = get_team_list(request.user, group_or_func) try: team = team_list[team_slug] except (KeyError, ValueError): return HttpResponseRedirect(reverse('sentry')) return func(request, team, *args, **kwargs)
def manage_project(request, project): result = plugins.first('has_perm', request.user, 'edit_project', project) if result is False and not request.user.has_perm('sentry.can_change_project'): return HttpResponseRedirect(reverse('sentry')) team_list = get_team_list(request.user) if request.user.has_perm('sentry.can_change_project'): form_cls = EditProjectAdminForm else: form_cls = EditProjectForm form = form_cls(request, team_list, request.POST or None, instance=project, initial={ 'origins': '\n'.join(get_option('sentry:origins', project) or []), 'owner': project.owner, }) if form.is_valid(): project = form.save() set_option('sentry:origins', form.cleaned_data.get('origins') or [], project) return HttpResponseRedirect(request.path + '?success=1') if not project.team: member_list = [] else: member_list = [(tm, tm.user) for tm in project.team.member_set.select_related('user')] context = csrf(request) context.update({ 'can_remove_project': can_remove_project(request.user, project), 'page': 'details', 'form': form, 'project': project, 'member_list': member_list, 'TEAM_LIST': team_list.values(), }) return render_to_response('sentry/projects/manage.html', context, request)
def manage_project(request, project): result = plugins.first('has_perm', request.user, 'edit_project', project) if result is False and not request.user.has_perm( 'sentry.can_change_project'): return HttpResponseRedirect(reverse('sentry')) team_list = get_team_list(request.user) form = EditProjectForm(request, team_list, request.POST or None, instance=project) if form.is_valid(): project = form.save() return HttpResponseRedirect(request.path + '?success=1') member_list = [(tm, tm.user) for tm in project.team.member_set.select_related('user')] context = csrf(request) context.update({ 'can_remove_project': can_remove_project(request.user, project), 'page': 'details', 'form': form, 'project': project, 'member_list': member_list, 'TEAM_LIST': team_list.values(), }) return render_to_response('sentry/projects/manage.html', context, request)
def new_project(request): from django.contrib.auth.models import User if not can_create_projects(request.user): return HttpResponseRedirect(reverse('sentry')) allow_create_teams = can_create_teams(request.user) team_list = get_team_list(request.user) if request.user.has_perm( 'sentry.can_add_project') and User.objects.all()[0:2] == 2: project_form_cls = NewProjectAdminForm project_initial = { 'owner': request.user.username, } else: project_form_cls = NewProjectForm project_initial = {} if len(team_list) > 0: select_team_form = SelectTeamForm(team_list, request.POST or None, prefix='st') elif not allow_create_teams: return render_to_response('sentry/projects/cannot_create_teams.html', {}, request) else: select_team_form = None if allow_create_teams: new_team_form = NewTeamForm(request.POST or None, prefix='nt') else: new_team_form = None project_form = project_form_cls(request.POST or None, initial=project_initial, prefix='prj') is_new_team = new_team_form and new_team_form.is_valid() if is_new_team: team_form = new_team_form else: team_form = select_team_form if project_form.is_valid() and team_form.is_valid(): project = project_form.save(commit=False) if not project.owner: project.owner = request.user if is_new_team: team = new_team_form.save(commit=False) team.owner = project.owner team.save() else: team = select_team_form.cleaned_data['team'] project.team = team project.save() return HttpResponseRedirect( reverse('sentry-project-client-help', args=[project.slug])) return render_to_response( 'sentry/projects/new.html', { 'project_form': project_form, 'select_team_form': select_team_form, 'new_team_form': new_team_form, }, request)