Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
284 changes: 0 additions & 284 deletions backend/apps/common/management/commands/generate_sitemap.py

This file was deleted.

5 changes: 5 additions & 0 deletions backend/apps/github/models/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ class Meta:
created_at = models.DateTimeField(verbose_name="Created at")
updated_at = models.DateTimeField(verbose_name="Updated at")

@property
def nest_key(self):
"""Nest key."""
return self.login

@property
def title(self) -> str:
"""Entity title."""
Expand Down
10 changes: 10 additions & 0 deletions backend/apps/github/models/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from django.db import models

from apps.common.models import BulkSaveModel, TimestampedModel
from apps.common.utils import get_absolute_url
from apps.github.constants import (
GITHUB_ACTIONS_USER_LOGIN,
GITHUB_GHOST_USER_LOGIN,
Expand Down Expand Up @@ -53,6 +54,11 @@ def issues(self):
"""
return self.created_issues.all()

@property
def nest_url(self) -> str:
"""Get Nest URL for user."""
return get_absolute_url(f"members/{self.nest_key}")

@property
def releases(self):
"""Get releases created by the user.
Expand Down Expand Up @@ -86,6 +92,10 @@ def from_github(self, gh_user) -> None:

self.is_bot = gh_user.type == "Bot"

def get_absolute_url(self):
"""Get absolute URL for the user."""
return self.nest_url

@staticmethod
def bulk_save(users, fields=None) -> None:
"""Bulk save users."""
Expand Down
7 changes: 6 additions & 1 deletion backend/apps/owasp/models/chapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from apps.common.index import IndexBase
from apps.common.models import BulkSaveModel, TimestampedModel
from apps.common.open_ai import OpenAi
from apps.common.utils import join_values
from apps.common.utils import get_absolute_url, join_values
from apps.core.models.prompt import Prompt
from apps.owasp.models.common import RepositoryBasedEntityModel
from apps.owasp.models.managers.chapter import ActiveChapterManager
Expand Down Expand Up @@ -71,6 +71,11 @@ def nest_key(self):
"""Get Nest key."""
return self.key.replace("www-chapter-", "")

@property
def nest_url(self) -> str:
"""Get Nest URL for chapter."""
return get_absolute_url(f"chapters/{self.nest_key}")

@staticmethod
@lru_cache
def active_chapters_count():
Expand Down
4 changes: 4 additions & 0 deletions backend/apps/owasp/models/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,10 @@ def from_github(self, repository) -> None:
self.created_at = repository.created_at
self.updated_at = repository.updated_at

def get_absolute_url(self):
"""Get absolute URL for project."""
return self.nest_url

def save(self, *args, **kwargs) -> None:
"""Save the project instance."""
if self.is_active and not self.summary and (prompt := Prompt.get_owasp_project_summary()):
Expand Down
Empty file.
11 changes: 11 additions & 0 deletions backend/apps/sitemap/templates/sitemap.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for url in urlset %}
<url>
<loc>{{ url.location|escape }}</loc>
{% if url.lastmod %}<lastmod>{{ url.lastmod|date:"c" }}</lastmod>{% endif %}
{% if url.changefreq %}<changefreq>{{ url.changefreq }}</changefreq>{% endif %}
{% if url.priority %}<priority>{{ url.priority }}</priority>{% endif %}
</url>
{% endfor %}
</urlset>
Loading