def to_json(self):
     return {
         'id':
         self.id,
         'description':
         self.position_description,
         'descriptionUrl':
         self.description_url,
         'roleTag':
         Tag.hydrate_to_json(self.id,
                             self.position_role.all().values())[0]
     }
Beispiel #2
0
    def get_issue_areas(self):
        project_relationships = ProjectRelationship.objects.filter(
            relationship_event=self.id)
        project_ids = list(
            map(lambda relationship: relationship.relationship_project.id,
                project_relationships))
        project_list = Project.objects.filter(id__in=project_ids)

        return [
            Tag.hydrate_to_json(
                project.id, list(project.project_issue_area.all().values()))
            for project in project_list
        ]
Beispiel #3
0
    def hydrate_to_tile_json(self):
        files = ProjectFile.objects.filter(file_project=self.id)
        thumbnail_files = list(files.filter(file_category=FileCategory.THUMBNAIL.value))
        positions = ProjectPosition.objects.filter(position_project=self.id)

        project = {
            'project_id': self.id,
            'project_name': self.project_name,
            'project_creator': self.project_creator.id,
            'project_description': self.project_short_description if self.project_short_description else self.project_description,
            'project_url': self.project_url,
            'project_location': self.project_location,
            'project_issue_area': Tag.hydrate_to_json(self.id, list(self.project_issue_area.all().values())),
            'project_stage': Tag.hydrate_to_json(self.id, list(self.project_stage.all().values())),
            'project_positions': list(map(lambda position: position.to_json(), positions)),
            'project_date_modified': self.project_date_modified.__str__()
        }

        if len(thumbnail_files) > 0:
            project['project_thumbnail'] = thumbnail_files[0].to_json()

        return project
Beispiel #4
0
    def hydrate_to_json(self):
        files = ProjectFile.objects.filter(file_project=self.id)
        thumbnail_files = list(files.filter(file_category=FileCategory.THUMBNAIL.value))
        other_files = list(files.filter(file_category=FileCategory.ETC.value))
        links = ProjectLink.objects.filter(link_project=self.id)
        positions = ProjectPosition.objects.filter(position_project=self.id)
        volunteers = VolunteerRelation.objects.filter(project=self.id)
        commits = ProjectCommit.objects.filter(commit_project=self.id).order_by('-commit_date')[:20]

        project = {
            'project_id': self.id,
            'project_name': self.project_name,
            'project_creator': self.project_creator.id,
            'project_claimed': not self.project_creator.is_admin_contributor(),
            'project_approved': self.is_searchable,
            'project_description': self.project_description,
            'project_description_solution': self.project_description_solution,
            'project_description_actions': self.project_description_actions,
            'project_short_description': self.project_short_description,
            'project_url': self.project_url,
            'project_location': self.project_location,
            'project_organization': Tag.hydrate_to_json(self.id, list(self.project_organization.all().values())),
            'project_organization_type': Tag.hydrate_to_json(self.id, list(self.project_organization_type.all().values())),
            'project_issue_area': Tag.hydrate_to_json(self.id, list(self.project_issue_area.all().values())),
            'project_stage': Tag.hydrate_to_json(self.id, list(self.project_stage.all().values())),
            'project_technologies': Tag.hydrate_to_json(self.id, list(self.project_technologies.all().values())),
            'project_positions': list(map(lambda position: position.to_json(), positions)),
            'project_files': list(map(lambda file: file.to_json(), other_files)),
            'project_links': list(map(lambda link: link.to_json(), links)),
            'project_commits': list(map(lambda commit: commit.to_json(), commits)),
            'project_owners': [self.project_creator.hydrate_to_tile_json()],
            'project_volunteers': list(map(lambda volunteer: volunteer.to_json(), volunteers)),
            'project_date_modified': self.project_date_modified.__str__()
        }

        if len(thumbnail_files) > 0:
            project['project_thumbnail'] = thumbnail_files[0].to_json()

        return project
Beispiel #5
0
    def hydrate_to_json(self):
        projects = ProjectRelationship.objects.filter(
            relationship_event=self.id)
        files = ProjectFile.objects.filter(file_event=self.id)
        thumbnail_files = list(
            files.filter(file_category=FileCategory.THUMBNAIL.value))
        other_files = list(files.filter(file_category=FileCategory.ETC.value))

        event = {
            'event_agenda':
            self.event_agenda,
            'event_creator':
            self.event_creator.id,
            'event_date_end':
            self.event_date_end.__str__(),
            'event_date_modified':
            self.event_date_modified.__str__(),
            'event_date_start':
            self.event_date_start.__str__(),
            'event_description':
            self.event_description,
            'event_files':
            list(map(lambda file: file.to_json(), other_files)),
            'event_id':
            self.id,
            'event_location':
            self.event_location,
            'event_rsvp_url':
            self.event_rsvp_url,
            'event_live_id':
            self.event_live_id,
            'event_name':
            self.event_name,
            'event_owners': [self.event_creator.hydrate_to_tile_json()],
            'event_short_description':
            self.event_short_description,
            'event_legacy_organization':
            Tag.hydrate_to_json(
                self.id, list(self.event_legacy_organization.all().values())),
        }

        if len(projects) > 0:
            event['event_projects'] = list(
                map(
                    lambda project: project.relationship_project.
                    hydrate_to_tile_json(), projects))

        if len(thumbnail_files) > 0:
            event['event_thumbnail'] = thumbnail_files[0].to_json()

        return event
Beispiel #6
0
    def to_json(self):
        volunteer = self.volunteer

        volunteer_json = {
            'application_id': self.id,
            'user': volunteer.hydrate_to_tile_json(),
            'application_text': self.application_text,
            'application_date': self.application_date.__str__(),
            'platform_date_joined': volunteer.date_joined.__str__(),
            'roleTag': Tag.hydrate_to_json(volunteer.id, self.role.all().values())[0],
            'isApproved': self.is_approved,
            'isCoOwner': self.is_co_owner,
            'isUpForRenewal': self.is_up_for_renewal(),
            'projectedEndDate': self.projected_end_date.__str__()
        }

        return volunteer_json
Beispiel #7
0
    def hydrate_to_json(self):
        links = civictechprojects.models.ProjectLink.objects.filter(
            link_user=self.id)
        files = civictechprojects.models.ProjectFile.objects.filter(
            file_user=self.id)
        other_files = list(
            filter(
                lambda file: file.file_category != civictechprojects.models.
                FileCategory.THUMBNAIL.value, files))

        user = {
            'id':
            self.id,
            'email':
            self.email,
            'first_name':
            self.first_name,
            'last_name':
            self.last_name,
            'about_me':
            self.about_me,
            'country':
            self.country,
            'postal_code':
            self.postal_code,
            'user_technologies':
            Tag.hydrate_to_json(self.id,
                                list(self.user_technologies.all().values())),
            'user_links':
            list(map(lambda link: link.to_json(), links)),
            'user_files':
            list(map(lambda file: file.to_json(), other_files)),
        }

        thumbnail_files = list(
            files.filter(file_category=civictechprojects.models.FileCategory.
                         THUMBNAIL.value))
        if len(thumbnail_files) > 0:
            user['user_thumbnail'] = thumbnail_files[0].to_json()

        return user
    def to_json(self):
        volunteer = self.volunteer

        # TODO: Add end date and application date
        volunteer_json = {
            'application_id':
            self.id,
            'user':
            volunteer.hydrate_to_tile_json(),
            'application_text':
            self.application_text,
            'roleTag':
            Tag.hydrate_to_json(volunteer.id,
                                self.role.all().values())[0],
            'isApproved':
            self.is_approved,
            'isCoOwner':
            self.is_co_owner
        }

        return volunteer_json
    def hydrate_to_json(self):
        files = ProjectFile.objects.filter(file_project=self.id)
        thumbnail_files = list(files.filter(file_category=FileCategory.THUMBNAIL.value))
        other_files = list(files.filter(file_category=FileCategory.ETC.value))
        links = ProjectLink.objects.filter(link_project=self.id)

        project = {
            'project_id': self.id,
            'project_name': self.project_name,
            'project_creator': self.project_creator.id,
            'project_description': self.project_description,
            'project_url': self.project_url,
            'project_location': self.project_location,
            'project_issue_area': Tag.hydrate_to_json(list(self.project_issue_area.all().values())),
            'project_files': list(map(lambda file: file.to_json(), other_files)),
            'project_links': list(map(lambda link: link.to_json(), links))
        }

        if len(thumbnail_files) > 0:
            project['project_thumbnail'] = thumbnail_files[0].to_json()

        return project