def join_project(request, project_id=None): config = tables.RequestConfig(request, paginate={"per_page": 5}) person = request.user project_list = Project.objects.all() project_list = ProjectTable(project_list, prefix="all-") config.configure(project_list) delegate_project_list = Project.objects.filter(institute__delegates=person, is_active=True) delegate_project_list = ProjectTable(delegate_project_list, prefix="delegate-") config.configure(delegate_project_list) leader_project_list = Project.objects.filter(leaders=person, is_active=True) leader_project_list = ProjectTable(leader_project_list, prefix="leader-") config.configure(leader_project_list) return render_to_response('karaage/projects/join_project.html', { 'person': person, 'project_list': project_list, 'delegate_project_list': delegate_project_list, 'leader_project_list': leader_project_list }, context_instance=RequestContext(request))
def profile_projects(request): config = tables.RequestConfig(request, paginate={"per_page": 5}) person = request.user project_list = person.projects.all() project_list = ProjectTable(project_list, prefix="mine-") config.configure(project_list) delegate_project_list = Project.objects.filter(institute__delegates=person, is_active=True) delegate_project_list = ProjectTable(delegate_project_list, prefix="delegate-") config.configure(delegate_project_list) leader_project_list = Project.objects.filter(leaders=person, is_active=True) leader_project_list = ProjectTable(leader_project_list, prefix="leader-") config.configure(leader_project_list) return render(template_name='karaage/projects/profile_projects.html', context={ 'person': person, 'project_list': project_list, 'delegate_project_list': delegate_project_list, 'leader_project_list': leader_project_list }, request=request)
def admin_index(request): config = tables.RequestConfig(request, paginate={"per_page": 5}) newest_people = Person.objects.order_by('-date_approved', '-id') newest_people = newest_people.filter(date_approved__isnull=False) newest_people = newest_people.select_related() newest_people = PersonTable( newest_people, orderable=False, prefix="people-") config.configure(newest_people) newest_projects = Project.objects.order_by('-date_approved') newest_projects = newest_projects.filter(date_approved__isnull=False) newest_projects = newest_projects.filter(is_active=True) newest_projects = newest_projects.select_related() newest_projects = ProjectTable( newest_projects, orderable=False, prefix="projects-") config.configure(newest_projects) recent_actions = LogEntry.objects.order_by('-action_time', '-id') recent_actions = LogEntryTable( recent_actions, orderable=False, prefix="actions-") config.configure(recent_actions) var = { 'newest_people': newest_people, 'newest_projects': newest_projects, 'recent_actions': recent_actions, } return render( template_name='karaage/common/index.html', context=var, request=request)
def project_list(request, queryset=None): if queryset is None: queryset = Project.objects.all() if not util.is_admin(request): queryset = queryset.filter( Q(leaders=request.user, is_active=True) | Q(institute__delegates=request.user, is_active=True) | Q(group__members=request.user, is_active=True)).distinct() queryset = queryset.select_related() q_filter = ProjectFilter(request.GET, queryset=queryset) table = ProjectTable(q_filter.qs) tables.RequestConfig(request).configure(table) spec = [] for name, value in six.iteritems(q_filter.form.cleaned_data): if value is not None and value != "": name = name.replace('_', ' ').capitalize() spec.append((name, value)) return render_to_response('karaage/projects/project_list.html', { 'table': table, 'filter': q_filter, 'spec': spec, 'title': "Project list", }, context_instance=RequestContext(request))
def search(request): config = tables.RequestConfig(request, paginate={"per_page": 5}) if 'sitesearch' in request.GET and request.GET['sitesearch'].strip() != "": people_list = Person.objects.all() group_list = Group.objects.all() project_list = Project.objects.all() new_data = request.GET.copy() siteterms = new_data['sitesearch'].lower() term_list = siteterms.split(' ') # people query = Q() for term in term_list: q = Q(username__icontains=term) q = q | Q(short_name__icontains=term) q = q | Q(full_name__icontains=term) q = q | Q(email__icontains=term) query = query & q people_list = people_list.filter(query).distinct() people_list = PersonTable(people_list, prefix="people-") config.configure(people_list) # groups query = Q() for term in term_list: q = Q(name__icontains=term) | Q(description__icontains=term) query = query & q group_list = group_list.filter(query) group_list = GroupTable(group_list, prefix="group-") config.configure(group_list) # projects query = Q() for term in term_list: q = Q(pid__icontains=term) q = q | Q(name__icontains=term) q = q | Q(leaders__username__icontains=term) q = q | Q(leaders__short_name__icontains=term) q = q | Q(leaders__full_name__icontains=term) query = query & q project_list = project_list.filter(query).distinct() project_list = ProjectTable(project_list, prefix="project-") config.configure(project_list) return render( template_name='karaage/common/site_search.html', context=locals(), request=request) else: return HttpResponseRedirect(reverse('index'))
def category_projects(request, category_id): machine_category = get_object_or_404(MachineCategory, pk=category_id) queryset = Project.objects.filter( projectquota__machine_category=machine_category) table = ProjectTable(queryset) tables.RequestConfig(request).configure(table) return render_to_response('karaage/machines/machinecategory_projects.html', { 'machine_category': machine_category, 'table': table }, context_instance=RequestContext(request))
def category_projects(request, category_id): machine_category = get_object_or_404(MachineCategory, pk=category_id) queryset = Project.objects.filter( projectquota__machine_category=machine_category) table = ProjectTable(queryset) tables.RequestConfig(request).configure(table) return render( template_name='karaage/machines/machinecategory_projects.html', context={ 'machine_category': machine_category, 'table': table }, request=request)
def institute_detail(request, institute_id): config = tables.RequestConfig(request, paginate={"per_page": 5}) institute = get_object_or_404(Institute, pk=institute_id) if not institute.can_view(request): return HttpResponseForbidden( '<h1>Access Denied</h1>' '<p>You do not have permission to view details' 'about this institute.</p>') project_list = institute.project_set.select_related() project_list = ProjectTable(project_list, prefix="project-") config.configure(project_list) person_list = Person.objects.filter( Q(institute__pk=institute_id) | Q(groups__institute=institute_id)) person_list = person_list.select_related() person_list = PersonTable(person_list, prefix="person-") config.configure(person_list) return render_to_response('karaage/institutes/institute_detail.html', locals(), context_instance=RequestContext(request))
def user_detail(request, username): config = tables.RequestConfig(request, paginate={"per_page": 5}) person = get_object_or_404(Person, username=username) if not person.can_view(request): return HttpResponseForbidden( '<h1>Access Denied</h1>' '<p>You do not have permission to view details ' 'about this person.</p>') leader_project_list = Project.objects.filter(leaders=person, is_active=True) leader_project_list = ProjectTable(leader_project_list, prefix="leader-") config.configure(leader_project_list) delegate_institute_list = person.delegate_for.all() delegate_institute_list = delegate_institute_list.select_related() delegate_institute_list = InstituteTable(delegate_institute_list, prefix="delegate") config.configure(delegate_institute_list) return render(template_name='karaage/people/person_detail.html', context=locals(), request=request)