Skip to content

Commit

Permalink
improve project recommendation
Browse files Browse the repository at this point in the history
* create views and utils methods to recommend projects
* create api function to receive recommended projects in the frontend
* modify project filtering
* refactor recommend projects function

Issue: #1013
Signed-off-by: Ndibe Raymond Olisaemeka <rolisaemeka-ctr@wikimedia.org>
  • Loading branch information
Ndibe Raymond Olisaemeka committed Jun 2, 2024
1 parent 771ae09 commit 7ce8ea5
Show file tree
Hide file tree
Showing 7 changed files with 852 additions and 758 deletions.
5 changes: 3 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ repos:
files: zubhub_backend/.*\.py$

- repo: https://github.com/PyCQA/isort
rev: 5.11.5 # do not update this until our CI runner uses Python >=3.8.1
rev: 5.11.5
hooks:
- id: isort
args: ["--profile", "black"]
files: zubhub_backend/.*\.py$

- repo: https://github.com/PyCQA/flake8
rev: 5.0.4 # do not update this until our CI runner uses Python >=3.8.1
rev: 5.0.4
hooks:
- id: flake8
# use same max-line-length as black
Expand Down
105 changes: 65 additions & 40 deletions zubhub_backend/zubhub/projects/urls.py
Original file line number Diff line number Diff line change
@@ -1,46 +1,71 @@
from django.urls import path
from .views import *

from .views import (
AddCommentAPIView,
CategoryListAPIView,
DeleteCommentAPIView,
ProjectAutocompleteAPIView,
ProjectCreateAPIView,
ProjectDeleteAPIView,
ProjectDetailsAPIView,
ProjectListAPIView,
ProjectRecommendAPIView,
ProjectSearchAPIView,
ProjectTagAutocompleteAPIView,
ProjectTagSearchAPIView,
ProjectUpdateAPIView,
SavedProjectsAPIView,
StaffPickDetailsAPIView,
StaffPickListAPIView,
ToggleLikeAPIView,
ToggleSaveAPIView,
UnpublishCommentAPIView,
)

app_name = "projects"

urlpatterns = [
path('', ProjectListAPIView.as_view(), name='list_projects'),
path('tags/autocomplete/',
ProjectTagAutocompleteAPIView.as_view(),
name='autocomplete_tags'),
path('tags/search/', ProjectTagSearchAPIView.as_view(),
name='search_tags'),
path('autocomplete/',
ProjectAutocompleteAPIView.as_view(),
name='autocomplete_projects'),
path('search/', ProjectSearchAPIView.as_view(), name='search_projects'),
path('create/', ProjectCreateAPIView.as_view(), name='create_project'),
path('<uuid:pk>/update/',
ProjectUpdateAPIView.as_view(),
name='update_project'),
path('<uuid:pk>/delete/',
ProjectDeleteAPIView.as_view(),
name='delete_project'),
path('saved/', SavedProjectsAPIView.as_view(), name="saved_projects"),
path('<uuid:pk>/toggle-like/',
ToggleLikeAPIView.as_view(),
name="toggle_like"),
path('<uuid:pk>/toggle-save/',
ToggleSaveAPIView.as_view(),
name="toggle_save"),
path('<uuid:pk>/add-comment/',
AddCommentAPIView.as_view(),
name="add_comment"),
path('<int:pk>/unpublish-comment/',
UnpublishCommentAPIView.as_view(),
name="unpublish_comment"),
path('<int:pk>/delete-comment/',
DeleteCommentAPIView.as_view(),
name="delete_comment"),
path('<uuid:pk>/', ProjectDetailsAPIView.as_view(), name='detail_project'),
path('categories/', CategoryListAPIView.as_view(), name='category'),
path('staff-picks/', StaffPickListAPIView.as_view(), name="staff_picks"),
path('staff-picks/<uuid:pk>/',
StaffPickDetailsAPIView.as_view(),
name="staff_pick_details")
path("", ProjectListAPIView.as_view(), name="list_projects"),
path(
"tags/autocomplete/",
ProjectTagAutocompleteAPIView.as_view(),
name="autocomplete_tags",
),
path("tags/search/", ProjectTagSearchAPIView.as_view(), name="search_tags"),
path(
"autocomplete/",
ProjectAutocompleteAPIView.as_view(),
name="autocomplete_projects",
),
path("search/", ProjectSearchAPIView.as_view(), name="search_projects"),
path("create/", ProjectCreateAPIView.as_view(), name="create_project"),
path("<uuid:pk>/update/", ProjectUpdateAPIView.as_view(), name="update_project"),
path("<uuid:pk>/delete/", ProjectDeleteAPIView.as_view(), name="delete_project"),
path("saved/", SavedProjectsAPIView.as_view(), name="saved_projects"),
path("<uuid:pk>/toggle-like/", ToggleLikeAPIView.as_view(), name="toggle_like"),
path("<uuid:pk>/toggle-save/", ToggleSaveAPIView.as_view(), name="toggle_save"),
path("<uuid:pk>/add-comment/", AddCommentAPIView.as_view(), name="add_comment"),
path(
"<int:pk>/unpublish-comment/",
UnpublishCommentAPIView.as_view(),
name="unpublish_comment",
),
path(
"<int:pk>/delete-comment/",
DeleteCommentAPIView.as_view(),
name="delete_comment",
),
path("<uuid:pk>/", ProjectDetailsAPIView.as_view(), name="detail_project"),
path(
"<uuid:pk>/recommend/",
ProjectRecommendAPIView.as_view(),
name="recommend_projects",
),
path("categories/", CategoryListAPIView.as_view(), name="category"),
path("staff-picks/", StaffPickListAPIView.as_view(), name="staff_picks"),
path(
"staff-picks/<uuid:pk>/",
StaffPickDetailsAPIView.as_view(),
name="staff_pick_details",
),
]
Loading

0 comments on commit 7ce8ea5

Please sign in to comment.