예제 #1
0
def base_context(request, organization, update_form=None):
    return {
        "org":
        organization,
        "teams":
        Team.get_by_org(organization.name),
        "domains":
        sorted(Domain.get_by_organization(organization.name),
               key=lambda x: x.name),
        "members":
        organization.get_members(),
        "admin":
        request.couch_user.is_org_admin(organization.name)
        or request.couch_user.is_superuser,
        "update_form_empty":
        not update_form,
        "update_form":
        update_form or UpdateOrgInfo(
            initial={
                'org_title': organization.title,
                'email': organization.email,
                'url': organization.url,
                'location': organization.location
            })
    }
예제 #2
0
파일: views.py 프로젝트: mchampanis/core-hq
def orgs_team_members(request, org, team_id, template="orgs/orgs_team_members.html"):
    #organization and teams
    organization = Organization.get_by_name(org)
    teams = Team.get_by_org(org)
    current_domains = Domain.get_by_organization(org)

    #check that the team exists
    team = Team.get(team_id)
    if team is None:
        raise Http404("Group %s does not exist" % team_id)

    #inspect the members of the team
    member_ids = team.get_member_ids()
    members = WebUser.view("_all_docs", keys=member_ids, include_docs=True).all()
    members.sort(key=lambda user: user.username)

    #inspect the domains of the team
    domain_names = team.get_domains()
    domains = list()
    for name in domain_names:
        domains.append([Domain.get_by_name(name), team.role_label(domain=name)])

    all_org_domains = Domain.get_by_organization(org)
    non_domains = [domain for domain in all_org_domains if domain.name not in domain_names]

    all_org_member_ids = organization.members
    all_org_members = WebUser.view("_all_docs", keys=all_org_member_ids, include_docs=True).all()
    non_members = [member for member in all_org_members if member.user_id not in member_ids]

    vals = dict(org=organization, team=team, teams=teams, members=members, nonmembers=non_members, domains=current_domains, team_domains=domains, team_nondomains=non_domains)
    return render_to_response(request, template, vals)
예제 #3
0
 def clean_team(self):
     data = self.cleaned_data["team"].strip()
     org_teams = Team.get_by_org(self.org_name)
     for t in org_teams:
         if t.name == data:
             raise forms.ValidationError("A team with that name already exists.")
     return data
예제 #4
0
 def clean_team(self):
     data = self.cleaned_data['team'].strip()
     org_teams = Team.get_by_org(self.org_name)
     for t in org_teams:
         if t.name == data:
             raise forms.ValidationError(
                 'A team with that name already exists.')
     return data
예제 #5
0
def base_context(request, organization, update_form=None):
    return {
        "org": organization,
        "teams": Team.get_by_org(organization.name),
        "domains": sorted(Domain.get_by_organization(organization.name), key=lambda x: x.name),
        "members": organization.get_members(),
        "admin": request.couch_user.is_org_admin(organization.name) or request.couch_user.is_superuser,
        "update_form_empty": not update_form,
        "update_form": update_form or UpdateOrgInfo(initial={'org_title': organization.title, 'email': organization.email,
                                                            'url': organization.url, 'location': organization.location})
    }
예제 #6
0
def orgs_remove_project(request, org):
    domain = request.POST.get("project_name", None)
    if not domain:
        messages.error(request, "You must specify a project name")
    else:
        domain = Domain.get_by_name(domain)
        domain.organization = None
        domain.save()
        for team in Team.get_by_org(org):
            team.delete_domain_membership(domain.name)
            team.save()
        messages.success(request, render_to_string('orgs/partials/undo_remove_project.html',
                                                   {"org": org, "dom": domain}), extra_tags="html")
    return HttpResponseRedirect(reverse(request.POST.get('redirect_url', 'orgs_landing'), args=(org,)))
예제 #7
0
def orgs_add_team(request, org):
    team_name = request.POST.get("team", None)
    if not team_name:
        messages.error(request, 'You must specify a team name')
        return HttpResponseRedirect(reverse('orgs_teams', args=[org]))

    org_teams = Team.get_by_org(org)
    for t in org_teams:
        if t.name == team_name:
            messages.error(request, 'A team with that name already exists.')
            return HttpResponseRedirect(reverse('orgs_teams', args=[org]))

    team = Team(name=team_name, organization=org)
    team.save()
    messages.success(request, "Team Added!")
    return HttpResponseRedirect(reverse('orgs_teams', args=[org]))
예제 #8
0
def orgs_add_team(request, org):
    team_name = request.POST.get("team", None)
    if not team_name:
        messages.error(request, 'You must specify a team name')
        return HttpResponseRedirect(reverse('orgs_teams', args=[org]))

    org_teams = Team.get_by_org(org)
    for t in org_teams:
        if t.name == team_name:
            messages.error(request, 'A team with that name already exists.')
            return HttpResponseRedirect(reverse('orgs_teams', args=[org]))

    team = Team(name=team_name, organization=org)
    team.save()
    messages.success(request, "Team Added!")
    return HttpResponseRedirect(reverse('orgs_teams', args=[org]))
예제 #9
0
def base_context(request, organization, update_form=None):
    return {
        "org": organization,
        "teams": Team.get_by_org(organization.name),
        "domains": Domain.get_by_organization(organization.name).all(),
        "members": organization.get_members(),
        "admin": request.couch_user.is_org_admin(organization.name) or request.couch_user.is_superuser,
        "update_form_empty": not update_form,
        "update_form": update_form
        or UpdateOrgInfo(
            initial={
                "org_title": organization.title,
                "email": organization.email,
                "url": organization.url,
                "location": organization.location,
            }
        ),
    }
예제 #10
0
def orgs_remove_project(request, org):
    domain = request.POST.get("project_name", None)
    if not domain:
        messages.error(request, "You must specify a project name")
    else:
        domain = Domain.get_by_name(domain)
        domain.organization = None
        domain.save()
        for team in Team.get_by_org(org):
            team.delete_domain_membership(domain.name)
            team.save()
        messages.success(request,
                         render_to_string(
                             'orgs/partials/undo_remove_project.html', {
                                 "org": org,
                                 "dom": domain
                             }),
                         extra_tags="html")
    return HttpResponseRedirect(
        reverse(request.POST.get('redirect_url', 'orgs_landing'),
                args=(org, )))
예제 #11
0
파일: views.py 프로젝트: mchampanis/core-hq
def orgs_landing(request, org, template="orgs/orgs_landing.html", form=None, add_form=None, add_member_form=None, add_team_form=None, update_form=None):
    organization = Organization.get_by_name(org)

    reg_form_empty = not form
    add_form_empty = not add_form
    add_member_form_empty = not add_member_form
    add_team_form_empty = not add_team_form
    update_form_empty = not update_form

    reg_form = form or DomainRegistrationForm(initial={'org': organization.name})
    add_form = add_form or AddProjectForm(org)
    add_member_form = add_member_form or AddMemberForm(org)
    add_team_form = add_team_form or AddTeamForm(org)

    update_form = update_form or UpdateOrgInfo(initial={'org_title': organization.title, 'email': organization.email, 'url': organization.url, 'location': organization.location})

    current_teams = Team.get_by_org(org)
    current_domains = Domain.get_by_organization(org)
    members = [WebUser.get_by_user_id(user_id) for user_id in organization.members]
    vals = dict( org=organization, domains=current_domains, reg_form=reg_form,
                 add_form=add_form, reg_form_empty=reg_form_empty, add_form_empty=add_form_empty, update_form=update_form, update_form_empty=update_form_empty, add_member_form=add_member_form, add_member_form_empty=add_member_form_empty, add_team_form=add_team_form, add_team_form_empty=add_team_form_empty, teams=current_teams, members=members)
    return render_to_response(request, template, vals)
예제 #12
0
파일: views.py 프로젝트: mchampanis/core-hq
def orgs_teams(request, org, template="orgs/orgs_teams.html"):
    organization = Organization.get_by_name(org)
    teams = Team.get_by_org(org)
    current_domains = Domain.get_by_organization(org)
    vals = dict(org=organization, teams=teams, domains=current_domains)
    return render_to_response(request, template, vals)