def get_campaign_organisations_as_dto(campaign_id: int, user_id: int): """ Returns organisations under a particular campaign """ organisation_list_dto = ListOrganisationsDTO() orgs = (Organisation.query.join(campaign_organisations).filter( campaign_organisations.c.campaign_id == campaign_id).all()) for org in orgs: if user_id != 0: logged_in = OrganisationService.can_user_manage_organisation( org.id, user_id) else: logged_in = False organisation_dto = OrganisationDTO() organisation_dto.organisation_id = org.id organisation_dto.name = org.name organisation_dto.logo = org.logo organisation_dto.url = org.url organisation_dto.is_manager = logged_in organisation_list_dto.organisations.append(organisation_dto) return organisation_list_dto
def get_campaign_as_dto(campaign_id: int, user_id: int): """Gets the specified campaign""" campaign = CampaignService.get_campaign(campaign_id) campaign_dto = CampaignDTO() campaign_dto.id = campaign.id campaign_dto.url = campaign.url campaign_dto.name = campaign.name campaign_dto.logo = campaign.logo campaign_dto.description = campaign.description campaign_dto.organisations = [] orgs = ( Organisation.query.join(campaign_organisations) .filter(campaign_organisations.c.campaign_id == campaign.id) .all() ) for org in orgs: if user_id != 0: logged_in = OrganisationService.can_user_manage_organisation( org.id, user_id ) else: logged_in = False organisation_dto = OrganisationDTO() organisation_dto.organisation_id = org.id organisation_dto.name = org.name organisation_dto.logo = org.logo organisation_dto.url = org.url organisation_dto.is_manager = logged_in return campaign_dto
def as_dto(self): """ Returns a dto for an organisation """ organisation_dto = OrganisationDTO() organisation_dto.organisation_id = self.id organisation_dto.name = self.name organisation_dto.logo = self.logo organisation_dto.url = self.url organisation_dto.managers = [] for manager in self.managers: org_manager_dto = OrganisationManagerDTO() org_manager_dto.username = manager.username org_manager_dto.picture_url = manager.picture_url organisation_dto.managers.append(org_manager_dto) return organisation_dto
def as_dto(self, omit_managers=False): """ Returns a dto for an organisation """ organisation_dto = OrganisationDTO() organisation_dto.organisation_id = self.id organisation_dto.name = self.name organisation_dto.logo = self.logo organisation_dto.description = self.description organisation_dto.url = self.url organisation_dto.managers = [] organisation_dto.type = OrganisationType(self.type).name if omit_managers: return organisation_dto for manager in self.managers: org_manager_dto = OrganisationManagerDTO() org_manager_dto.username = manager.username org_manager_dto.picture_url = manager.picture_url organisation_dto.managers.append(org_manager_dto) return organisation_dto