Showing 100 of 573 unique parts/colors ( total quantity)
DJDT

Time

Resource usage

Resource Value
User CPU time 416.780 msec
System CPU time 9.141 msec
Total CPU time 425.921 msec
Elapsed time 474.633 msec
Context switches 521 voluntary, 1 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

SQL queries from 1 connection

  • default 38.74 ms (18 queries including 4 similar )
Query Timeline Time (ms) Action
SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partmaterial"."id",
       "lego_partmaterial"."name",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_part"
 INNER JOIN
"lego_partcategory"
    ON
("lego_part"."part_cat_id" = "lego_partcategory"."id")
 INNER JOIN
"lego_partmaterial"
    ON
("lego_part"."part_material_id" = "lego_partmaterial"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
("lego_part"."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 WHERE
"lego_part"."part_num" = 'minifigs'
 LIMIT
21
SELECT ••• FROM "lego_part" INNER JOIN "lego_partcategory" ON ("lego_part"."part_cat_id" = "lego_partcategory"."id") INNER JOIN "lego_partmaterial" ON ("lego_part"."part_material_id" = "lego_partmaterial"."id") LEFT OUTER JOIN "lego_partoverlay" ON ("lego_part"."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") WHERE "lego_part"."part_num" = 'minifigs' LIMIT 21
0.58

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(122)
  part = get_or_none(Part.all_objects, part_num=slug1)

/home/nathan/rb/site/./rb/utils.py in get_or_none(605)
  return manager.get(**kwargs)

SELECT "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug"
  FROM
"lego_partcategory"
 WHERE
"lego_partcategory"."slug" = 'minifigs'
 LIMIT
21
SELECT ••• FROM "lego_partcategory" WHERE "lego_partcategory"."slug" = 'minifigs' LIMIT 21
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(131)
  part_cat = get_or_none(PartCategory.objects, slug=slug)

/home/nathan/rb/site/./rb/utils.py in get_or_none(605)
  return manager.get(**kwargs)

SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg"
  FROM
"lego_part"
 INNER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 WHERE
("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (13))
 LIMIT
1000
SELECT ••• FROM "lego_part" INNER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") WHERE ("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (13)) LIMIT 1000
15.46

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(146)
  search_results = get_part_search(request, params)

/home/nathan/rb/site/./lego/views/search.py in get_part_search(179)
  results = sort_user_parts(request, results)

/home/nathan/rb/site/./lego/filters.py in sort_user_parts(1588)
  return PartSorter.sort_user_parts(user_parts, sort_by, sort_dir, prefix=prefix, group_by=group_by, group_by_db=group_by_db)

/home/nathan/rb/site/./lego/constants/parts.py in sort_user_parts(29)
  if len(parts.select_related(None).prefetch_related(None)) <= 1:

SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partmaterial"."id",
       "lego_partmaterial"."name",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_part"
 INNER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 INNER JOIN
"lego_partcategory"
    ON
("lego_part"."part_cat_id" = "lego_partcategory"."id")
 INNER JOIN
"lego_partmaterial"
    ON
("lego_part"."part_material_id" = "lego_partmaterial"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
("lego_part"."id" = "lego_partoverlay"."part_id")
 WHERE
("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (13))
 LIMIT
1000
SELECT ••• FROM "lego_part" INNER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") INNER JOIN "lego_partcategory" ON ("lego_part"."part_cat_id" = "lego_partcategory"."id") INNER JOIN "lego_partmaterial" ON ("lego_part"."part_material_id" = "lego_partmaterial"."id") LEFT OUTER JOIN "lego_partoverlay" ON ("lego_part"."id" = "lego_partoverlay"."part_id") WHERE ("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (13)) LIMIT 1000
5.61

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(146)
  search_results = get_part_search(request, params)

/home/nathan/rb/site/./lego/views/search.py in get_part_search(179)
  results = sort_user_parts(request, results)

/home/nathan/rb/site/./lego/filters.py in sort_user_parts(1588)
  return PartSorter.sort_user_parts(user_parts, sort_by, sort_dir, prefix=prefix, group_by=group_by, group_by_db=group_by_db)

/home/nathan/rb/site/./lego/constants/parts.py in sort_user_parts(53)
  return sorted(parts, key=lambda x: x.sort_by_part_color(group_by=group_by), reverse=reverse)

SELECT "lego_element"."id",
       "lego_element"."part_id",
       "lego_element"."color_id",
       "lego_element"."element_id",
       "lego_element"."design_id",
       "lego_element"."descr",
       "lego_element"."color_descr",
       "lego_element"."last_download_attempt",
       "lego_element"."num_download_attempts",
       "lego_element"."is_export_id",
       "lego_element"."is_active"
  FROM
"lego_element"
 INNER JOIN
"lego_color"
    ON
("lego_element"."color_id" = "lego_color"."id")
 WHERE
("lego_element"."is_active" AND "lego_element"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722))
 ORDER BY
"lego_color"."name" ASC, "lego_element"."element_id" ASC
SELECT ••• FROM "lego_element" INNER JOIN "lego_color" ON ("lego_element"."color_id" = "lego_color"."id") WHERE ("lego_element"."is_active" AND "lego_element"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722)) ORDER BY "lego_color"."name" ASC, "lego_element"."element_id" ASC
2.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
"lego_partcolorstats"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722)
SELECT ••• FROM "lego_partcolorstats" WHERE "lego_partcolorstats"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722)
1.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

SELECT "lego_partcost"."id",
       "lego_partcost"."part_id",
       "lego_partcost"."color_id",
       "lego_partcost"."is_used",
       "lego_partcost"."cost_avg",
       "lego_partcost"."cost_min",
       "lego_partcost"."cost_max",
       "lego_partcost"."cost_count"
  FROM
"lego_partcost"
 WHERE
"lego_partcost"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722)
SELECT ••• FROM "lego_partcost" WHERE "lego_partcost"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722)
1.34

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722))
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (2871, 7167, 8796, 27920, 28835, 4306, 3356, 2021, 32499, 9958, 4704, 2869, 65560, 3754, 3946, 634, 608, 1628, 28836, 1287, 27049, 1557, 70959, 32158, 31063, 31065, 35231, 51354, 42354, 35230, 37983, 37984, 34355, 66379, 36215, 3539, 59365, 21156, 20406, 1550, 24095, 21708, 19735, 14298, 65520, 13625, 17033, 8497, 61731, 64732, 69500, 61812, 67402, 61795, 61784, 63427, 1413, 35572, 28692, 15098, 31416, 11232, 9196, 19863, 10133, 20800, 3016, 21561, 8730, 7671, 6183, 39552, 27656, 18035, 19462, 29159, 27655, 36633, 11537, 39900, 41489, 3990, 1000, 27746, 31117, 20700, 67041, 63050, 66041, 48808, 39243, 35233, 13770, 36634, 36696, 22531, 24243, 40922, 16598, 3722))
0.78

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

select 0 as id,
       part_id,
       color_id
  from
lego_partcolorstats a
 where
num_set_parts = (
        select max(num_set_parts)
          from
lego_partcolorstats b
         where
a.part_id=b.part_id
           and
num_sets>0
       )
   and
num_sets>0
   and
part_id in (2871,7167,8796,27920,28835,4306,3356,2021,32499,9958,4704,2869,65560,3754,3946,634,608,1628,28836,1287,27049,1557,70959,32158,31063,31065,35231,51354,42354,35230,37983,37984,34355,66379,36215,3539,59365,21156,20406,1550,24095,21708,19735,14298,65520,13625,17033,8497,61731,64732,69500,61812,67402,61795,61784,63427,1413,35572,28692,15098,31416,11232,9196,19863,10133,20800,3016,21561,8730,7671,6183,39552,27656,18035,19462,29159,27655,36633,11537,39900,41489,3990,1000,27746,31117,20700,67041,63050,66041,48808,39243,35233,13770,36634,36696,22531,24243,40922,16598,3722)
select 0 as id, part_id, color_id from lego_partcolorstats a where num_set_parts = (select max(num_set_parts) from lego_partcolorstats b where a.part_id=b.part_id and num_sets>0) and num_sets>0 and part_id in (2871,7167,8796,27920,28835,4306,3356,2021,32499,9958,4704,2869,65560,3754,3946,634,608,1628,28836,1287,27049,1557,70959,32158,31063,31065,35231,51354,42354,35230,37983,37984,34355,66379,36215,3539,59365,21156,20406,1550,24095,21708,19735,14298,65520,13625,17033,8497,61731,64732,69500,61812,67402,61795,61784,63427,1413,35572,28692,15098,31416,11232,9196,19863,10133,20800,3016,21561,8730,7671,6183,39552,27656,18035,19462,29159,27655,36633,11537,39900,41489,3990,1000,27746,31117,20700,67041,63050,66041,48808,39243,35233,13770,36634,36696,22531,24243,40922,16598,3722)
0.55

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(207)
  Part.attach_most_common_color_to_parts(search_results)

/home/nathan/rb/site/./lego/models/parts.py in attach_most_common_color_to_parts(341)
  pcs_map = {p.part_id:p.color_id for p in pcs}

SELECT DISTINCT
    ON
("lego_partcolorstats"."color_id") "lego_partcolorstats"."color_id"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."y2" >= 2021)
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."y2" >= 2021)
9.91

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(330)
  context['adv_form'] = AdvancedSearchPartsForm(params.copy(), user=request.user)

/home/nathan/rb/site/./lego/forms/parts.py in __init__(672)
  self.fields['exists_in_color'].choices = Color.get_color_options(True)

/home/nathan/rb/site/./lego/models/colors.py in get_color_options(105)
  current = cls.get_current_colors()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(104)
  caches[cache_key].set(method_key, result)

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/hash.py in set(344)
  return self._run_cmd("set", key, False, *args, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/hash.py in _run_cmd(322)
  return self._safely_run_func(client, func, default_val, *args, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/hash.py in _safely_run_func(211)
  result = func(*args, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/base.py in set(1424)
  return client.set(key, value, expire=expire, noreply=noreply, flags=flags)

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/base.py in set(475)
  return self._store_cmd(b"set", {key: value}, expire, noreply, flags=flags)[key]

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/base.py in _store_cmd(1196)
  data, data_flags = self.serde.serialize(key, data)

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/serde.py in serialize(119)
  return self._serialize_func(key, value)

/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/serde.py in _python_memcache_serializer(58)
  pickler.dump(value)

SELECT "lego_color"."id",
       "lego_color"."name",
       "lego_color"."rgb",
       "lego_color"."is_trans",
       "lego_color"."fuzzy_color_id",
       "lego_color"."is_active"
  FROM
"lego_color"
 WHERE
"lego_color"."is_active"
 ORDER BY
"lego_color"."name" ASC
SELECT ••• FROM "lego_color" WHERE "lego_color"."is_active" ORDER BY "lego_color"."name" ASC
0.26

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(330)
  context['adv_form'] = AdvancedSearchPartsForm(params.copy(), user=request.user)

/home/nathan/rb/site/./lego/forms/parts.py in __init__(672)
  self.fields['exists_in_color'].choices = Color.get_color_options(True)

/home/nathan/rb/site/./lego/models/colors.py in get_color_options(110)
  for color in colors:

SELECT "rb_sitesettings"."id",
       "rb_sitesettings"."name",
       "rb_sitesettings"."value"
  FROM
"rb_sitesettings"
 WHERE
"rb_sitesettings"."name" = 'site_message'
 LIMIT
21
SELECT ••• FROM "rb_sitesettings" WHERE "rb_sitesettings"."name" = 'site_message' LIMIT 21
0.10

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/rb/site/./rb/templatetags/rb_settings.py in site_message(147)
  message = SiteSettings.get_site_message()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./rb/models/site.py in get_site_message(24)
  setting = cls.objects.get(name=SiteSettings.SITE_MESSAGE)

340
341 <body class="{% block body-class %}{{ request.user.get_body_classes }}{% endblock body-class %}">
342
343 {% site_message %}
344 <div id="wrapper" class="{% block wrapper_class %}{% endblock wrapper_class %} {% if request.user.is_anonymous %}{% else %}{{ request.user.get_personalisation_options.max_width }}{% endif %}">
345
346
347 <div id="topBar" class="hidden-sm hidden-xs">

/home/nathan/rb/site/rb/templates/rb/base_root.html

SELECT "countries_plus_country"."iso",
       "countries_plus_country"."iso3",
       "countries_plus_country"."iso_numeric",
       "countries_plus_country"."fips",
       "countries_plus_country"."name",
       "countries_plus_country"."capital",
       "countries_plus_country"."area",
       "countries_plus_country"."population",
       "countries_plus_country"."continent",
       "countries_plus_country"."tld",
       "countries_plus_country"."currency_code",
       "countries_plus_country"."currency_symbol",
       "countries_plus_country"."currency_name",
       "countries_plus_country"."phone",
       "countries_plus_country"."postal_code_format",
       "countries_plus_country"."postal_code_regex",
       "countries_plus_country"."languages",
       "countries_plus_country"."geonameid",
       "countries_plus_country"."neighbours",
       "countries_plus_country"."equivalent_fips_code"
  FROM
"countries_plus_country"
 WHERE
"countries_plus_country"."iso" = 'US'
 LIMIT
21
SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/rb/site/./rb/templatetags/rb_geo.py in geo_currency(20)
  geo_data = user.geo.get_user_currency()

/home/nathan/rb/site/./geo/geo.py in get_user_currency(252)
  country = Country.objects.get(iso=country_code)

412 </a>
413 </li>
414 <li class="hidden-xs">
415 {% geo_currency request.user %}
416 </li>
417 {% comment %}
418 <li class="hidden-xs hidden-sm">
419 <a href={% if request.user.is_authenticated %}"{% url 'user_profile_settings' request.user.get_username %}#personalisation"{% else %}"#" onclick="return false;"{% endif %} title="All date/times are being converted to this timezone">{% get_user_timezone request.user %}</a>

/home/nathan/rb/site/rb/templates/rb/base_root.html

SELECT "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug"
  FROM
"lego_partcategory"
 ORDER BY
"lego_partcategory"."name" ASC
SELECT ••• FROM "lego_partcategory" ORDER BY "lego_partcategory"."name" ASC
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in render(204)
  c = self.get_render(context).flatten()

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/templatetags/crispy_forms_tags.py in get_render(120)
  actual_form.form_html = helper.render_layout(

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/helper.py in render_layout(301)
  html = self.layout.render(form, self.form_style, context, template_pack=template_pack)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in render(135)
  return self.get_rendered_fields(form, form_style, context, template_pack, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in get_rendered_fields(96)
  return "".join(

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in <genexpr>(97)
  render_field(field, form, form_style, context, template_pack=template_pack, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/utils.py in render_field(66)
  return field.render(form, form_style, context, template_pack=template_pack)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in render(367)
  fields = self.get_rendered_fields(form, form_style, context, template_pack, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in get_rendered_fields(96)
  return "".join(

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in <genexpr>(97)
  render_field(field, form, form_style, context, template_pack=template_pack, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/utils.py in render_field(66)
  return field.render(form, form_style, context, template_pack=template_pack)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in render(367)
  fields = self.get_rendered_fields(form, form_style, context, template_pack, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in get_rendered_fields(96)
  return "".join(

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in <genexpr>(97)
  render_field(field, form, form_style, context, template_pack=template_pack, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/utils.py in render_field(66)
  return field.render(form, form_style, context, template_pack=template_pack)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in render(457)
  return self.get_rendered_fields(

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in get_rendered_fields(96)
  return "".join(

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/layout.py in <genexpr>(97)
  render_field(field, form, form_style, context, template_pack=template_pack, **kwargs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/utils.py in render_field(139)
  html = template.render(context)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_all_sorted_choices(156)
  return [('', 'Category')] + [(x.id, x.name) for x in cats]

9 <div class="controls {% for offset in bootstrap_checkbox_offsets %}{{ offset }} {% endfor %}{{ field_class }}">
10 {% endif %}
11 {% endif %}
12 <{% if tag %}{{ tag }}{% else %}div{% endif %} id="div_{{ field.auto_id }}" {% if not field|is_checkbox %}class="form-group{% else %}class="checkbox{% endif %}{% if wrapper_class %} {{ wrapper_class }}{% endif %}{% if form_show_errors%}{% if field.errors %} has-error{% endif %}{% endif %}{% if field.css_classes %} {{ field.css_classes }}{% endif %}">
13 {% if field.label and not field|is_checkbox and form_show_labels %}
14 <label for="{{ field.id_for_label }}" class="control-label {{ label_class }}{% if field.field.required %} requiredField{% endif %}">
15 {{ field.label|safe }}{% if field.field.required %}<span class="asteriskField">*</span>{% endif %}
16 </label>

/home/nathan/venv_rb310/lib/python3.10/site-packages/crispy_forms/templates/bootstrap3/field.html

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type"
  FROM
"lego_partrelationship"
 WHERE
("lego_partrelationship"."part_child_id" = 14298 AND "lego_partrelationship"."rel_type" = 'S')
SELECT ••• FROM "lego_partrelationship" WHERE ("lego_partrelationship"."part_child_id" = 14298 AND "lego_partrelationship"."rel_type" = 'S')
2 similar queries.
0.20

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(607)
  similar_part = self.get_similar_part()

/home/nathan/rb/site/./lego/models/parts.py in get_similar_part(352)
  if parent_rel:

39 {% if params.exists_in_color or params.exists_in_color == '0' %}
40 {% render_part_in_color list_part params.exists_in_color_object list_part.get_part_html %}
41 {% else %}
42 {% render_part list_part list_part.get_part_html %}
43 {% endif %}
44
45 {% else %}
46 {% render_list_part list_part list_part.get_part_html %}

/home/nathan/rb/site/lego/templates/parts/render_parts_list.html

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."is_primary" AND "lego_partphoto"."part_id" = 14298)
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."is_primary" AND "lego_partphoto"."part_id" = 14298)
2 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(663)
  photo = self.get_photo(color=None)

/home/nathan/rb/site/./lego/models/parts.py in get_photo(506)
  if photos:

39 {% if params.exists_in_color or params.exists_in_color == '0' %}
40 {% render_part_in_color list_part params.exists_in_color_object list_part.get_part_html %}
41 {% else %}
42 {% render_part list_part list_part.get_part_html %}
43 {% endif %}
44
45 {% else %}
46 {% render_list_part list_part list_part.get_part_html %}

/home/nathan/rb/site/lego/templates/parts/render_parts_list.html

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type"
  FROM
"lego_partrelationship"
 WHERE
("lego_partrelationship"."part_child_id" = 24243 AND "lego_partrelationship"."rel_type" = 'S')
SELECT ••• FROM "lego_partrelationship" WHERE ("lego_partrelationship"."part_child_id" = 24243 AND "lego_partrelationship"."rel_type" = 'S')
2 similar queries.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(607)
  similar_part = self.get_similar_part()

/home/nathan/rb/site/./lego/models/parts.py in get_similar_part(352)
  if parent_rel:

39 {% if params.exists_in_color or params.exists_in_color == '0' %}
40 {% render_part_in_color list_part params.exists_in_color_object list_part.get_part_html %}
41 {% else %}
42 {% render_part list_part list_part.get_part_html %}
43 {% endif %}
44
45 {% else %}
46 {% render_list_part list_part list_part.get_part_html %}

/home/nathan/rb/site/lego/templates/parts/render_parts_list.html

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."is_primary" AND "lego_partphoto"."part_id" = 24243)
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."is_primary" AND "lego_partphoto"."part_id" = 24243)
2 similar queries.
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(663)
  photo = self.get_photo(color=None)

/home/nathan/rb/site/./lego/models/parts.py in get_photo(506)
  if photos:

39 {% if params.exists_in_color or params.exists_in_color == '0' %}
40 {% render_part_in_color list_part params.exists_in_color_object list_part.get_part_html %}
41 {% else %}
42 {% render_part list_part list_part.get_part_html %}
43 {% endif %}
44
45 {% else %}
46 {% render_list_part list_part list_part.get_part_html %}

/home/nathan/rb/site/lego/templates/parts/render_parts_list.html

Log messages

No messages logged.