Changeset View
Changeset View
Standalone View
Standalone View
swh/web/browse/snapshot_context.py
Show All 15 Lines | |||||
from django.utils.html import escape | from django.utils.html import escape | ||||
import sentry_sdk | import sentry_sdk | ||||
from swh.model.identifiers import ( | from swh.model.identifiers import ( | ||||
persistent_identifier, | persistent_identifier, | ||||
snapshot_identifier, | snapshot_identifier, | ||||
CONTENT, | CONTENT, | ||||
DIRECTORY, | DIRECTORY, | ||||
REVISION, | |||||
RELEASE, | |||||
SNAPSHOT, | |||||
) | ) | ||||
from swh.web.browse.utils import ( | from swh.web.browse.utils import ( | ||||
get_directory_entries, | get_directory_entries, | ||||
gen_directory_link, | gen_directory_link, | ||||
gen_revision_link, | gen_revision_link, | ||||
request_content, | request_content, | ||||
gen_content_link, | gen_content_link, | ||||
prepare_content_for_display, | prepare_content_for_display, | ||||
content_display_max_size, | content_display_max_size, | ||||
format_log_entries, | format_log_entries, | ||||
gen_revision_log_link, | gen_revision_log_link, | ||||
gen_release_link, | gen_release_link, | ||||
get_readme_to_display, | get_readme_to_display, | ||||
gen_snapshot_link, | gen_snapshot_link, | ||||
) | ) | ||||
from swh.web.common import service, highlightjs | from swh.web.common import service, highlightjs | ||||
from swh.web.common.exc import handle_view_exception, NotFoundExc, BadInputExc | from swh.web.common.exc import handle_view_exception, NotFoundExc, BadInputExc | ||||
from swh.web.common.identifiers import get_swh_persistent_ids | from swh.web.common.identifiers import get_swhids_info | ||||
from swh.web.common.origin_visits import get_origin_visit | from swh.web.common.origin_visits import get_origin_visit | ||||
from swh.web.common.typing import ( | from swh.web.common.typing import ( | ||||
OriginInfo, | OriginInfo, | ||||
SnapshotBranchInfo, | SnapshotBranchInfo, | ||||
SnapshotReleaseInfo, | SnapshotReleaseInfo, | ||||
SnapshotContext, | SnapshotContext, | ||||
ContentMetadata, | ContentMetadata, | ||||
DirectoryMetadata, | DirectoryMetadata, | ||||
SWHObjectInfo, | |||||
) | ) | ||||
from swh.web.common.utils import ( | from swh.web.common.utils import ( | ||||
reverse, | reverse, | ||||
gen_path_info, | gen_path_info, | ||||
format_utc_iso_date, | format_utc_iso_date, | ||||
swh_object_icons, | swh_object_icons, | ||||
) | ) | ||||
from swh.web.config import get_config | from swh.web.config import get_config | ||||
▲ Show 20 Lines • Show All 686 Lines • ▼ Show 20 Lines | ): | ||||
revision_found = True | revision_found = True | ||||
if sha1_git is None and revision_id is not None: | if sha1_git is None and revision_id is not None: | ||||
try: | try: | ||||
service.lookup_revision(revision_id) | service.lookup_revision(revision_id) | ||||
except NotFoundExc: | except NotFoundExc: | ||||
revision_found = False | revision_found = False | ||||
swh_objects = [ | swh_objects = [ | ||||
{"type": "directory", "id": sha1_git}, | SWHObjectInfo(object_type=DIRECTORY, object_id=sha1_git), | ||||
{"type": "revision", "id": revision_id}, | SWHObjectInfo(object_type=REVISION, object_id=revision_id), | ||||
{"type": "snapshot", "id": snapshot_id}, | SWHObjectInfo(object_type=SNAPSHOT, object_id=snapshot_id), | ||||
] | ] | ||||
visit_date = None | visit_date = None | ||||
visit_type = None | visit_type = None | ||||
if visit_info: | if visit_info: | ||||
visit_date = format_utc_iso_date(visit_info["date"]) | visit_date = format_utc_iso_date(visit_info["date"]) | ||||
visit_type = visit_info["type"] | visit_type = visit_info["type"] | ||||
release_id = snapshot_context["release_id"] | release_id = snapshot_context["release_id"] | ||||
browse_rel_link = None | browse_rel_link = None | ||||
if release_id: | if release_id: | ||||
swh_objects.append({"type": "release", "id": release_id}) | swh_objects.append(SWHObjectInfo(object_type=RELEASE, object_id=release_id)) | ||||
browse_rel_link = gen_release_link(release_id) | browse_rel_link = gen_release_link(release_id) | ||||
dir_metadata = DirectoryMetadata( | dir_metadata = DirectoryMetadata( | ||||
object_type=DIRECTORY, | object_type=DIRECTORY, | ||||
object_id=sha1_git, | |||||
directory=sha1_git, | directory=sha1_git, | ||||
directory_url=browse_dir_link, | directory_url=browse_dir_link, | ||||
nb_files=nb_files, | nb_files=nb_files, | ||||
nb_dirs=nb_dirs, | nb_dirs=nb_dirs, | ||||
sum_file_sizes=sum_file_sizes, | sum_file_sizes=sum_file_sizes, | ||||
root_directory=root_directory, | |||||
path=dir_path, | path=dir_path, | ||||
revision=revision_id, | revision=revision_id, | ||||
revision_found=revision_found, | revision_found=revision_found, | ||||
revision_url=browse_rev_link, | revision_url=browse_rev_link, | ||||
release=release_id, | release=release_id, | ||||
release_url=browse_rel_link, | release_url=browse_rel_link, | ||||
snapshot=snapshot_id, | snapshot=snapshot_id, | ||||
snapshot_url=browse_snp_link, | snapshot_url=browse_snp_link, | ||||
origin_url=origin_url, | origin_url=origin_url, | ||||
visit_date=visit_date, | visit_date=visit_date, | ||||
visit_type=visit_type, | visit_type=visit_type, | ||||
) | ) | ||||
vault_cooking = { | vault_cooking = { | ||||
"directory_context": True, | "directory_context": True, | ||||
"directory_id": sha1_git, | "directory_id": sha1_git, | ||||
"revision_context": True, | "revision_context": True, | ||||
"revision_id": revision_id, | "revision_id": revision_id, | ||||
} | } | ||||
swh_ids = get_swh_persistent_ids(swh_objects, snapshot_context) | swhids_info = get_swhids_info(swh_objects, snapshot_context, dir_metadata) | ||||
dir_path = "/".join([bc["name"] for bc in breadcrumbs]) + "/" | dir_path = "/".join([bc["name"] for bc in breadcrumbs]) + "/" | ||||
context_found = "snapshot: %s" % snapshot_context["snapshot_id"] | context_found = "snapshot: %s" % snapshot_context["snapshot_id"] | ||||
if origin_info: | if origin_info: | ||||
context_found = "origin: %s" % origin_info["url"] | context_found = "origin: %s" % origin_info["url"] | ||||
heading = "Directory - %s - %s - %s" % ( | heading = "Directory - %s - %s - %s" % ( | ||||
dir_path, | dir_path, | ||||
snapshot_context["branch"], | snapshot_context["branch"], | ||||
Show All 20 Lines | return render( | ||||
"breadcrumbs": breadcrumbs if root_directory else [], | "breadcrumbs": breadcrumbs if root_directory else [], | ||||
"top_right_link": top_right_link, | "top_right_link": top_right_link, | ||||
"readme_name": readme_name, | "readme_name": readme_name, | ||||
"readme_url": readme_url, | "readme_url": readme_url, | ||||
"readme_html": readme_html, | "readme_html": readme_html, | ||||
"snapshot_context": snapshot_context, | "snapshot_context": snapshot_context, | ||||
"vault_cooking": vault_cooking, | "vault_cooking": vault_cooking, | ||||
"show_actions_menu": True, | "show_actions_menu": True, | ||||
"swh_ids": swh_ids, | "swhids_info": swhids_info, | ||||
}, | }, | ||||
) | ) | ||||
def browse_snapshot_content( | def browse_snapshot_content( | ||||
request, | request, | ||||
snapshot_id=None, | snapshot_id=None, | ||||
origin_url=None, | origin_url=None, | ||||
▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | ): | ||||
browse_rev_link = gen_revision_link(revision_id) | browse_rev_link = gen_revision_link(revision_id) | ||||
browse_dir_link = gen_directory_link(directory_id) | browse_dir_link = gen_directory_link(directory_id) | ||||
content_checksums = content_data.get("checksums", {}) | content_checksums = content_data.get("checksums", {}) | ||||
swh_objects = [ | swh_objects = [ | ||||
{"type": "content", "id": content_checksums.get("sha1_git")}, | SWHObjectInfo(object_type=CONTENT, object_id=content_checksums.get("sha1_git")), | ||||
{"type": "directory", "id": directory_id}, | SWHObjectInfo(object_type=DIRECTORY, object_id=directory_id), | ||||
{"type": "revision", "id": revision_id}, | SWHObjectInfo(object_type=REVISION, object_id=revision_id), | ||||
{"type": "snapshot", "id": snapshot_id}, | SWHObjectInfo(object_type=SNAPSHOT, object_id=snapshot_id), | ||||
] | ] | ||||
visit_date = None | visit_date = None | ||||
visit_type = None | visit_type = None | ||||
if visit_info: | if visit_info: | ||||
visit_date = format_utc_iso_date(visit_info["date"]) | visit_date = format_utc_iso_date(visit_info["date"]) | ||||
visit_type = visit_info["type"] | visit_type = visit_info["type"] | ||||
release_id = snapshot_context["release_id"] | release_id = snapshot_context["release_id"] | ||||
browse_rel_link = None | browse_rel_link = None | ||||
if release_id: | if release_id: | ||||
swh_objects.append({"type": "release", "id": release_id}) | swh_objects.append(SWHObjectInfo(object_type=RELEASE, object_id=release_id)) | ||||
browse_rel_link = gen_release_link(release_id) | browse_rel_link = gen_release_link(release_id) | ||||
content_metadata = ContentMetadata( | content_metadata = ContentMetadata( | ||||
object_type=CONTENT, | object_type=CONTENT, | ||||
object_id=content_checksums.get("sha1_git"), | |||||
sha1=content_checksums.get("sha1"), | sha1=content_checksums.get("sha1"), | ||||
sha1_git=content_checksums.get("sha1_git"), | sha1_git=content_checksums.get("sha1_git"), | ||||
sha256=content_checksums.get("sha256"), | sha256=content_checksums.get("sha256"), | ||||
blake2s256=content_checksums.get("blake2s256"), | blake2s256=content_checksums.get("blake2s256"), | ||||
content_url=browse_content_link, | content_url=browse_content_link, | ||||
mimetype=content_data.get("mimetype"), | mimetype=content_data.get("mimetype"), | ||||
encoding=content_data.get("encoding"), | encoding=content_data.get("encoding"), | ||||
size=filesizeformat(content_data.get("length", 0)), | size=filesizeformat(content_data.get("length", 0)), | ||||
language=content_data.get("language"), | language=content_data.get("language"), | ||||
licenses=content_data.get("licenses"), | licenses=content_data.get("licenses"), | ||||
root_directory=root_directory, | |||||
path=f"/{filepath}", | path=f"/{filepath}", | ||||
filename=filename, | filename=filename, | ||||
directory=directory_id, | directory=directory_id, | ||||
directory_url=browse_dir_link, | directory_url=browse_dir_link, | ||||
revision=revision_id, | revision=revision_id, | ||||
revision_url=browse_rev_link, | revision_url=browse_rev_link, | ||||
release=release_id, | release=release_id, | ||||
release_url=browse_rel_link, | release_url=browse_rel_link, | ||||
snapshot=snapshot_id, | snapshot=snapshot_id, | ||||
snapshot_url=gen_snapshot_link(snapshot_id), | snapshot_url=gen_snapshot_link(snapshot_id), | ||||
origin_url=origin_url, | origin_url=origin_url, | ||||
visit_date=visit_date, | visit_date=visit_date, | ||||
visit_type=visit_type, | visit_type=visit_type, | ||||
) | ) | ||||
swh_ids = get_swh_persistent_ids(swh_objects, snapshot_context) | swhids_info = get_swhids_info(swh_objects, snapshot_context, content_metadata) | ||||
content_path = "/".join([bc["name"] for bc in breadcrumbs]) | content_path = "/".join([bc["name"] for bc in breadcrumbs]) | ||||
context_found = "snapshot: %s" % snapshot_context["snapshot_id"] | context_found = "snapshot: %s" % snapshot_context["snapshot_id"] | ||||
if origin_info: | if origin_info: | ||||
context_found = "origin: %s" % origin_info["url"] | context_found = "origin: %s" % origin_info["url"] | ||||
heading = "Content - %s - %s - %s" % ( | heading = "Content - %s - %s - %s" % ( | ||||
content_path, | content_path, | ||||
snapshot_context["branch"], | snapshot_context["branch"], | ||||
Show All 23 Lines | return render( | ||||
"mimetype": content_data.get("mimetype"), | "mimetype": content_data.get("mimetype"), | ||||
"language": content_data.get("language"), | "language": content_data.get("language"), | ||||
"available_languages": available_languages, | "available_languages": available_languages, | ||||
"breadcrumbs": breadcrumbs if root_directory else [], | "breadcrumbs": breadcrumbs if root_directory else [], | ||||
"top_right_link": top_right_link, | "top_right_link": top_right_link, | ||||
"snapshot_context": snapshot_context, | "snapshot_context": snapshot_context, | ||||
"vault_cooking": None, | "vault_cooking": None, | ||||
"show_actions_menu": True, | "show_actions_menu": True, | ||||
"swh_ids": swh_ids, | "swhids_info": swhids_info, | ||||
"error_code": content_data.get("error_code"), | "error_code": content_data.get("error_code"), | ||||
"error_message": content_data.get("error_message"), | "error_message": content_data.get("error_message"), | ||||
"error_description": content_data.get("error_description"), | "error_description": content_data.get("error_description"), | ||||
}, | }, | ||||
status=content_data.get("error_code", 200), | status=content_data.get("error_code", 200), | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | def browse_snapshot_log(request, snapshot_id=None, origin_url=None, timestamp=None): | ||||
} | } | ||||
if origin_info: | if origin_info: | ||||
revision_metadata["origin url"] = origin_info["url"] | revision_metadata["origin url"] = origin_info["url"] | ||||
revision_metadata["origin visit date"] = format_utc_iso_date(visit_info["date"]) | revision_metadata["origin visit date"] = format_utc_iso_date(visit_info["date"]) | ||||
revision_metadata["origin visit type"] = visit_info["type"] | revision_metadata["origin visit type"] = visit_info["type"] | ||||
swh_objects = [ | swh_objects = [ | ||||
{"type": "revision", "id": revision_id}, | SWHObjectInfo(object_type=REVISION, object_id=revision_id), | ||||
{"type": "snapshot", "id": snapshot_id}, | SWHObjectInfo(object_type=SNAPSHOT, object_id=snapshot_id), | ||||
] | ] | ||||
release_id = snapshot_context["release_id"] | release_id = snapshot_context["release_id"] | ||||
if release_id: | if release_id: | ||||
swh_objects.append({"type": "release", "id": release_id}) | swh_objects.append(SWHObjectInfo(object_type=RELEASE, object_id=release_id)) | ||||
browse_rel_link = gen_release_link(release_id) | browse_rel_link = gen_release_link(release_id) | ||||
revision_metadata["release"] = release_id | revision_metadata["release"] = release_id | ||||
revision_metadata["context-independent release"] = browse_rel_link | revision_metadata["context-independent release"] = browse_rel_link | ||||
swh_ids = get_swh_persistent_ids(swh_objects, snapshot_context) | swhids_info = get_swhids_info(swh_objects, snapshot_context) | ||||
context_found = "snapshot: %s" % snapshot_context["snapshot_id"] | context_found = "snapshot: %s" % snapshot_context["snapshot_id"] | ||||
if origin_info: | if origin_info: | ||||
context_found = "origin: %s" % origin_info["url"] | context_found = "origin: %s" % origin_info["url"] | ||||
heading = "Revision history - %s - %s" % (snapshot_context["branch"], context_found) | heading = "Revision history - %s - %s" % (snapshot_context["branch"], context_found) | ||||
return render( | return render( | ||||
request, | request, | ||||
"browse/revision-log.html", | "browse/revision-log.html", | ||||
{ | { | ||||
"heading": heading, | "heading": heading, | ||||
"swh_object_name": "Revisions history", | "swh_object_name": "Revisions history", | ||||
"swh_object_metadata": revision_metadata, | "swh_object_metadata": revision_metadata, | ||||
"revision_log": revision_log_data, | "revision_log": revision_log_data, | ||||
"revs_ordering": revs_ordering, | "revs_ordering": revs_ordering, | ||||
"next_log_url": next_log_url, | "next_log_url": next_log_url, | ||||
"prev_log_url": prev_log_url, | "prev_log_url": prev_log_url, | ||||
"breadcrumbs": None, | "breadcrumbs": None, | ||||
"top_right_link": None, | "top_right_link": None, | ||||
"snapshot_context": snapshot_context, | "snapshot_context": snapshot_context, | ||||
"vault_cooking": None, | "vault_cooking": None, | ||||
"show_actions_menu": True, | "show_actions_menu": True, | ||||
"swh_ids": swh_ids, | "swhids_info": swhids_info, | ||||
}, | }, | ||||
) | ) | ||||
def browse_snapshot_branches( | def browse_snapshot_branches( | ||||
request, snapshot_id=None, origin_url=None, timestamp=None | request, snapshot_id=None, origin_url=None, timestamp=None | ||||
): | ): | ||||
""" | """ | ||||
▲ Show 20 Lines • Show All 244 Lines • Show Last 20 Lines |