From patchwork Tue Aug 23 09:03:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WEN Pingbo X-Patchwork-Id: 661773 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3sJPgR06szz9sBc for ; Tue, 23 Aug 2016 19:06:11 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=EK/T7xgR; dkim-atps=neutral Received: from ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3sJPgQ632kzDrKF for ; Tue, 23 Aug 2016 19:06:10 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=EK/T7xgR; dkim-atps=neutral X-Original-To: patchwork@lists.ozlabs.org Delivered-To: patchwork@lists.ozlabs.org Received: from mail-pa0-x241.google.com (mail-pa0-x241.google.com [IPv6:2607:f8b0:400e:c03::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3sJPdb0G0yzDrcQ for ; Tue, 23 Aug 2016 19:04:35 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=EK/T7xgR; dkim-atps=neutral Received: by mail-pa0-x241.google.com with SMTP id ez1so9573901pab.3 for ; Tue, 23 Aug 2016 02:04:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=boeUIuMGXsj7G6w7OJ6EVsp6jmsqTEXBjpplf/7anbo=; b=EK/T7xgR2RHzbGjt5J4DQky4LzWnNQyEwFfuQzkTP5oMxCLsUVicHTJMmTSMbD8/PE /HSUPdh6IdCgpHXh9UmXkuQz1ykWt/E3hRsn7FIbNnVEO+6tMjQ04nI2S1CJnjRIOyaV aQC+1+736u30pL8Z/enywi9kOM7Vb6fli9ZmDib9fOxauaXsn0YKi8A7+FHcL/vSjNCI RCHgNhg+4DUkG78zNpH9TmdiPgDBiQ8GSuG2o2t9aEYWWy7ILOgLHBK5MTZ2qzh2pkJH DzsFCsSf2nBHPLtHfkaVu9mrlaM0aO52u0JXMcZcLLc94uwxbNcRPYiFDdnMBx+fG0p9 wWIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=boeUIuMGXsj7G6w7OJ6EVsp6jmsqTEXBjpplf/7anbo=; b=IP3Alx2UxSVTB9BspUoGmXVuyg7QUGZhzQqpfZcs8owLhk80DgMR1hsmVE1bkG0ECI hew3W7/DJvUs1ZFzvdfweKdbtBBxz+5w7PFEpOzgqPcQ932iNL8M1mPDt5Orr/2nP4Dn jw7sRvkz3IElN55iE4l3TID4Lhmmi3sOThgw7ranR8R7pl7xXavnD8l42QBOxGLBTXBR FE2SaReM43p0D+f2mGUAa94mUm+bW3522NGxxBGVIBGmQZoCE0ZXKqKfI90SwjmTw5pH 3DsUjQQsRNyLuT2qxL1nOKgDgtHpKs52kfBcAxRMO0VofkZGKkvx46yqU4qj1iRAPL6h U0rw== X-Gm-Message-State: AEkoousTQxCfbbsaGeQ41y+R1Ah0vpFFz25UCdEsUHIMWrvaiKMVPHw4p7ka5NBxUlpxJA== X-Received: by 10.66.189.199 with SMTP id gk7mr51576813pac.158.1471943073155; Tue, 23 Aug 2016 02:04:33 -0700 (PDT) Received: from EF-wenpingbo.meizu.com ([103.26.122.10]) by smtp.gmail.com with ESMTPSA id n10sm3723867pap.16.2016.08.23.02.04.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 23 Aug 2016 02:04:32 -0700 (PDT) From: WEN Pingbo To: patchwork@lists.ozlabs.org Subject: [PATCH 08/10] filters: add Patch path filter Date: Tue, 23 Aug 2016 17:03:42 +0800 Message-Id: <1471943023-1112-9-git-send-email-wengpingbo@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1471943023-1112-1-git-send-email-wengpingbo@gmail.com> References: <1471943023-1112-1-git-send-email-wengpingbo@gmail.com> X-BeenThere: patchwork@lists.ozlabs.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Patchwork development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: stephen.finucane@intel.com MIME-Version: 1.0 Errors-To: patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Patchwork" Filtering patch with related file path is good for us to monitor all patch of a single directory or file. Signed-off-by: WEN Pingbo --- patchwork/filters.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/patchwork/filters.py b/patchwork/filters.py index 1995572..65bb4c8 100644 --- a/patchwork/filters.py +++ b/patchwork/filters.py @@ -261,6 +261,48 @@ class SubjectFilter(Filter): def form_function(self): return mark_safe('function(form) { return form.x.value }') +class ContentFilter(Filter): + param = 'content' + + def __init__(self, filters): + super(ContentFilter, self).__init__(filters) + self.name = 'Patch Path' + self.param = 'content' + self.search = None + + def _set_key(self, str): + str = str.strip() + if str == '': + return + self.search = str + self.applied = True + + def kwargs(self): + words = self.search.decode("utf-8").split() + + value = r'\n\s(' + words[0] + r')' + words.remove(words[0]) + for s in words: + value += r'|(' + s + r')' + value += r'.+\.[ch]' + + return {'content__regex': value} + + def condition(self): + return self.search + + def key(self): + return self.search + + def _form(self): + value = '' + if self.search: + value = escape(self.search) + return mark_safe('' % + (self.param, value)) + + def form_function(self): + return mark_safe('function(form) { return form.x.value }') class ArchiveFilter(Filter): param = 'archive' @@ -402,6 +444,7 @@ class DelegateFilter(Filter): filterclasses = [SubmitterFilter, StateFilter, SubjectFilter, + ContentFilter, ArchiveFilter, DelegateFilter]