Set tags
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
-- description: Add set tags
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- Create a table to define each set tags: an id and a name
|
||||
CREATE TABLE "bricktracker_metadata_tags" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
PRIMARY KEY("id")
|
||||
);
|
||||
|
||||
-- Create a table for the set tags
|
||||
CREATE TABLE "bricktracker_set_tags" (
|
||||
"id" TEXT NOT NULL,
|
||||
PRIMARY KEY("id"),
|
||||
FOREIGN KEY("id") REFERENCES "bricktracker_sets"("id")
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
@@ -1,12 +1,14 @@
|
||||
BEGIN transaction;
|
||||
|
||||
DROP TABLE IF EXISTS "bricktracker_metadata_statuses";
|
||||
DROP TABLE IF EXISTS "bricktracker_metadata_tags";
|
||||
DROP TABLE IF EXISTS "bricktracker_minifigures";
|
||||
DROP TABLE IF EXISTS "bricktracker_parts";
|
||||
DROP TABLE IF EXISTS "bricktracker_sets";
|
||||
DROP TABLE IF EXISTS "bricktracker_set_checkboxes";
|
||||
DROP TABLE IF EXISTS "bricktracker_set_statuses";
|
||||
DROP TABLE IF EXISTS "bricktracker_set_storages";
|
||||
DROP TABLE IF EXISTS "bricktracker_set_tags";
|
||||
DROP TABLE IF EXISTS "bricktracker_wishes";
|
||||
DROP TABLE IF EXISTS "inventory";
|
||||
DROP TABLE IF EXISTS "inventory_old";
|
||||
|
||||
@@ -12,6 +12,9 @@ SELECT
|
||||
{% block owners %}
|
||||
{% if owners %}{{ owners }},{% endif %}
|
||||
{% endblock %}
|
||||
{% block tags %}
|
||||
{% if tags %}{{ tags }},{% endif %}
|
||||
{% endblock %}
|
||||
{% block statuses %}
|
||||
{% if statuses %}{{ statuses }},{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -23,6 +23,11 @@ LEFT JOIN "bricktracker_set_statuses"
|
||||
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_set_statuses"."id"
|
||||
{% endif %}
|
||||
|
||||
{% if tags %}
|
||||
LEFT JOIN "bricktracker_set_tags"
|
||||
ON "bricktracker_sets"."id" IS NOT DISTINCT FROM "bricktracker_set_tags"."id"
|
||||
{% endif %}
|
||||
|
||||
-- LEFT JOIN + SELECT to avoid messing the total
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
|
||||
@@ -12,6 +12,9 @@ WHERE "bricktracker_set_owners"."id" IS NOT DISTINCT FROM '{{ id }}';
|
||||
DELETE FROM "bricktracker_set_statuses"
|
||||
WHERE "bricktracker_set_statuses"."id" IS NOT DISTINCT FROM '{{ id }}';
|
||||
|
||||
DELETE FROM "bricktracker_set_tags"
|
||||
WHERE "bricktracker_set_tags"."id" IS NOT DISTINCT FROM '{{ id }}';
|
||||
|
||||
DELETE FROM "bricktracker_minifigures"
|
||||
WHERE "bricktracker_minifigures"."id" IS NOT DISTINCT FROM '{{ id }}';
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
SELECT
|
||||
"bricktracker_metadata_tags"."id",
|
||||
"bricktracker_metadata_tags"."name"
|
||||
FROM "bricktracker_metadata_tags"
|
||||
|
||||
{% block where %}{% endblock %}
|
||||
@@ -0,0 +1,9 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
ALTER TABLE "bricktracker_set_tags"
|
||||
DROP COLUMN "tag_{{ id }}";
|
||||
|
||||
DELETE FROM "bricktracker_metadata_tags"
|
||||
WHERE "bricktracker_metadata_tags"."id" IS NOT DISTINCT FROM '{{ id }}';
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,14 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
ALTER TABLE "bricktracker_set_tags"
|
||||
ADD COLUMN "tag_{{ id }}" BOOLEAN NOT NULL DEFAULT 0;
|
||||
|
||||
INSERT INTO "bricktracker_metadata_tags" (
|
||||
"id",
|
||||
"name"
|
||||
) VALUES (
|
||||
'{{ id }}',
|
||||
'{{ name }}'
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1 @@
|
||||
{% extends 'set/metadata/tag/base.sql' %}
|
||||
@@ -0,0 +1,5 @@
|
||||
{% extends 'set/metadata/tag/base.sql' %}
|
||||
|
||||
{% block where %}
|
||||
WHERE "bricktracker_metadata_tags"."id" IS NOT DISTINCT FROM :id
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,3 @@
|
||||
UPDATE "bricktracker_metadata_tags"
|
||||
SET "{{field}}" = :value
|
||||
WHERE "bricktracker_metadata_tags"."id" IS NOT DISTINCT FROM :id
|
||||
@@ -0,0 +1,10 @@
|
||||
INSERT INTO "bricktracker_set_tags" (
|
||||
"id",
|
||||
"{{name}}"
|
||||
) VALUES (
|
||||
:set_id,
|
||||
:state
|
||||
)
|
||||
ON CONFLICT("id")
|
||||
DO UPDATE SET "{{name}}" = :state
|
||||
WHERE "bricktracker_set_tags"."id" IS NOT DISTINCT FROM :set_id
|
||||
Reference in New Issue
Block a user