コード例 #1
0
ファイル: issueadmin.py プロジェクト: xinghun61/infra
    def ProcessSubtabForm(self, post_data, mr):
        """Process the Views subtab.

    Args:
      post_data: HTML form data for the HTTP request being processed.
      mr: commonly used info parsed from the request.

    Returns:
      The URL of the page to show after processing.
    """
        if not self.CheckPerm(mr, permissions.EDIT_PROJECT):
            raise permissions.PermissionException(
                'Only project owners may edit the default views')
        existing_queries = savedqueries_helpers.ParseSavedQueries(
            mr.cnxn, post_data, self.services.project)
        added_queries = savedqueries_helpers.ParseSavedQueries(
            mr.cnxn, post_data, self.services.project, prefix='new_')
        canned_queries = existing_queries + added_queries

        list_prefs = _ParseListPreferences(post_data)

        if mr.errors.AnyErrors():
            self.PleaseCorrect(mr)
            return

        self.services.config.UpdateConfig(mr.cnxn,
                                          mr.project,
                                          list_prefs=list_prefs)
        self.services.features.UpdateCannedQueries(mr.cnxn, mr.project_id,
                                                   canned_queries)

        return urls.ADMIN_VIEWS
コード例 #2
0
ファイル: issueadmin.py プロジェクト: mcgreevy/chromium-infra
    def ProcessSubtabForm(self, post_data, mr):
        """Process the Views subtab.

    Args:
      post_data: HTML form data for the HTTP request being processed.
      mr: commonly used info parsed from the request.

    Returns:
      The URL of the page to show after processing.
    """
        existing_queries = savedqueries_helpers.ParseSavedQueries(
            mr.cnxn, post_data, self.services.project)
        added_queries = savedqueries_helpers.ParseSavedQueries(
            mr.cnxn, post_data, self.services.project, prefix='new_')
        canned_queries = existing_queries + added_queries

        list_prefs = _ParseListPreferences(post_data)

        if not mr.errors.AnyErrors():
            self.services.config.UpdateConfig(mr.cnxn,
                                              mr.project,
                                              list_prefs=list_prefs)
            self.services.features.UpdateCannedQueries(mr.cnxn, mr.project_id,
                                                       canned_queries)

        return urls.ADMIN_VIEWS
コード例 #3
0
ファイル: savedqueries.py プロジェクト: xinghun61/infra
    def ProcessFormData(self, mr, post_data):
        """Validate and store the contents of the issues tracker admin page.

    Args:
      mr: commonly used info parsed from the request.
      post_data: HTML form data from the request.

    Returns:
      String URL to redirect the user to, or None if response was already sent.
    """
        existing_queries = savedqueries_helpers.ParseSavedQueries(
            mr.cnxn, post_data, self.services.project)
        added_queries = savedqueries_helpers.ParseSavedQueries(
            mr.cnxn, post_data, self.services.project, prefix='new_')
        saved_queries = existing_queries + added_queries

        self.services.features.UpdateUserSavedQueries(
            mr.cnxn, mr.viewed_user_auth.user_id, saved_queries)

        return framework_helpers.FormatAbsoluteURL(
            mr,
            '/u/%s%s' % (mr.viewed_username, urls.SAVED_QUERIES),
            include_project=False,
            saved=1,
            ts=int(time.time()))
コード例 #4
0
    def testParseSavedQueries(self):
        post_data = {
            'xyz_savedquery_name_1': '',
            'xyz_savedquery_name_2': 'name2',
            'xyz_savedquery_name_3': 'name3',
            'xyz_savedquery_id_1': 1,
            'xyz_savedquery_id_2': 2,
            'xyz_savedquery_id_3': 3,
            'xyz_savedquery_projects_1': '123',
            'xyz_savedquery_projects_2': 'abc',
            'xyz_savedquery_projects_3': 'def',
            'xyz_savedquery_base_1': 4,
            'xyz_savedquery_base_2': 5,
            'xyz_savedquery_base_3': 6,
            'xyz_savedquery_query_1': 'query1',
            'xyz_savedquery_query_2': 'query2',
            'xyz_savedquery_query_3': 'query3',
            'xyz_savedquery_sub_mode_1': 'sub_mode1',
            'xyz_savedquery_sub_mode_2': 'sub_mode2',
            'xyz_savedquery_sub_mode_3': 'sub_mode3',
        }
        self.project.TestAddProject(name='abc', project_id=1001)
        self.project.TestAddProject(name='def', project_id=1002)

        saved_queries = savedqueries_helpers.ParseSavedQueries(self.cnxn,
                                                               post_data,
                                                               self.project,
                                                               prefix='xyz_')
        self.assertEqual(2, len(saved_queries))

        # pylint: disable=unbalanced-tuple-unpacking
        saved_query1, saved_query2 = saved_queries
        # Assert contents of saved_query1.
        self.assertEqual(2, saved_query1.query_id)
        self.assertEqual('name2', saved_query1.name)
        self.assertEqual(5, saved_query1.base_query_id)
        self.assertEqual('query2', saved_query1.query)
        self.assertEqual([1001], saved_query1.executes_in_project_ids)
        self.assertEqual('sub_mode2', saved_query1.subscription_mode)
        # Assert contents of saved_query2.
        self.assertEqual(3, saved_query2.query_id)
        self.assertEqual('name3', saved_query2.name)
        self.assertEqual(6, saved_query2.base_query_id)
        self.assertEqual('query3', saved_query2.query)
        self.assertEqual([1002], saved_query2.executes_in_project_ids)
        self.assertEqual('sub_mode3', saved_query2.subscription_mode)