def add_users(request, this_action, next_action, template): id = request.REQUEST['id'].strip() group = Group.objects.get(groupinstanceid=int(id)) context = default_context(request, action=this_action, group=group, id=id) if 'q' in request.REQUEST: q = request.REQUEST['q'] qs = search_query_set(q) context['q'] = q else: qs = all_query_set() if 'mcid' in request.POST: mcid = normalize_mcid(request.POST['mcid']) if 'remove.x' in request.POST: sql_execute("DELETE FROM groupmembers " + \ "WHERE groupinstanceid = %s AND memberaccid = %s", int(id), mcid) elif 'add.x' in request.POST: # Only one group per user sql_execute("DELETE FROM groupmembers " + \ "wHERE memberaccid = %s", mcid) sql_execute("INSERT INTO groupmembers " + \ "(groupinstanceid, memberaccid) " + \ "VALUES (%s, %s)", int(id), mcid) return HttpResponseRedirect(this_action) if 'prev' in request.POST: return HttpResponseRedirect('wiz_name?id=%s' % id) if 'finish' in request.POST: return HttpResponseRedirect(next_action) where = [ 'groupmembers.memberaccid = users.mcid', 'groupmembers.groupinstanceid = %s' % id ] context['members'] = User.objects.extra(where=where, tables=['groupmembers']) where = [ 'mcid NOT IN (SELECT memberaccid FROM groupmembers WHERE groupinstanceid = %s)' % id ] select = { 'groupname': 'SELECT DISTINCT(name) FROM groupinstances, groupmembers WHERE groupmembers.groupinstanceid = groupinstances.groupinstanceid AND groupmembers.memberaccid = users.mcid' } return object_list(request, queryset=qs.extra(where=where, select=select), template_name=template, paginate_by=20, extra_context=context)
def add_users(request, this_action, next_action, template): id = request.REQUEST['id'].strip() group = Group.objects.get(groupinstanceid=int(id)) context = default_context(request, action=this_action, group=group, id=id) if 'q' in request.REQUEST: q = request.REQUEST['q'] qs = search_query_set(q) context['q'] = q else: qs = all_query_set() if 'mcid' in request.POST: mcid = normalize_mcid(request.POST['mcid']) if 'remove.x' in request.POST: sql_execute("DELETE FROM groupmembers " + \ "WHERE groupinstanceid = %s AND memberaccid = %s", int(id), mcid) elif 'add.x' in request.POST: # Only one group per user sql_execute("DELETE FROM groupmembers " + \ "wHERE memberaccid = %s", mcid) sql_execute("INSERT INTO groupmembers " + \ "(groupinstanceid, memberaccid) " + \ "VALUES (%s, %s)", int(id), mcid) return HttpResponseRedirect(this_action) if 'prev' in request.POST: return HttpResponseRedirect('wiz_name?id=%s' % id) if 'finish' in request.POST: return HttpResponseRedirect(next_action) where = ['groupmembers.memberaccid = users.mcid', 'groupmembers.groupinstanceid = %s' % id] context['members'] = User.objects.extra(where = where, tables = ['groupmembers']) where = ['mcid NOT IN (SELECT memberaccid FROM groupmembers WHERE groupinstanceid = %s)' % id] select = {'groupname': 'SELECT DISTINCT(name) FROM groupinstances, groupmembers WHERE groupmembers.groupinstanceid = groupinstances.groupinstanceid AND groupmembers.memberaccid = users.mcid'} return object_list(request, queryset = qs.extra(where = where, select = select), template_name = template, paginate_by = 20, extra_context = context)
def wiz_create_req(request): id = request.REQUEST.get('id', '') action = 'wiz_create?id=%s' % id if id: g = Group.objects.get(groupinstanceid=id) else: g = None queryset = all_query_set() if 'search' in request.POST or 'search.x' in request.POST: queryset = search_query_set(request.POST['q']) form = CreateForm(initial=request.POST) elif request.POST: form = CreateForm(request.POST) if form.is_valid(): mcid = normalize_mcid(form.clean_data['owner_mcid']) if g: p = Practice.objects.get(practiceid=g.parentid) p.accid_id = g.accid_id = mcid p.save() else: g = create_group('New Group', mcid, 'https://' + request.META['SERVER_NAME']) g.save() return HttpResponseRedirect('wiz_name?id=%d' % g.groupinstanceid) else: initial = dict(id=id) if 'mcid' in request.REQUEST: initial['owner_mcid'] = pretty_mcid(request.REQUEST['mcid']) elif g: initial['owner_mcid'] = pretty_mcid(g.accid_id) form = CreateForm(initial=initial) return object_list(request, queryset=queryset, template_name='groups/wiz_1create.html', paginate_by=20, extra_context=default_context(request, form=form, action=action))
def wiz_create_req(request): id = request.REQUEST.get('id', '') action = 'wiz_create?id=%s' % id if id: g = Group.objects.get(groupinstanceid = id) else: g = None queryset = all_query_set() if 'search' in request.POST or 'search.x' in request.POST: queryset = search_query_set(request.POST['q']) form = CreateForm(initial = request.POST) elif request.POST: form = CreateForm(request.POST) if form.is_valid(): mcid = normalize_mcid(form.clean_data['owner_mcid']) if g: p = Practice.objects.get(practiceid = g.parentid) p.accid_id = g.accid_id = mcid p.save() else: g = create_group('New Group', mcid, 'https://' + request.META['SERVER_NAME']) g.save() return HttpResponseRedirect('wiz_name?id=%d' % g.groupinstanceid) else: initial = dict(id = id) if 'mcid' in request.REQUEST: initial['owner_mcid'] = pretty_mcid(request.REQUEST['mcid']) elif g: initial['owner_mcid'] = pretty_mcid(g.accid_id) form = CreateForm(initial = initial) return object_list(request, queryset = queryset, template_name = 'groups/wiz_1create.html', paginate_by = 20, extra_context = default_context(request, form=form, action=action))
def search(request, qstr): order_query = "search?" order = "-since" if qstr: order_query += "q=%s&" % quote(qstr) search_query = order_query if "order" in request.GET: order = request.GET["order"] search_query += "order=%s&" % quote(order) return object_list( request, queryset=search_query_set(qstr, order_by=order.split(",")), template_name="users/search.html", paginate_by=20, allow_empty=True, extra_context=default_context(request, q=qstr, order_query=order_query, search_query=search_query), )
def search(request, qstr): order_query = 'search?' order = '-since' if qstr: order_query += 'q=%s&' % quote(qstr) search_query = order_query if 'order' in request.GET: order = request.GET['order'] search_query += 'order=%s&' % quote(order) return object_list(request, queryset=search_query_set(qstr, order_by=order.split(',')), template_name='users/search.html', paginate_by=20, allow_empty=True, extra_context=default_context( request, q=qstr, order_query=order_query, search_query=search_query))