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
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
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()))
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)