def _argwrap(*args, **kwargs): request = first([ a for a in list(args) + list(kwargs.values()) if isinstance(a, WSGIRequest) ]) if not departments: raise Exception( "Provide at least one department to require it.") if not request: raise Exception( "One of the arguments of decorated function must be a WSGIRequest instance." ) if not request.user: messages.error(request, "You need to be logged in!") return redirect(request.path) if (request.user.is_admin or request.user.is_director or any([ department.value in request.user.departments.all().values_list("type", flat=True) for department in departments ])): return view_func(*args, **kwargs) messages.error( request, "You don't have enough permissions to do this action.") return redirect(reverse("admin:index"))
def do_login(self, username, password, request): u = User.objects.filter(UserName=username, PassWord=password), first() print("登陆") if u is not None: msg = "登陆成功!" state = 1 request.session['UserName'] = u.UserName request.session['UserId'] = u.UserId else: request.session['UserName'] = "******" request.session['UserId'] = None msg = "账号或密码错误!" state = 0 array = {'msg': msg, 'state': state} return array
def do_register(self, username, password, repassword, request): u = User.objects.filter(UserName=username), first() if u is not None: msg = "用户名已被注册!" state = 0 request.session['UserName'] = u.TrueName request.session['UserId'] = u.UserId else: if password == repassword: U = User() U.UserName = username U.PassWord = password U.save() msg = "注册成功!" state = 1 else: msg = "两次输入的密码不同!" state = 0 array = {'msg': msg, 'state': state} return array
def detail(request, cslug): lechantier = first(Chantier.objects.filter(slug = cslug)) ledict = {'chantier':lechantier} sondages = lechantier.sondages.all() ledict['nbsondages'] = sondages.count() ledict['sondages'] = sondages if len(lechantier.gdocs_folder) > 1: gd_client = gdata.docs.service.DocsService() gd_client = gdata.docs.service.DocsService(source='Quinode-pfes-v1') gd_client.ClientLogin(lechantier.gdocs_email, lechantier.gdocs_pass) q = gdata.docs.service.DocumentQuery() q.AddNamedFolder(lechantier.gdocs_email, lechantier.gdocs_folder) feed = gd_client.Query(q.ToUri()) parsedfeed = [] for entry in feed.entry: doclink = {} doclink['title'] = entry.title.text doclink['link'] = entry.GetAlternateLink().href parsedfeed.append(doclink) ledict['docs'] = parsedfeed return render_to_response('chantiers/detail.html', ledict, RequestContext(request))
def test_first(self): self.assertEqual(first([0, 1, 2]), 0) self.assertEqual(first(''), '') self.assertEqual(first('test'), 't')
def test_string(self): self.assertEqual(first("test"), "t")
def test_empty_string(self): self.assertEqual(first(""), "")
def test_list(self): self.assertEqual(first([0, 1, 2]), 0)
def last_post(self): return first(self.posts.all())
def test_string(self): self.assertEqual(first('test'), 't')
def test_empty_string(self): self.assertEqual(first(''), '')