def manage_group_owner(request, action, gid, **kwargs): myaccount = True template = "webadmin/group_form_owner.html" conn = None try: conn = kwargs["conn"] except: logger.error(traceback.format_exc()) info = {'today': _("Today is %(tday)s") % {'tday': datetime.date.today()}, 'myaccount':myaccount} eventContext = {'userName':conn.getEventContext().userName, 'isAdmin':conn.getEventContext().isAdmin, 'version': request.session.get('version')} controller = BaseGroup(conn, gid) if action == 'edit': permissions = controller.getActualPermissions() form = GroupOwnerForm(initial={'permissions': permissions, 'readonly': controller.isReadOnly()}) context = {'info':info, 'eventContext':eventContext, 'form':form, 'gid': gid, 'permissions': permissions, 'group':controller.group, 'owners':controller.getOwnersNames()} elif action == "save": if request.method != 'POST': return HttpResponseRedirect(reverse(viewname="wamyaccount", args=["edit", controller.group.id])) else: form = GroupOwnerForm(data=request.POST.copy()) if form.is_valid(): permissions = form.cleaned_data['permissions'] readonly = toBoolean(form.cleaned_data['readonly']) controller.updatePermissions(permissions, readonly) return HttpResponseRedirect(reverse("wamyaccount")) context = {'info':info, 'eventContext':eventContext, 'form':form, 'gid': gid} else: return HttpResponseRedirect(reverse("wamyaccount")) t = template_loader.get_template(template) c = Context(request, context) rsp = t.render(c) return HttpResponse(rsp)
def manage_group(request, action, gid=None, **kwargs): groups = True template = "webadmin/group_form.html" conn = None try: conn = kwargs["conn"] except: logger.error(traceback.format_exc()) info = {'today': _("Today is %(tday)s") % {'tday': datetime.date.today()}, 'groups':groups} if kwargs['firsttime']: info['message'] = kwargs["msg"] eventContext = {'userName':conn.getEventContext().userName, 'isAdmin':conn.getEventContext().isAdmin, 'version': request.session.get('version')} controller = BaseGroup(conn, gid) if action == 'new': form = GroupForm(initial={'experimenters':controller.experimenters, 'permissions': 0}) context = {'info':info, 'eventContext':eventContext, 'form':form} elif action == 'create': if request.method != 'POST': return HttpResponseRedirect(reverse(viewname="wamanagegroupid", args=["new"])) else: name_check = conn.checkGroupName(request.REQUEST.get('name')) form = GroupForm(initial={'experimenters':controller.experimenters}, data=request.POST.copy(), name_check=name_check) if form.is_valid(): logger.debug("Create group form:" + str(form.cleaned_data)) name = form.cleaned_data['name'] description = form.cleaned_data['description'] owners = form.cleaned_data['owners'] permissions = form.cleaned_data['permissions'] readonly = toBoolean(form.cleaned_data['readonly']) controller.createGroup(name, owners, permissions, readonly, description) return HttpResponseRedirect(reverse("wagroups")) context = {'info':info, 'eventContext':eventContext, 'form':form} elif action == 'edit': permissions = controller.getActualPermissions() form = GroupForm(initial={'name': controller.group.name, 'description':controller.group.description, 'permissions': permissions, 'readonly': controller.isReadOnly(), 'owners': controller.owners, 'experimenters':controller.experimenters}) context = {'info':info, 'eventContext':eventContext, 'form':form, 'gid': gid, 'permissions': permissions} elif action == 'save': if request.method != 'POST': return HttpResponseRedirect(reverse(viewname="wamanagegroupid", args=["edit", controller.group.id])) else: name_check = conn.checkGroupName(request.REQUEST.get('name'), controller.group.name) form = GroupForm(initial={'experimenters':controller.experimenters}, data=request.POST.copy(), name_check=name_check) if form.is_valid(): logger.debug("Update group form:" + str(form.cleaned_data)) name = form.cleaned_data['name'] description = form.cleaned_data['description'] owners = form.cleaned_data['owners'] permissions = form.cleaned_data['permissions'] readonly = toBoolean(form.cleaned_data['readonly']) controller.updateGroup(name, owners, permissions, readonly, description) return HttpResponseRedirect(reverse("wagroups")) context = {'info':info, 'eventContext':eventContext, 'form':form, 'gid': gid} elif action == "update": template = "webadmin/group_edit.html" controller.containedExperimenters() form = ContainedExperimentersForm(initial={'members':controller.members, 'available':controller.available}) if not form.is_valid(): #available = form.cleaned_data['available'] available = request.POST.getlist('available') #members = form.cleaned_data['members'] members = request.POST.getlist('members') controller.setMembersOfGroup(available, members) return HttpResponseRedirect(reverse("wagroups")) context = {'info':info, 'eventContext':eventContext, 'form':form, 'controller': controller} elif action == "members": template = "webadmin/group_edit.html" controller.containedExperimenters() form = ContainedExperimentersForm(initial={'members':controller.members, 'available':controller.available}) context = {'info':info, 'eventContext':eventContext, 'form':form, 'controller': controller} else: return HttpResponseRedirect(reverse("wagroups")) t = template_loader.get_template(template) c = Context(request, context) rsp = t.render(c) return HttpResponse(rsp)
def manage_experimenter(request, action, eid=None, **kwargs): experimenters = True template = "webadmin/experimenter_form.html" conn = None try: conn = kwargs["conn"] except: logger.error(traceback.format_exc()) info = {'today': _("Today is %(tday)s") % {'tday': datetime.date.today()}, 'experimenters':experimenters} if kwargs['firsttime']: info['message'] = kwargs["msg"] eventContext = {'userName':conn.getEventContext().userName, 'isAdmin':conn.getEventContext().isAdmin, 'version': request.session.get('version')} controller = BaseExperimenter(conn, eid) if action == 'new': form = ExperimenterForm(initial={'with_password':True, 'active':True, 'available':controller.otherGroupsInitialList()}) context = {'info':info, 'eventContext':eventContext, 'form':form} elif action == 'create': if request.method != 'POST': return HttpResponseRedirect(reverse(viewname="wamanageexperimenterid", args=["new"])) else: name_check = conn.checkOmeName(request.REQUEST.get('omename')) email_check = conn.checkEmail(request.REQUEST.get('email')) initial={'with_password':True} exclude = list() if len(request.REQUEST.getlist('other_groups')) > 0: others = controller.getSelectedGroups(request.REQUEST.getlist('other_groups')) initial['others'] = others initial['default'] = [(g.id, g.name) for g in others] exclude.extend([g.id for g in others]) available = controller.otherGroupsInitialList(exclude) initial['available'] = available form = ExperimenterForm(initial=initial, data=request.REQUEST.copy(), name_check=name_check, email_check=email_check) if form.is_valid(): logger.debug("Create experimenter form:" + str(form.cleaned_data)) omename = form.cleaned_data['omename'] firstName = form.cleaned_data['first_name'] middleName = form.cleaned_data['middle_name'] lastName = form.cleaned_data['last_name'] email = form.cleaned_data['email'] institution = form.cleaned_data['institution'] admin = toBoolean(form.cleaned_data['administrator']) active = toBoolean(form.cleaned_data['active']) defaultGroup = form.cleaned_data['default_group'] otherGroups = form.cleaned_data['other_groups'] password = form.cleaned_data['password'] controller.createExperimenter(omename, firstName, lastName, email, admin, active, defaultGroup, otherGroups, password, middleName, institution) return HttpResponseRedirect(reverse("waexperimenters")) context = {'info':info, 'eventContext':eventContext, 'form':form} elif action == 'edit' : initial={'omename': controller.experimenter.omeName, 'first_name':controller.experimenter.firstName, 'middle_name':controller.experimenter.middleName, 'last_name':controller.experimenter.lastName, 'email':controller.experimenter.email, 'institution':controller.experimenter.institution, 'administrator': controller.experimenter.isAdmin(), 'active': controller.experimenter.isActive(), 'default_group': controller.defaultGroup, 'other_groups':controller.otherGroups} initial['default'] = controller.default others = controller.others initial['others'] = others if len(others) > 0: exclude = [g.id.val for g in others] else: exclude = [controller.defaultGroup] available = controller.otherGroupsInitialList(exclude) initial['available'] = available form = ExperimenterForm(initial=initial) context = {'info':info, 'eventContext':eventContext, 'form':form, 'eid': eid, 'ldapAuth': controller.ldapAuth} elif action == 'save': if request.method != 'POST': return HttpResponseRedirect(reverse(viewname="wamanageexperimenterid", args=["edit", controller.experimenter.id])) else: name_check = conn.checkOmeName(request.REQUEST.get('omename'), controller.experimenter.omeName) email_check = conn.checkEmail(request.REQUEST.get('email'), controller.experimenter.email) initial={'active':True} exclude = list() if len(request.REQUEST.getlist('other_groups')) > 0: others = controller.getSelectedGroups(request.REQUEST.getlist('other_groups')) initial['others'] = others initial['default'] = [(g.id, g.name) for g in others] exclude.extend([g.id for g in others]) available = controller.otherGroupsInitialList(exclude) initial['available'] = available form = ExperimenterForm(initial=initial, data=request.POST.copy(), name_check=name_check, email_check=email_check) if form.is_valid(): logger.debug("Update experimenter form:" + str(form.cleaned_data)) omename = form.cleaned_data['omename'] firstName = form.cleaned_data['first_name'] middleName = form.cleaned_data['middle_name'] lastName = form.cleaned_data['last_name'] email = form.cleaned_data['email'] institution = form.cleaned_data['institution'] admin = toBoolean(form.cleaned_data['administrator']) active = toBoolean(form.cleaned_data['active']) defaultGroup = form.cleaned_data['default_group'] otherGroups = form.cleaned_data['other_groups'] controller.updateExperimenter(omename, firstName, lastName, email, admin, active, defaultGroup, otherGroups, middleName, institution) return HttpResponseRedirect(reverse("waexperimenters")) context = {'info':info, 'eventContext':eventContext, 'form':form, 'eid': eid, 'ldapAuth': controller.ldapAuth} elif action == "delete": controller.deleteExperimenter() return HttpResponseRedirect(reverse("waexperimenters")) else: return HttpResponseRedirect(reverse("waexperimenters")) t = template_loader.get_template(template) c = Context(request, context) rsp = t.render(c) return HttpResponse(rsp)