Skip to content

Commit ac08bef

Browse files
authored
Merge pull request #137 from mapswipe/feat/project-website-url
Add link to project in mapswipe website (query)
2 parents 37b2f77 + 5e5d3e9 commit ac08bef

File tree

5 files changed

+19
-3
lines changed

5 files changed

+19
-3
lines changed

apps/project/graphql/types/types.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from apps.contributor.graphql.types import ContributorTeamType
1313
from apps.project.models import Organization, Project, ProjectAsset, ProjectAssetInputTypeEnum
1414
from apps.tutorial.graphql.types.types import TutorialType
15+
from main.config import Config
1516
from main.graphql.context import Info
1617
from project_types.tile_map_service.compare import project as compare_project
1718
from project_types.tile_map_service.completeness import project as completeness_project
@@ -173,6 +174,10 @@ def name(self, project: strawberry.Parent[Project]) -> str:
173174
# This is used for mutation response
174175
return project.generate_name()
175176

177+
@strawberry_django.field(only=["firebase_id"])
178+
def website_url(self, project: strawberry.Parent[Project]) -> str:
179+
return Config.WebsiteKeys.project(project.firebase_id)
180+
176181
@strawberry_django.field(only=["project_type_specifics", "project_type"])
177182
async def project_type_specifics(
178183
self,

docker-compose.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ x-server: &base_server_setup
2323
# Domain configs
2424
APP_DOMAIN: ${APP_DOMAIN:-http://localhost:8000}
2525
MANAGER_DASHBOARD_DOMAIN: ${MANAGER_DASHBOARD_DOMAIN:-http://localhost:3000}
26-
COMMUNITY_DASHBOARD_DOMAIN: ${COMMUNITY_DASHBOARD_DOMAIN:-http://localhost:3100}
26+
COMMUNITY_DASHBOARD_DOMAIN: ${COMMUNITY_DASHBOARD_DOMAIN:-http://localhost:3020}
27+
WEBSITE_DOMAIN: ${WEBSITE_DOMAIN:-http://localhost:3200}
2728
SESSION_COOKIE_DOMAIN: ${SESSION_COOKIE_DOMAIN:-localhost}
2829
CSRF_COOKIE_DOMAIN: ${CSRF_COOKIE_DOMAIN:-localhost}
2930
# Postgres

main/config.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class Config:
2626
# Client domains
2727
MANAGER_DASHBOARD_DOMAIN = typing.cast("URLParseResult", settings.MANAGER_DASHBOARD_DOMAIN)
2828
COMMUNITY_DASHBOARD_DOMAIN = typing.cast("URLParseResult", settings.COMMUNITY_DASHBOARD_DOMAIN)
29+
WEBSITE_DOMAIN = typing.cast("URLParseResult", settings.WEBSITE_DOMAIN)
2930

3031
# NOTE: We get AOI for validate from HOT tasking manager
3132
HOT_TASKING_MANAGER_PROJECT_API_LINK = "https://tasking-manager-production-api.hotosm.org/api/v2/"
@@ -60,6 +61,11 @@ def contributor_user(firebae_id: str):
6061
def contributor_user_group(firebase_id: str):
6162
return f"{Config.COMMUNITY_DASHBOARD_DOMAIN.geturl()}/user-group/{firebase_id}"
6263

64+
class WebsiteKeys:
65+
@staticmethod
66+
def project(firebase_id: str):
67+
return f"{Config.WEBSITE_DOMAIN.geturl()}/en/projects/{firebase_id}"
68+
6369
class FirebaseKeys:
6470
@staticmethod
6571
def backend_wait():

main/settings.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ def urlparse(value) -> ParseResult:
4646
# Domain configs
4747
APP_DOMAIN=str, # Eg: https://api.example.org
4848
MEDIA_STORAGE_DOMAIN=(str, None),
49-
FRONTEND_DOMAIN=str, # Eg: https://web.example.org
5049
MANAGER_DASHBOARD_DOMAIN=str, # Eg: https://managers.mapswipe.org
51-
COMMUNITY_DASHBOARD_DOMAIN=str, # Eg: https://community.mapswipe.org/
50+
COMMUNITY_DASHBOARD_DOMAIN=str, # Eg: https://community.mapswipe.org
51+
WEBSITE_DOMAIN=str, # Eg: https://mapswipe.org
5252
SESSION_COOKIE_DOMAIN=str, # .example.com
5353
CSRF_COOKIE_DOMAIN=str, # .example.com
5454
MAPSWIPE_ADDITIONAL_TRUSTED_ORIGINS=(list, []), # https://app1.example.com,https://app2.example.com
@@ -143,6 +143,7 @@ def urlparse(value) -> ParseResult:
143143
MEDIA_STORAGE_DOMAIN = urlparse(env("MEDIA_STORAGE_DOMAIN")) or APP_DOMAIN
144144
MANAGER_DASHBOARD_DOMAIN = urlparse(env("MANAGER_DASHBOARD_DOMAIN"))
145145
COMMUNITY_DASHBOARD_DOMAIN = urlparse(env("COMMUNITY_DASHBOARD_DOMAIN"))
146+
WEBSITE_DOMAIN = urlparse(env("WEBSITE_DOMAIN"))
146147
APP_ENVIRONMENT = env("APP_ENVIRONMENT").upper()
147148
APP_TYPE = env("APP_TYPE").upper()
148149
APP_RELEASE = env("APP_RELEASE") or GIT_HELPER.commit_sha
@@ -434,6 +435,8 @@ def urlparse(value) -> ParseResult:
434435
APP_DOMAIN.geturl(),
435436
MANAGER_DASHBOARD_DOMAIN.geturl(),
436437
COMMUNITY_DASHBOARD_DOMAIN.geturl(),
438+
# NOTE: We might not need to enable trusted origin for website
439+
# WEBSITE_DOMAIN.geturl(),
437440
*env("MAPSWIPE_ADDITIONAL_TRUSTED_ORIGINS"),
438441
]
439442

schema.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1664,6 +1664,7 @@ type ProjectType implements UserResourceTypeMixin & ProjectExportAssetTypeMixin
16641664
How many people do you want to see every tile before you consider it finished?
16651665
"""
16661666
verificationNumber: Int!
1667+
websiteUrl: String!
16671668
}
16681669

16691670
type ProjectTypeAreaStatsType {

0 commit comments

Comments
 (0)