"""Sample artifact content for the Settings -> Demo Data button. Creates one artifact of every supported kind, owned by the requesting user, tagged "demo", with source "demo". """ SOURCE = "demo" TEXT_SAMPLES = [ ( "markdown", "Seed: Markdown Sample", "# Markdown Sample\n\nThis is a **seed** artifact demonstrating markdown rendering.\n\n- item one\n- item two\n", "markdown", ), ( "html_fragment", "Seed: HTML Fragment Sample", "

HTML Fragment

This is a seed HTML fragment artifact.

", "html-fragment", ), ( "html_full", "Seed: Full HTML Sample", "Seed Full HTML" "

Full HTML Doc

Seed artifact.

", "html-full", ), ( "deck", "Seed: Deck Sample", "

Slide One

Seed deck artifact.

" "

Slide Two

More content.

", "deck", ), ] SEED_PNG_BYTES = bytes.fromhex( "89504e470d0a1a0a0000000d494844520000000100000001080600000" "01f15c4890000000a49444154789c6360000002000155e59a1a0000000049454e44ae426082" ) SEED_PDF_BYTES = ( b"%PDF-1.1\n1 0 obj<>endobj\n" b"2 0 obj<>endobj\n" b"3 0 obj<>endobj\n" b"trailer<>\n" ) SEED_BIN_BYTES = b"\x00\x01\x02\x03seed-binary-data\xff\xfe" BINARY_SAMPLES = [ ("Seed: Image Sample", "seed_pixel.png", "image/png", SEED_PNG_BYTES, "image"), ("Seed: PDF Sample", "seed_doc.pdf", "application/pdf", SEED_PDF_BYTES, "pdf"), ("Seed: Binary Sample", "seed_data.bin", "application/octet-stream", SEED_BIN_BYTES, "binary"), ] def create_demo_artifacts(user, request): from django.core.files.uploadedfile import SimpleUploadedFile from .views import create_binary_artifact, create_text_artifact created = 0 for kind, title, content, tag in TEXT_SAMPLES: data = { "source": SOURCE, "title": title, "kind": kind, "content": content, "tags": ["demo", tag], } create_text_artifact(data, request, user) created += 1 for title, filename, content_type, file_bytes, tag in BINARY_SAMPLES: uploaded = SimpleUploadedFile(filename, file_bytes, content_type=content_type) data = { "source": SOURCE, "title": title, "file": uploaded, "tags": ["demo", tag], } create_binary_artifact(data, user) created += 1 return created