def url_params(request): from common.helpers.front_end import get_page_path_parameters path_args = get_page_path_parameters(request.path) url_args = request.GET.urlencode() return merge_dicts( path_args, urlparse.parse_qs(url_args, keep_blank_values=0, strict_parsing=0))
def _projects_tag_counts(event=None, group=None): from civictechprojects.models import Project, ProjectPosition projects = None if event is not None: projects = event.get_linked_projects() elif group is not None: projects = group.get_group_projects() else: projects = Project.objects.filter(is_searchable=True) issues, technologies, stage, organization, organization_type, positions = [], [], [], [], [], [] if projects: for project in projects: issues += project.project_issue_area.slugs() technologies += project.project_technologies.slugs() stage += project.project_stage.slugs() organization += project.project_organization.slugs() organization_type += project.project_organization_type.slugs() project_positions = ProjectPosition.objects.filter( position_project=project.id) positions += map( lambda position: position.position_role.slugs()[0], project_positions) return merge_dicts(Counter(issues), Counter(technologies), Counter(stage), Counter(organization), Counter(organization_type), Counter(positions))
def hydrate_to_project_tile_json(self): list_json = { 'project_relationship_id': self.id, 'relationship_is_approved': self.is_approved } list_json = merge_dicts( list_json, self.relationship_project.hydrate_to_tile_json()) return list_json
def hydrate_to_list_json(self): list_json = { 'project_relationship_id': self.id, 'relationship_is_approved': self.is_approved } if self.is_group_relationship(): list_json = merge_dicts( list_json, self.relationship_group.hydrate_to_list_json()) return list_json
def handle500(request): exception_type, exception, traceback = sys.exc_info() if isinstance(exception, ReportableError): # Log message print("Error(500): " + exception.message) error_args = merge_dicts(exception.front_end_args, {'errorType': type(exception).__name__}) # Redirect to Error page return redirect(section_url(FrontEndSection.Error, error_args)) else: return redirect(section_url(FrontEndSection.Error))
def _projects_tag_counts(): projects = Project.objects.filter(is_searchable=True) issues, technologies, stage, organization, organization_type, positions = [], [], [], [], [], [] if projects: for project in projects: issues += project.project_issue_area.slugs() technologies += project.project_technologies.slugs() stage += project.project_stage.slugs() organization += project.project_organization.slugs() organization_type += project.project_organization_type.slugs() project_positions = ProjectPosition.objects.filter(position_project=project.id) positions += map(lambda position: position.position_role.slugs()[0], project_positions) return merge_dicts(Counter(issues), Counter(technologies), Counter(stage), Counter(organization), Counter(organization_type), Counter(positions))
def test_merge_dicts(self): dict_a = {'a': 1, 'b': 2} dict_b = {'b': 2, 'c': 3} self.assertEqual({'a': 1, 'b': 2, 'c': 3}, merge_dicts(dict_a, dict_b))
def hydrate_project_volunteer_info(self): volunteer_json = self.to_json() project_json = self.project.hydrate_to_list_json() return merge_dicts(volunteer_json, project_json)