Welcome

First you are gifted a small set.
Then you buy a set.
Then you buy a few kilos.
Suddenly your whole room is covered in boxes of lego.
--
Workbench - for BrickStack project progress and random stuff:
https://rebrickable.com/users/tstki/workbench/

BrickStack development (Open source):
https://github.com/tstki/BrickStack
There we go, as per the previous workbench update,


Columns can now be moved left/right, and which ones were visible and widths are also stored between sessions.
It'll also show the clicked column name (disabled) for clarity.
7 0 2 weeks ago

Recent Comments

  • Avatar image for Rebrickable user tstki
    2 weeks, 6 days ago tstki Level 13
    And its downloadable for free if you want to give it a try ^^
  • Avatar image for Rebrickable user tstki
    2 weeks, 6 days ago tstki Level 13
    Yeah, there's a huge list of posts in my earlier workbench posts that have details and screenshots :)
  • Avatar image for Rebrickable user tstki
    2 weeks, 6 days ago tstki Level 13
    Looks good, but isn't tetris usually a 10 wide field, not 6?
    And you're missing the important 1x4 piece ^^
  • Avatar image for Rebrickable user tstki
    3 weeks, 6 days ago tstki Level 13
    That 2x4 looks neat. i think ikea has a similar option.
    I should look into that.
  • Avatar image for Rebrickable user tstki
    4 weeks ago tstki Level 13
    Awesome set.
    Not for me,. but definitely a great addition to the building options

Netherlands

There are 235 users from this location

DJDT

Time

Resource usage

Resource Value
User CPU time 619.664 msec
System CPU time 17.982 msec
Total CPU time 637.646 msec
Elapsed time 4282.987 msec
Context switches 520 voluntary, 9 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

SQL queries from 1 connection

  • default 3664.69 ms (75 queries including 40 similar and 40 duplicates )
Query Timeline Time (ms) Action
SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "accounts_userplan"."user_id",
       "accounts_userplan"."plan_id",
       "accounts_userplan"."expiry_date",
       "accounts_userplan"."last_paid_date",
       "accounts_userplan"."is_subscription_active",
       "accounts_userplan"."subscription_period",
       "accounts_userplan"."payment_source",
       "accounts_userplan"."stripe_customer_id",
       "accounts_userplan"."stripe_subscription_id",
       "accounts_userplan"."paypal_subscription_id",
       "accounts_userplan"."base_free_plan_id",
       "accounts_userplan"."is_reminder_sent"
  FROM
"auth_user"
  LEFT OUTER JOIN
"accounts_userplan"
    ON
("auth_user"."id" = "accounts_userplan"."user_id")
 WHERE
("auth_user"."is_active" AND "auth_user"."username" = 'tstki')
 LIMIT
21
SELECT ••• FROM "auth_user" LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") WHERE ("auth_user"."is_active" AND "auth_user"."username" = 'tstki') LIMIT 21
8.83

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(331)
  profile_user = get_object_or_404(ProxyUser, username=username)

SELECT ("auth_user_groups"."user_id") AS "_prefetch_related_val_user_id",
       "auth_group"."id",
       "auth_group"."name"
  FROM
"auth_group"
 INNER JOIN
"auth_user_groups"
    ON
("auth_group"."id" = "auth_user_groups"."group_id")
 WHERE
"auth_user_groups"."user_id" IN (682046)
SELECT ••• FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (682046)
2 similar queries. Duplicated 2 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(331)
  profile_user = get_object_or_404(ProxyUser, username=username)

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 682046
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 682046 LIMIT 21
6 similar queries. Duplicated 6 times.
0.21

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(347)
  context['designer_ga_tracking_id'] = profile_user.designer.get_ga_tracking_id()

SELECT "accounts_userplan"."user_id",
       "accounts_userplan"."plan_id",
       "accounts_userplan"."expiry_date",
       "accounts_userplan"."last_paid_date",
       "accounts_userplan"."is_subscription_active",
       "accounts_userplan"."subscription_period",
       "accounts_userplan"."payment_source",
       "accounts_userplan"."stripe_customer_id",
       "accounts_userplan"."stripe_subscription_id",
       "accounts_userplan"."paypal_subscription_id",
       "accounts_userplan"."base_free_plan_id",
       "accounts_userplan"."is_reminder_sent"
  FROM
"accounts_userplan"
 WHERE
"accounts_userplan"."user_id" = 682046
 LIMIT
21
SELECT ••• FROM "accounts_userplan" WHERE "accounts_userplan"."user_id" = 682046 LIMIT 21
0.11

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(347)
  context['designer_ga_tracking_id'] = profile_user.designer.get_ga_tracking_id()

/home/nathan/rb/site/./lego/models/designers.py in get_ga_tracking_id(88)
  if self.plan.is_designer():

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

SELECT "plans_plan"."id",
       "plans_plan"."type",
       "plans_plan"."version",
       "plans_plan"."stripe_id",
       "plans_plan"."paypal_id",
       "plans_plan"."cost_single",
       "plans_plan"."cost_monthly",
       "plans_plan"."cost_yearly"
  FROM
"plans_plan"
 WHERE
"plans_plan"."id" = 5
 LIMIT
21
SELECT ••• FROM "plans_plan" WHERE "plans_plan"."id" = 5 LIMIT 21
0.07

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(347)
  context['designer_ga_tracking_id'] = profile_user.designer.get_ga_tracking_id()

/home/nathan/rb/site/./lego/models/designers.py in get_ga_tracking_id(88)
  if self.plan.is_designer():

/home/nathan/rb/site/./accounts/models/users.py in is_designer(381)
  return self.plan.is_designer()

SELECT "accounts_userprofilesection"."id",
       "accounts_userprofilesection"."user_id",
       "accounts_userprofilesection"."section",
       "accounts_userprofilesection"."order",
       "accounts_userprofilesection"."options"
  FROM
"accounts_userprofilesection"
 WHERE
"accounts_userprofilesection"."user_id" = 682046
 ORDER BY
"accounts_userprofilesection"."order" ASC
SELECT ••• FROM "accounts_userprofilesection" WHERE "accounts_userprofilesection"."user_id" = 682046 ORDER BY "accounts_userprofilesection"."order" ASC
0.27

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(355)
  if len(context['sections']) == 0:

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 682046
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 682046 LIMIT 21
2 similar queries. Duplicated 2 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1888)
  posts = UserPost.objects.filter(user=self.user).order_by('-timestamp')

SELECT "accounts_userpost"."id",
       "accounts_userpost"."user_id",
       "accounts_userpost"."timestamp",
       "accounts_userpost"."text",
       "accounts_userpost"."search_vector",
       "accounts_userpost"."is_active",
       "accounts_userpost"."is_locked"
  FROM
"accounts_userpost"
 WHERE
("accounts_userpost"."is_active" AND "accounts_userpost"."user_id" = 682046)
 ORDER BY
"accounts_userpost"."timestamp" DESC
SELECT ••• FROM "accounts_userpost" WHERE ("accounts_userpost"."is_active" AND "accounts_userpost"."user_id" = 682046) ORDER BY "accounts_userpost"."timestamp" DESC
10.02

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1889)
  post = posts[0] if posts else None

SELECT "accounts_userpoststatstotal"."post_id",
       "accounts_userpoststatstotal"."views"
  FROM
"accounts_userpoststatstotal"
 WHERE
"accounts_userpoststatstotal"."post_id" = 41188
 LIMIT
21
SELECT ••• FROM "accounts_userpoststatstotal" WHERE "accounts_userpoststatstotal"."post_id" = 41188 LIMIT 21
2 similar queries. Duplicated 2 times.
0.17

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(350)
  self, created = cls.objects.get_or_create(post=post)

UPDATE "accounts_userpoststatstotal"
   SET
"views" = 7
 WHERE
"accounts_userpoststatstotal"."post_id" = 41188
UPDATE "accounts_userpoststatstotal" SET "views" = 7 WHERE "accounts_userpoststatstotal"."post_id" = 41188
0.08

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(352)
  self.save()

SAVEPOINT "s140577029269312_x41"SAVEPOINT "s140577029269312_x41"
0.04

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
  UserPostStatsHistory.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(374)
  with transaction.atomic():

SELECT "accounts_userpoststatshistory"."id",
       "accounts_userpoststatshistory"."post_id",
       "accounts_userpoststatshistory"."day",
       "accounts_userpoststatshistory"."views"
  FROM
"accounts_userpoststatshistory"
 WHERE
("accounts_userpoststatshistory"."day" = '2026-01-31'::date AND "accounts_userpoststatshistory"."post_id" = 41188)
 LIMIT
21
SELECT ••• FROM "accounts_userpoststatshistory" WHERE ("accounts_userpoststatshistory"."day" = '2026-01-31'::date AND "accounts_userpoststatshistory"."post_id" = 41188) LIMIT 21
0.10

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
  UserPostStatsHistory.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(375)
  self, created = cls.objects.get_or_create(post=post, day=timezone.now())

SAVEPOINT "s140577029269312_x42"SAVEPOINT "s140577029269312_x42"
0.04

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
  UserPostStatsHistory.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(375)
  self, created = cls.objects.get_or_create(post=post, day=timezone.now())

INSERT INTO "accounts_userpoststatshistory" ("post_id", "day", "views")
VALUES
(41188, '2026-01-31'::date, 0) RETURNING "accounts_userpoststatshistory"."id"
INSERT INTO "accounts_userpoststatshistory" ("post_id", "day", "views") VALUES (41188, '2026-01-31'::date, 0) RETURNING "accounts_userpoststatshistory"."id"
0.18

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
  UserPostStatsHistory.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(375)
  self, created = cls.objects.get_or_create(post=post, day=timezone.now())

RELEASE SAVEPOINT "s140577029269312_x42"RELEASE SAVEPOINT "s140577029269312_x42"
0.03

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
  UserPostStatsHistory.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(375)
  self, created = cls.objects.get_or_create(post=post, day=timezone.now())

UPDATE "accounts_userpoststatshistory"
   SET
"post_id" = 41188,
       "day" = '2026-01-31'::date,
       "views" = 1
 WHERE
"accounts_userpoststatshistory"."id" = 1602505
UPDATE "accounts_userpoststatshistory" SET "post_id" = 41188, "day" = '2026-01-31'::date, "views" = 1 WHERE "accounts_userpoststatshistory"."id" = 1602505
0.07

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
  UserPostStatsHistory.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(377)
  self.save()

RELEASE SAVEPOINT "s140577029269312_x41"RELEASE SAVEPOINT "s140577029269312_x41"
0.03

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1893)
  UserPostStatsTotal.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
  UserPostStatsHistory.inc_views(post)

/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(374)
  with transaction.atomic():

SELECT "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity",
       "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "accounts_userplan"."user_id",
       "accounts_userplan"."plan_id",
       "accounts_userplan"."expiry_date",
       "accounts_userplan"."last_paid_date",
       "accounts_userplan"."is_subscription_active",
       "accounts_userplan"."subscription_period",
       "accounts_userplan"."payment_source",
       "accounts_userplan"."stripe_customer_id",
       "accounts_userplan"."stripe_subscription_id",
       "accounts_userplan"."paypal_subscription_id",
       "accounts_userplan"."base_free_plan_id",
       "accounts_userplan"."is_reminder_sent",
       "plans_plan"."id",
       "plans_plan"."type",
       "plans_plan"."version",
       "plans_plan"."stripe_id",
       "plans_plan"."paypal_id",
       "plans_plan"."cost_single",
       "plans_plan"."cost_monthly",
       "plans_plan"."cost_yearly",
       "accounts_userprofile"."user_id",
       "accounts_userprofile"."last_mod_inv",
       "accounts_userprofile"."last_activity",
       "accounts_userprofile"."last_ip",
       "accounts_userprofile"."last_country_id",
       "accounts_userprofile"."last_agent",
       "accounts_userprofile"."is_email_verified",
       "accounts_userprofile"."is_email_idle",
       "accounts_userprofile"."email_last_clicked",
       "accounts_userprofile"."api_token",
       "accounts_userprofile"."real_name",
       "accounts_userprofile"."location",
       "accounts_userprofile"."brickset_url",
       "accounts_userprofile"."mocpages_url",
       "accounts_userprofile"."flickr_url",
       "accounts_userprofile"."eurobricks_url",
       "accounts_userprofile"."youtube_url",
       "accounts_userprofile"."bricklink_url",
       "accounts_userprofile"."brickowl_url",
       "accounts_userprofile"."bricksafe_url",
       "accounts_userprofile"."website_url",
       "accounts_userprofile"."facebook_url",
       "accounts_userprofile"."twitter_url",
       "accounts_userprofile"."karma",
       "accounts_userprofile"."trophy_badge_id",
       "accounts_userprofile"."comments",
       "accounts_userprofile"."mfhash_vector",
       "accounts_userprofile"."is_muted",
       "accounts_userprofile"."is_banned",
       "accounts_userprofile"."is_suspected_pirate",
       "accounts_userprofile"."muted_until",
       "accounts_userprofile"."blocked_operations",
       "accounts_userprofile"."is_guest",
       "accounts_userprofile"."guest_token"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 INNER JOIN
"auth_user"
    ON
("django_comments"."user_id" = "auth_user"."id")
  LEFT OUTER JOIN
"accounts_userplan"
    ON
("auth_user"."id" = "accounts_userplan"."user_id")
  LEFT OUTER JOIN
"plans_plan"
    ON
("accounts_userplan"."plan_id" = "plans_plan"."id")
  LEFT OUTER JOIN
"accounts_userprofile"
    ON
("auth_user"."id" = "accounts_userprofile"."user_id")
 WHERE
(NOT "django_comments"."is_removed" AND "django_comments"."user_id" = 682046)
 ORDER BY
"django_comments"."submit_date" DESC
 LIMIT
5
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") INNER JOIN "auth_user" ON ("django_comments"."user_id" = "auth_user"."id") LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") LEFT OUTER JOIN "plans_plan" ON ("accounts_userplan"."plan_id" = "plans_plan"."id") LEFT OUTER JOIN "accounts_userprofile" ON ("auth_user"."id" = "accounts_userprofile"."user_id") WHERE (NOT "django_comments"."is_removed" AND "django_comments"."user_id" = 682046) ORDER BY "django_comments"."submit_date" DESC LIMIT 5
5.46

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1833)
  return {'comments': (comments, len(comments))}

SELECT ("auth_user_groups"."user_id") AS "_prefetch_related_val_user_id",
       "auth_group"."id",
       "auth_group"."name"
  FROM
"auth_group"
 INNER JOIN
"auth_user_groups"
    ON
("auth_group"."id" = "auth_user_groups"."group_id")
 WHERE
"auth_user_groups"."user_id" IN (682046)
SELECT ••• FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (682046)
2 similar queries. Duplicated 2 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(361)
  context.update(section.get_context(request, profile_user))

/home/nathan/rb/site/./accounts/models/users.py in get_context(1833)
  return {'comments': (comments, len(comments))}

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.16

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.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 "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.23

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

4 <div class="visible-xs user-mobile-menu mb-30">
5 <div class="mb-10">
6 <a href="{% url 'user_profile' profile_user.username %}">
7 <img id="user_profile_avatar" src="{% avatar_url profile_user 75 %}" class="avatar mr-10" width="50px" height="50px">
8 {{ profile_user.username }}
9 </a>
10
11 {% if request.user.is_authenticated and request.user != profile_user %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_mobile_menu.html

SELECT "accounts_usersetting"."id",
       "accounts_usersetting"."user_id",
       "accounts_usersetting"."name",
       "accounts_usersetting"."value"
  FROM
"accounts_usersetting"
 WHERE
("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 682046)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 682046) LIMIT 21
3 similar queries. Duplicated 3 times.
0.26

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_options(263)
  options = UserSetting.objects.get(user=self, name=UserSetting.USER_SETTING_PRIVACY_OPTIONS)

16 <div class="container">
17 {% include 'accounts/includes/user_profile_mobile_menu.html' %}
18 <div class="row">
19 {% with profile_user.get_privacy_options as privacy_options %}
20 {% include "accounts/includes/user_profile_navbar.html" %}
21
22 <div class="col-lg-9 col-md-9 col-sm-8 mb-80">
23

/home/nathan/rb/site/accounts/templates/accounts/user_profile.html

SELECT "accounts_usersetting"."id",
       "accounts_usersetting"."user_id",
       "accounts_usersetting"."name",
       "accounts_usersetting"."value"
  FROM
"accounts_usersetting"
 WHERE
("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 682046)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 682046) LIMIT 21
3 similar queries. Duplicated 3 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_options(263)
  options = UserSetting.objects.get(user=self, name=UserSetting.USER_SETTING_PRIVACY_OPTIONS)

11
12 <!-- Left column - navigation -->
13 <div class="col-lg-3 col-md-3 col-sm-4 hidden-xs">
14 {% with profile_user.get_privacy_options as privacy_options %}
15 {% include 'accounts/includes/user_profile_navbar_card.html' %}
16
17 <div class="hidden-xs">
18 {% include 'accounts/includes/user_profile_navbar_location.html' %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar.html

SELECT "accounts_usersetting"."id",
       "accounts_usersetting"."user_id",
       "accounts_usersetting"."name",
       "accounts_usersetting"."value"
  FROM
"accounts_usersetting"
 WHERE
("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 682046)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 682046) LIMIT 21
3 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_options(263)
  options = UserSetting.objects.get(user=self, name=UserSetting.USER_SETTING_PRIVACY_OPTIONS)

7 {% url 'add_profile_avatar' request.user.get_username as url %}
8 {% include 'lego/includes/get_img_url_modal.html' with url=url %}
9
10 {% with profile_user.get_privacy_options as privacy_options %}
11 <div class="text-center pt-3 border-1 mb-20">
12 <a href="{% url 'user_profile' profile_user.username %}">
13 <img id="user_profile_avatar" src="{% avatar_url profile_user 150 %}" class="avatar" width="150px" height="150px">
14 </a>

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

10 {% with profile_user.get_privacy_options as privacy_options %}
11 <div class="text-center pt-3 border-1 mb-20">
12 <a href="{% url 'user_profile' profile_user.username %}">
13 <img id="user_profile_avatar" src="{% avatar_url profile_user 150 %}" class="avatar" width="150px" height="150px">
14 </a>
15
16 {% if request.user == profile_user %}
17 <div class="js-load_user_avatar" data-modal="#change_avatar_modal"

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.24

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

24 <h2 class="size-18 mt-10 mb-0 js-hover-card" data-hover="{% url 'user_card' profile_user.username %}">{{ profile_user.username }}</h2>
25
26 <a href="{% url 'about' %}#roles">
27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT "accounts_userstats"."id",
       "accounts_userstats"."user_id",
       "accounts_userstats"."num_profile_views",
       "accounts_userstats"."num_shopper_scans",
       "accounts_userstats"."total_is_stale",
       "accounts_userstats"."total_sets",
       "accounts_userstats"."total_loose_parts",
       "accounts_userstats"."total_lost_set_parts",
       "accounts_userstats"."total_figures",
       "accounts_userstats"."total_all_parts"
  FROM
"accounts_userstats"
 WHERE
"accounts_userstats"."user_id" = 682046
 LIMIT
21
SELECT ••• FROM "accounts_userstats" WHERE "accounts_userstats"."user_id" = 682046 LIMIT 21
0.37

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT SUM("accounts_userlostpart"."lost_quantity") AS "lost_quantity__sum"
  FROM
"accounts_userlostpart"
 WHERE
"accounts_userlostpart"."user_id" = 682046
SELECT ••• FROM "accounts_userlostpart" WHERE "accounts_userlostpart"."user_id" = 682046
0.82

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(84)
  self.total_lost_set_parts = self.user.lost_parts.aggregate(Sum('lost_quantity'))['lost_quantity__sum'] or 0

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT SUM("accounts_userpart"."quantity") AS "quantity__sum"
  FROM
"accounts_userpart"
 WHERE
"accounts_userpart"."user_id" = 682046
SELECT ••• FROM "accounts_userpart" WHERE "accounts_userpart"."user_id" = 682046
2.78

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(85)
  self.total_loose_parts = self.user.parts.aggregate(Sum('quantity'))['quantity__sum'] or 0

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

drop table if exists temp_lostsetparts_682046drop table if exists temp_lostsetparts_682046
0.09

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(86)
  self.total_all_parts = get_user_exact_parts_total(self.user)

/home/nathan/rb/site/./lego/build/build.py in get_user_exact_parts_total(628)
  sql = _get_user_myparts_sql(user, True, True, None, None, color_field, '', buildable_only=buildable_only, use_grouping=False, use_cached_data=False, build_options=build_options)

/home/nathan/rb/site/./lego/build/build.py in _get_user_myparts_sql(367)
  create_user_set_lost_parts_temp_table(user)

/home/nathan/rb/site/./lego/build/build.py in create_user_set_lost_parts_temp_table(209)
  run_dml(sql)

/home/nathan/rb/site/./rb/utils.py in run_dml(693)
  cursor.execute(sql, params)

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

create
temporary
table temp_lostsetparts_682046 as select min(list_id) as list_id,
       s2.set_id,
       ip2.part_id,
       ip2.color_id,
       ip2.is_spare,
       lp.lost_quantity
  from
accounts_userlostpart lp
  join
lego_invpart ip2
    on
ip2.id=lp.inv_part_id
  join
accounts_userset s2
    on
s2.inventory_id=ip2.inventory_id
   and
s2.user_id=lp.user_id
 where
lp.user_id = 682046
   and
lp.grandparent_inventory_id is null
 group by
2,
       3,
       4,
       5,
       6
create temporary table temp_lostsetparts_682046 as select min(list_id) as list_id, s2.set_id, ip2.part_id, ip2.color_id, ip2.is_spare, lp.lost_quantity from accounts_userlostpart lp join lego_invpart ip2 on ip2.id=lp.inv_part_id join accounts_userset s2 on s2.inventory_id=ip2.inventory_id and s2.user_id=lp.user_id where lp.user_id = 682046 and lp.grandparent_inventory_id is null group by 2, 3, 4, 5, 6
4.64

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(86)
  self.total_all_parts = get_user_exact_parts_total(self.user)

/home/nathan/rb/site/./lego/build/build.py in get_user_exact_parts_total(628)
  sql = _get_user_myparts_sql(user, True, True, None, None, color_field, '', buildable_only=buildable_only, use_grouping=False, use_cached_data=False, build_options=build_options)

/home/nathan/rb/site/./lego/build/build.py in _get_user_myparts_sql(367)
  create_user_set_lost_parts_temp_table(user)

/home/nathan/rb/site/./lego/build/build.py in create_user_set_lost_parts_temp_table(219)
  run_dml(sql)

/home/nathan/rb/site/./rb/utils.py in run_dml(693)
  cursor.execute(sql, params)

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

create index temp_lostsetparts_682046_idx
    on
temp_lostsetparts_682046 (list_id, set_id)
create index temp_lostsetparts_682046_idx on temp_lostsetparts_682046 (list_id, set_id)
2.18

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(86)
  self.total_all_parts = get_user_exact_parts_total(self.user)

/home/nathan/rb/site/./lego/build/build.py in get_user_exact_parts_total(628)
  sql = _get_user_myparts_sql(user, True, True, None, None, color_field, '', buildable_only=buildable_only, use_grouping=False, use_cached_data=False, build_options=build_options)

/home/nathan/rb/site/./lego/build/build.py in _get_user_myparts_sql(367)
  create_user_set_lost_parts_temp_table(user)

/home/nathan/rb/site/./lego/build/build.py in create_user_set_lost_parts_temp_table(222)
  run_dml(sql)

/home/nathan/rb/site/./rb/utils.py in run_dml(693)
  cursor.execute(sql, params)

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html


   set
local enable_gathermerge=off;WITH lostfigparts AS MATERIALIZED /* 682046 */ (
        select invset2.id as invset_id,
               ip2.part_id,
               ip2.color_id,
               lp.lost_quantity
          from
accounts_userlostpart lp
          join
lego_invpart ip2
            on
ip2.id = lp.inv_part_id
          join
lego_inventory si2
            on
ip2.inventory_id = si2.id
          join
lego_invset invset2
            on
si2.set_id = invset2.inv_set_id
          join
accounts_userset s2
            on
s2.inventory_id = invset2.inventory_id
           and
s2.user_id = lp.user_id
         where
lp.user_id = 682046
           and
invset2.inventory_id = lp.grandparent_inventory_id
       ), myparts /* _get_user_myparts_sql */ AS MATERIALIZED (
        SELECT p.part_id as part_group_id,
               color_id,
               quantity
          FROM
(
                SELECT 0 as set_id,
                       0 as part_id,
                       0 as color_id,
                       0 as quantity
                 WHERE
1=2
             UNION ALL
SELECT /* _get_user_set_parts_sql */ s.set_id,
                       ip.part_id,
                       c.id as color_id,
                       ip.quantity*s.quantity - coalesce(lp.lost_quantity,0) as quantity
                  FROM
accounts_userset s
                  JOIN
lego_invpart ip
                    on
ip.inventory_id=s.inventory_id
                   and
(s.include_spares or not ip.is_spare)
                  JOIN
lego_color c
                    ON
c.id = ip.color_id
                  LEFT OUTER JOIN
temp_lostsetparts_682046 lp
                    ON
lp.list_id=s.list_id
                   and
lp.set_id=s.set_id
                   and
lp.part_id=ip.part_id
                   and
lp.color_id=ip.color_id
                   and
lp.is_spare=ip.is_spare
                 WHERE
s.user_id = 682046
             UNION ALL
SELECT s.set_id,
                       ip.part_id,
                       c.id as color_id,
                       ip.quantity*s.quantity*invset.quantity - coalesce(lp.lost_quantity,0) as quantity
                  FROM
accounts_userset s
                  JOIN
lego_invset invset
                    ON
invset.inventory_id=s.inventory_id
                  JOIN
lego_inventory si
                    ON
si.set_id=invset.inv_set_id
                   and
si.version = (
                        select max(version)
                          from
lego_inventory si2
                         where
si.set_id=si2.set_id
                           and
si2.is_active
                       )
                  JOIN
lego_invpart ip
                    on
ip.inventory_id=si.id
                   and
(s.include_spares or not ip.is_spare)
                  JOIN
lego_color c
                    ON
c.id = ip.color_id
                  LEFT OUTER JOIN
lostfigparts lp
                    on
lp.invset_id=invset.id
                   and
ip.part_id=lp.part_id
                   and
ip.color_id=lp.color_id
                 WHERE
s.user_id = 682046
             UNION ALL
SELECT 0,
                       ip.part_id,
                       c.id as color_id,
                       ip.quantity
                  FROM
accounts_userpartlist pl
                  JOIN
accounts_userpart ip
                    on
pl.user_id=ip.user_id
                   and
pl.id=ip.list_id
                  JOIN
lego_color c
                    ON
c.id = ip.color_id
                 WHERE
ip.user_id = 682046
               ) p
          LEFT OUTER JOIN
lego_partrelationshipflat f
            on
p.part_id=f.part_id
       ) SELECT /* get_user_exact_parts_total */ coalesce(sum(my.quantity),0) as quantity
  FROM
myparts my
 WHERE
1=1
set local enable_gathermerge=off;WITH lostfigparts AS MATERIALIZED /* 682046 */ ( select invset2.id as invset_id, ip2.part_id, ip2.color_id, lp.lost_quantity from accounts_userlostpart lp join lego_invpart ip2 on ip2.id = lp.inv_part_id join lego_inventory si2 on ip2.inventory_id = si2.id join lego_invset invset2 on si2.set_id = invset2.inv_set_id join accounts_userset s2 on s2.inventory_id = invset2.inventory_id and s2.user_id = lp.user_id where lp.user_id = 682046 and invset2.inventory_id = lp.grandparent_inventory_id ), myparts /* _get_user_myparts_sql */ AS MATERIALIZED ( SELECT ••• FROM ( SELECT 0 as set_id, 0 as part_id, 0 as color_id, 0 as quantity WHERE 1=2 UNION ALL SELECT /* _get_user_set_parts_sql */ s.set_id, ip.part_id, c.id as color_id, ip.quantity*s.quantity - coalesce(lp.lost_quantity,0) as quantity FROM accounts_userset s JOIN lego_invpart ip on ip.inventory_id=s.inventory_id and (s.include_spares or not ip.is_spare) JOIN lego_color c ON c.id = ip.color_id LEFT OUTER JOIN temp_lostsetparts_682046 lp ON lp.list_id=s.list_id and lp.set_id=s.set_id and lp.part_id=ip.part_id and lp.color_id=ip.color_id and lp.is_spare=ip.is_spare WHERE s.user_id = 682046 UNION ALL SELECT s.set_id, ip.part_id, c.id as color_id, ip.quantity*s.quantity*invset.quantity - coalesce(lp.lost_quantity,0) as quantity FROM accounts_userset s JOIN lego_invset invset ON invset.inventory_id=s.inventory_id JOIN lego_inventory si ON si.set_id=invset.inv_set_id and si.version = (select max(version) from lego_inventory si2 where si.set_id=si2.set_id and si2.is_active) JOIN lego_invpart ip on ip.inventory_id=si.id and (s.include_spares or not ip.is_spare) JOIN lego_color c ON c.id = ip.color_id LEFT OUTER JOIN lostfigparts lp on lp.invset_id=invset.id and ip.part_id=lp.part_id and ip.color_id=lp.color_id WHERE s.user_id = 682046 UNION ALL SELECT 0, ip.part_id, c.id as color_id, ip.quantity FROM accounts_userpartlist pl JOIN accounts_userpart ip on pl.user_id=ip.user_id and pl.id=ip.list_id JOIN lego_color c ON c.id = ip.color_id WHERE ip.user_id = 682046 ) p LEFT OUTER JOIN lego_partrelationshipflat f on p.part_id=f.part_id ) SELECT /* get_user_exact_parts_total */ coalesce(sum(my.quantity),0) as quantity FROM myparts my WHERE 1=1
3469.16

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(86)
  self.total_all_parts = get_user_exact_parts_total(self.user)

/home/nathan/rb/site/./lego/build/build.py in get_user_exact_parts_total(641)
  data = run_sql(sql, {'user_id': user.id})

/home/nathan/rb/site/./rb/utils.py in run_sql(664)
  cursor.execute(sql, params)

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT SUM("accounts_userset"."quantity") AS "quantity__sum"
  FROM
"accounts_userset"
 INNER JOIN
"accounts_usersetlist"
    ON
("accounts_userset"."list_id" = "accounts_usersetlist"."id")
 INNER JOIN
"lego_baseset"
    ON
("accounts_userset"."set_id" = "lego_baseset"."id")
 WHERE
("accounts_userset"."user_id" = 682046 AND "accounts_usersetlist"."user_id" = 682046 AND "lego_baseset"."set_type" IN ('Set', 'SubSet', 'BModel', 'MOC'))
SELECT ••• FROM "accounts_userset" INNER JOIN "accounts_usersetlist" ON ("accounts_userset"."list_id" = "accounts_usersetlist"."id") INNER JOIN "lego_baseset" ON ("accounts_userset"."set_id" = "lego_baseset"."id") WHERE ("accounts_userset"."user_id" = 682046 AND "accounts_usersetlist"."user_id" = 682046 AND "lego_baseset"."set_type" IN ('Set', 'SubSet', 'BModel', 'MOC'))
6.49

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(87)
  num_sets = self.user.get_num_sets()

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_sets(331)
  total_sets = self.sets.filter(set__set_type__in=set_types, list__user=self).aggregate(Sum('quantity'))['quantity__sum'] or 0

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT "accounts_userset"."id",
       "accounts_userset"."user_id",
       "accounts_userset"."list_id",
       "accounts_userset"."set_id",
       "accounts_userset"."inventory_id",
       "accounts_userset"."quantity",
       "accounts_userset"."include_spares",
       "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "accounts_usersetlist"."id",
       "accounts_usersetlist"."user_id",
       "accounts_usersetlist"."name",
       "accounts_usersetlist"."descr",
       "accounts_usersetlist"."is_buildable",
       "accounts_usersetlist"."num_sets",
       "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_theme"."id",
       "lego_theme"."parent_id",
       "lego_theme"."name",
       "lego_theme"."slug",
       "lego_theme"."set_count",
       "lego_theme"."t1_id",
       "lego_theme"."t1_name",
       "lego_theme"."t2_name",
       "lego_theme"."t3_name",
       "lego_theme"."lego_blurb",
       "lego_theme"."banner_img",
       "lego_theme"."descr",
       T7."id",
       T7."parent_id",
       T7."name",
       T7."slug",
       T7."set_count",
       T7."t1_id",
       T7."t1_name",
       T7."t2_name",
       T7."t3_name",
       T7."lego_blurb",
       T7."banner_img",
       T7."descr",
       T8."id",
       T8."parent_id",
       T8."name",
       T8."slug",
       T8."set_count",
       T8."t1_id",
       T8."t1_name",
       T8."t2_name",
       T8."t3_name",
       T8."lego_blurb",
       T8."banner_img",
       T8."descr",
       "lego_setphoto"."id",
       "lego_setphoto"."set_id",
       "lego_setphoto"."photo_type_id",
       "lego_setphoto"."submitted_by_id",
       "lego_setphoto"."timestamp",
       "lego_setphoto"."is_active",
       "lego_setphoto"."is_primary",
       T10."id",
       T10."set_num",
       T10."name",
       T10."year",
       T10."theme_id",
       T10."set_type",
       T10."num_parts",
       T10."default_inventory_id",
       T10."is_active",
       T10."is_accessory",
       T10."added_dt",
       T10."added_by_id",
       T10."last_modified_dt",
       T10."last_modified_by_id",
       T10."last_checked_for_bi",
       T10."descr",
       T10."primary_photo_id",
       T10."is_gear",
       T10."is_book",
       T10."search_vector",
       T10."mfhash_vector",
       "accounts_usersetnote"."id",
       "accounts_usersetnote"."user_set_id",
       "accounts_usersetnote"."is_used",
       "accounts_usersetnote"."location",
       "accounts_usersetnote"."notes"
  FROM
"accounts_userset"
 INNER JOIN
"auth_user"
    ON
("accounts_userset"."user_id" = "auth_user"."id")
 INNER JOIN
"accounts_usersetlist"
    ON
("accounts_userset"."list_id" = "accounts_usersetlist"."id")
 INNER JOIN
"lego_baseset"
    ON
("accounts_userset"."set_id" = "lego_baseset"."id")
 INNER JOIN
"lego_theme"
    ON
("lego_baseset"."theme_id" = "lego_theme"."id")
  LEFT OUTER JOIN
"lego_theme" T7
    ON
("lego_theme"."parent_id" = T7."id")
  LEFT OUTER JOIN
"lego_theme" T8
    ON
(T7."parent_id" = T8."id")
  LEFT OUTER JOIN
"lego_setphoto"
    ON
("lego_baseset"."primary_photo_id" = "lego_setphoto"."id")
  LEFT OUTER JOIN
"lego_baseset" T10
    ON
("lego_setphoto"."set_id" = T10."id")
  LEFT OUTER JOIN
"accounts_usersetnote"
    ON
("accounts_userset"."id" = "accounts_usersetnote"."user_set_id")
 WHERE
("accounts_userset"."inventory_id" IN (SELECT U0."inventory_id" FROM "lego_invset" U0 INNER JOIN "lego_baseset" U1 ON (U0."inv_set_id" = U1."id") WHERE U1."set_type" = 'Figure') AND "accounts_userset"."user_id" = 682046)
SELECT ••• FROM "accounts_userset" INNER JOIN "auth_user" ON ("accounts_userset"."user_id" = "auth_user"."id") INNER JOIN "accounts_usersetlist" ON ("accounts_userset"."list_id" = "accounts_usersetlist"."id") INNER JOIN "lego_baseset" ON ("accounts_userset"."set_id" = "lego_baseset"."id") INNER JOIN "lego_theme" ON ("lego_baseset"."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T7 ON ("lego_theme"."parent_id" = T7."id") LEFT OUTER JOIN "lego_theme" T8 ON (T7."parent_id" = T8."id") LEFT OUTER JOIN "lego_setphoto" ON ("lego_baseset"."primary_photo_id" = "lego_setphoto"."id") LEFT OUTER JOIN "lego_baseset" T10 ON ("lego_setphoto"."set_id" = T10."id") LEFT OUTER JOIN "accounts_usersetnote" ON ("accounts_userset"."id" = "accounts_usersetnote"."user_set_id") WHERE ("accounts_userset"."inventory_id" IN (SELECT ••• FROM "lego_invset" U0 INNER JOIN "lego_baseset" U1 ON (U0."inv_set_id" = U1."id") WHERE U1."set_type" = 'Figure') AND "accounts_userset"."user_id" = 682046)
18.01

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(89)
  inv_sets, user_sets = get_user_minifigs(self.user)

/home/nathan/rb/site/./lego/build/build.py in get_user_minifigs(786)
  for user_set in user_sets:

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT "lego_invset"."id",
       "lego_invset"."inventory_id",
       "lego_invset"."inv_set_id",
       "lego_invset"."quantity",
       "lego_inventory"."id",
       "lego_inventory"."set_id",
       "lego_inventory"."version",
       "lego_inventory"."name",
       "lego_inventory"."is_active",
       "lego_inventory"."num_parts",
       "lego_inventory"."num_versions",
       "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       T4."id",
       T4."set_num",
       T4."name",
       T4."year",
       T4."theme_id",
       T4."set_type",
       T4."num_parts",
       T4."default_inventory_id",
       T4."is_active",
       T4."is_accessory",
       T4."added_dt",
       T4."added_by_id",
       T4."last_modified_dt",
       T4."last_modified_by_id",
       T4."last_checked_for_bi",
       T4."descr",
       T4."primary_photo_id",
       T4."is_gear",
       T4."is_book",
       T4."search_vector",
       T4."mfhash_vector",
       "lego_theme"."id",
       "lego_theme"."parent_id",
       "lego_theme"."name",
       "lego_theme"."slug",
       "lego_theme"."set_count",
       "lego_theme"."t1_id",
       "lego_theme"."t1_name",
       "lego_theme"."t2_name",
       "lego_theme"."t3_name",
       "lego_theme"."lego_blurb",
       "lego_theme"."banner_img",
       "lego_theme"."descr",
       T6."id",
       T6."parent_id",
       T6."name",
       T6."slug",
       T6."set_count",
       T6."t1_id",
       T6."t1_name",
       T6."t2_name",
       T6."t3_name",
       T6."lego_blurb",
       T6."banner_img",
       T6."descr",
       T7."id",
       T7."parent_id",
       T7."name",
       T7."slug",
       T7."set_count",
       T7."t1_id",
       T7."t1_name",
       T7."t2_name",
       T7."t3_name",
       T7."lego_blurb",
       T7."banner_img",
       T7."descr",
       "lego_set"."baseset_ptr_id",
       "lego_set"."start_date",
       "lego_set"."end_date"
  FROM
"lego_invset"
 INNER JOIN
"lego_inventory"
    ON
("lego_invset"."inventory_id" = "lego_inventory"."id")
 INNER JOIN
"lego_baseset"
    ON
("lego_inventory"."set_id" = "lego_baseset"."id")
 INNER JOIN
"lego_baseset" T4
    ON
("lego_invset"."inv_set_id" = T4."id")
 INNER JOIN
"lego_theme"
    ON
(T4."theme_id" = "lego_theme"."id")
  LEFT OUTER JOIN
"lego_theme" T6
    ON
("lego_theme"."parent_id" = T6."id")
  LEFT OUTER JOIN
"lego_theme" T7
    ON
(T6."parent_id" = T7."id")
  LEFT OUTER JOIN
"lego_set"
    ON
(T4."id" = "lego_set"."baseset_ptr_id")
 WHERE
"lego_invset"."inventory_id" IN (
        SELECT V0."inventory_id"
          FROM
"accounts_userset" V0
         WHERE
(V0."inventory_id" IN (SELECT U0."inventory_id" FROM "lego_invset" U0 INNER JOIN "lego_baseset" U1 ON (U0."inv_set_id" = U1."id") WHERE U1."set_type" = 'Figure') AND V0."user_id" = 682046)
       )
SELECT ••• FROM "lego_invset" INNER JOIN "lego_inventory" ON ("lego_invset"."inventory_id" = "lego_inventory"."id") INNER JOIN "lego_baseset" ON ("lego_inventory"."set_id" = "lego_baseset"."id") INNER JOIN "lego_baseset" T4 ON ("lego_invset"."inv_set_id" = T4."id") INNER JOIN "lego_theme" ON (T4."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T6 ON ("lego_theme"."parent_id" = T6."id") LEFT OUTER JOIN "lego_theme" T7 ON (T6."parent_id" = T7."id") LEFT OUTER JOIN "lego_set" ON (T4."id" = "lego_set"."baseset_ptr_id") WHERE "lego_invset"."inventory_id" IN (SELECT ••• FROM "accounts_userset" V0 WHERE (V0."inventory_id" IN (SELECT ••• FROM "lego_invset" U0 INNER JOIN "lego_baseset" U1 ON (U0."inv_set_id" = U1."id") WHERE U1."set_type" = 'Figure') AND V0."user_id" = 682046))
100.64

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(89)
  inv_sets, user_sets = get_user_minifigs(self.user)

/home/nathan/rb/site/./lego/build/build.py in get_user_minifigs(793)
  for fig in user_inv_sets:

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT "accounts_userset"."id",
       "accounts_userset"."user_id",
       "accounts_userset"."list_id",
       "accounts_userset"."set_id",
       "accounts_userset"."inventory_id",
       "accounts_userset"."quantity",
       "accounts_userset"."include_spares",
       "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "accounts_usersetlist"."id",
       "accounts_usersetlist"."user_id",
       "accounts_usersetlist"."name",
       "accounts_usersetlist"."descr",
       "accounts_usersetlist"."is_buildable",
       "accounts_usersetlist"."num_sets",
       "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_theme"."id",
       "lego_theme"."parent_id",
       "lego_theme"."name",
       "lego_theme"."slug",
       "lego_theme"."set_count",
       "lego_theme"."t1_id",
       "lego_theme"."t1_name",
       "lego_theme"."t2_name",
       "lego_theme"."t3_name",
       "lego_theme"."lego_blurb",
       "lego_theme"."banner_img",
       "lego_theme"."descr",
       T6."id",
       T6."parent_id",
       T6."name",
       T6."slug",
       T6."set_count",
       T6."t1_id",
       T6."t1_name",
       T6."t2_name",
       T6."t3_name",
       T6."lego_blurb",
       T6."banner_img",
       T6."descr",
       T7."id",
       T7."parent_id",
       T7."name",
       T7."slug",
       T7."set_count",
       T7."t1_id",
       T7."t1_name",
       T7."t2_name",
       T7."t3_name",
       T7."lego_blurb",
       T7."banner_img",
       T7."descr",
       "lego_setphoto"."id",
       "lego_setphoto"."set_id",
       "lego_setphoto"."photo_type_id",
       "lego_setphoto"."submitted_by_id",
       "lego_setphoto"."timestamp",
       "lego_setphoto"."is_active",
       "lego_setphoto"."is_primary",
       T9."id",
       T9."set_num",
       T9."name",
       T9."year",
       T9."theme_id",
       T9."set_type",
       T9."num_parts",
       T9."default_inventory_id",
       T9."is_active",
       T9."is_accessory",
       T9."added_dt",
       T9."added_by_id",
       T9."last_modified_dt",
       T9."last_modified_by_id",
       T9."last_checked_for_bi",
       T9."descr",
       T9."primary_photo_id",
       T9."is_gear",
       T9."is_book",
       T9."search_vector",
       T9."mfhash_vector",
       "accounts_usersetnote"."id",
       "accounts_usersetnote"."user_set_id",
       "accounts_usersetnote"."is_used",
       "accounts_usersetnote"."location",
       "accounts_usersetnote"."notes"
  FROM
"accounts_userset"
 INNER JOIN
"lego_baseset"
    ON
("accounts_userset"."set_id" = "lego_baseset"."id")
 INNER JOIN
"auth_user"
    ON
("accounts_userset"."user_id" = "auth_user"."id")
 INNER JOIN
"accounts_usersetlist"
    ON
("accounts_userset"."list_id" = "accounts_usersetlist"."id")
 INNER JOIN
"lego_theme"
    ON
("lego_baseset"."theme_id" = "lego_theme"."id")
  LEFT OUTER JOIN
"lego_theme" T6
    ON
("lego_theme"."parent_id" = T6."id")
  LEFT OUTER JOIN
"lego_theme" T7
    ON
(T6."parent_id" = T7."id")
  LEFT OUTER JOIN
"lego_setphoto"
    ON
("lego_baseset"."primary_photo_id" = "lego_setphoto"."id")
  LEFT OUTER JOIN
"lego_baseset" T9
    ON
("lego_setphoto"."set_id" = T9."id")
  LEFT OUTER JOIN
"accounts_usersetnote"
    ON
("accounts_userset"."id" = "accounts_usersetnote"."user_set_id")
 WHERE
("lego_baseset"."set_type" = 'Figure' AND "accounts_userset"."user_id" = 682046)
SELECT ••• FROM "accounts_userset" INNER JOIN "lego_baseset" ON ("accounts_userset"."set_id" = "lego_baseset"."id") INNER JOIN "auth_user" ON ("accounts_userset"."user_id" = "auth_user"."id") INNER JOIN "accounts_usersetlist" ON ("accounts_userset"."list_id" = "accounts_usersetlist"."id") INNER JOIN "lego_theme" ON ("lego_baseset"."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T6 ON ("lego_theme"."parent_id" = T6."id") LEFT OUTER JOIN "lego_theme" T7 ON (T6."parent_id" = T7."id") LEFT OUTER JOIN "lego_setphoto" ON ("lego_baseset"."primary_photo_id" = "lego_setphoto"."id") LEFT OUTER JOIN "lego_baseset" T9 ON ("lego_setphoto"."set_id" = T9."id") LEFT OUTER JOIN "accounts_usersetnote" ON ("accounts_userset"."id" = "accounts_usersetnote"."user_set_id") WHERE ("lego_baseset"."set_type" = 'Figure' AND "accounts_userset"."user_id" = 682046)
3.68

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(90)
  self.total_figures = sum([s.quantity for s in inv_sets]) + sum([s.quantity for s in user_sets])

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_set"."baseset_ptr_id",
       "lego_set"."start_date",
       "lego_set"."end_date"
  FROM
"lego_set"
 INNER JOIN
"lego_baseset"
    ON
("lego_set"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
"lego_set"."baseset_ptr_id" IN (51314)
SELECT ••• FROM "lego_set" INNER JOIN "lego_baseset" ON ("lego_set"."baseset_ptr_id" = "lego_baseset"."id") WHERE "lego_set"."baseset_ptr_id" IN (51314)
0.16

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(90)
  self.total_figures = sum([s.quantity for s in inv_sets]) + sum([s.quantity for s in user_sets])

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

UPDATE "accounts_userstats"
   SET
"user_id" = 682046,
       "num_profile_views" = 496,
       "num_shopper_scans" = 0,
       "total_is_stale" = false, "total_sets" = 1405,
       "total_loose_parts" = 45,
       "total_lost_set_parts" = 0,
       "total_figures" = 1807,
       "total_all_parts" = 278999
 WHERE
"accounts_userstats"."id" = 621615
UPDATE "accounts_userstats" SET "user_id" = 682046, "num_profile_views" = 496, "num_shopper_scans" = 0, "total_is_stale" = false, "total_sets" = 1405, "total_loose_parts" = 45, "total_lost_set_parts" = 0, "total_figures" = 1807, "total_all_parts" = 278999 WHERE "accounts_userstats"."id" = 621615
9.88

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_parts_summary(380)
  return self.stats.get_num_parts_summary()

/home/nathan/rb/site/./accounts/models/stats.py in get_num_parts_summary(103)
  self.recalculate_stats()

/home/nathan/rb/site/./accounts/models/stats.py in recalculate_stats(93)
  self.save()

27 <h3 class="size-12 mt-0 mb-10 text-info">{{ profile_user.get_rolename.0|upper }}</h3>
28 </a>
29 {% if request.user == profile_user or privacy_options.is_public_legosummary %}
30 <h3 class="size-12 mt-0 mb-10 text-muted">{{ profile_user.get_num_parts_summary.all_parts|intcomma }} Parts</h3>
31 {% endif %}
32
33 {% if request.user == profile_user or privacy_options.is_public_plan %}
34 {% if not profile_user.plan.plan.is_free %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT "accounts_userprofile"."user_id",
       "accounts_userprofile"."last_mod_inv",
       "accounts_userprofile"."last_activity",
       "accounts_userprofile"."last_ip",
       "accounts_userprofile"."last_country_id",
       "accounts_userprofile"."last_agent",
       "accounts_userprofile"."is_email_verified",
       "accounts_userprofile"."is_email_idle",
       "accounts_userprofile"."email_last_clicked",
       "accounts_userprofile"."api_token",
       "accounts_userprofile"."real_name",
       "accounts_userprofile"."location",
       "accounts_userprofile"."brickset_url",
       "accounts_userprofile"."mocpages_url",
       "accounts_userprofile"."flickr_url",
       "accounts_userprofile"."eurobricks_url",
       "accounts_userprofile"."youtube_url",
       "accounts_userprofile"."bricklink_url",
       "accounts_userprofile"."brickowl_url",
       "accounts_userprofile"."bricksafe_url",
       "accounts_userprofile"."website_url",
       "accounts_userprofile"."facebook_url",
       "accounts_userprofile"."twitter_url",
       "accounts_userprofile"."karma",
       "accounts_userprofile"."trophy_badge_id",
       "accounts_userprofile"."comments",
       "accounts_userprofile"."mfhash_vector",
       "accounts_userprofile"."is_muted",
       "accounts_userprofile"."is_banned",
       "accounts_userprofile"."is_suspected_pirate",
       "accounts_userprofile"."muted_until",
       "accounts_userprofile"."blocked_operations",
       "accounts_userprofile"."is_guest",
       "accounts_userprofile"."guest_token"
  FROM
"accounts_userprofile"
 WHERE
"accounts_userprofile"."user_id" = 682046
 LIMIT
21
SELECT ••• FROM "accounts_userprofile" WHERE "accounts_userprofile"."user_id" = 682046 LIMIT 21
0.19

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

52 {% endwith %}
53 {% endif %}
54
55 {% if profile_user.profile.trophy_badge.badge and privacy_options.is_public_badges %}
56 <a href="{% url 'badges' %}#{{ profile_user.profile.trophy_badge.badge.code }}">
57 <div class="text-center" style="margin:auto">
58 {% render_badge profile_user.profile.trophy_badge.badge %}
59 </div>

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT COUNT(*) AS "__count"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
0.21

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_mocs(866)
  self._num_mocs = Moc.objects.filter(designer=self.designer).count()

60 </a>
61 {% endif %}
62
63 {% if profile_user.get_num_mocs > 0 %}
64 {% with profile_user.designer.get_stats as designer_stats %}
65 <div class="border-top-1 box-light">
66 <div class="row">
67 <div class="col-xs-4">

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_card.html

SELECT COUNT(*) AS "__count"
  FROM
"accounts_userprofile"
 WHERE
UPPER("accounts_userprofile"."location"::text) = UPPER('Netherlands')
SELECT ••• FROM "accounts_userprofile" WHERE UPPER("accounts_userprofile"."location"::text) = UPPER('Netherlands')
2 similar queries. Duplicated 2 times.
12.73

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_users_at_location(594)
  return UserProfile.objects.filter(location__iexact=self.profile.location).count()

5 <div class="mb-30 border box-light">
6 <div class="box-inner">
7 <h4 class="mb-0"><i class="fa fa-globe"></i> {{ profile_user.profile.location }}</h4>
8 <p><small>There are {{ profile_user.get_num_users_at_location }} users from this location</small></p>
9
10 {% if profile_user.profile.website_url and profile_user.level >= settings.LEVEL_SHOW_PERSONAL_URL %}
11 <div class="trunc"><a href="{% get_external_url profile_user.profile.website_url 'action=ProfileLink&site=Personal'|addstr:'&user='|addstr:profile_user.id %}" target="_blank" rel="nofollow"><i class="fa fa-external-link"></i> {{ profile_user.profile.website_url }}</a></div>
12 {% endif %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_location.html

SELECT COUNT(*) AS "__count"
  FROM
"accounts_usertrophy"
 WHERE
"accounts_usertrophy"."user_id" = 682046
SELECT ••• FROM "accounts_usertrophy" WHERE "accounts_usertrophy"."user_id" = 682046
2 similar queries. Duplicated 2 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

1 {% if profile_user.trophies.count > 0 %}
2 <div class="mb-30 border box-light">
3 <div class="box-inner">
4 <h4><i class="fa fa-trophy"></i> TROPHY CASE</h4>
5 {% for trophy in profile_user.trophies.all %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_trophy.html

SELECT "accounts_userrank"."user_id",
       "accounts_userrank"."rank_points",
       "accounts_userrank"."rank_parts",
       "accounts_userrank"."rank_views"
  FROM
"accounts_userrank"
 WHERE
"accounts_userrank"."user_id" = 682046
 LIMIT
21
SELECT ••• FROM "accounts_userrank" WHERE "accounts_userrank"."user_id" = 682046 LIMIT 21
0.13

Connection: default

Transaction status: In transaction

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

142 </div>
143 </div>
144
145 {% if profile_user.rank.rank_views > 0 or profile_user.rank.rank_points > 0 %}
146 <div class="box-inner mb-20 hidden-xs">
147 <h2><i class="fa fa-line-chart"></i> USER RANKINGS</h2>
148 {% if profile_user.rank.rank_points > 0 %}
149 <div class="row row-condensed" title="Number of Points (Rank 1 = highest)">

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 682046
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 682046 LIMIT 21
2 similar queries. Duplicated 2 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

9 <div class="workbench-post-header display-flex-nowrap">
10
11 <div class="add-comment-avatar mr-10" style="width: 50px">
12 <a href="{% url 'user_profile' post.user.username %}" class="js-hover-card" data-hover="{% url 'user_card' post.user.username %}">
13 <img data-src="{% avatar_url post.user 75 %}" width="50px" height="50px">
14 </a>
15 </div>
16 <div class="flex-expand">

/home/nathan/rb/site/accounts/templates/accounts/user_workbench_post.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

10
11 <div class="add-comment-avatar mr-10" style="width: 50px">
12 <a href="{% url 'user_profile' post.user.username %}" class="js-hover-card" data-hover="{% url 'user_card' post.user.username %}">
13 <img data-src="{% avatar_url post.user 75 %}" width="50px" height="50px">
14 </a>
15 </div>
16 <div class="flex-expand">
17 <div class="heading-title heading-border-bottom heading-color mb-6 clearfix">

/home/nathan/rb/site/accounts/templates/accounts/user_workbench_post.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
2 similar queries. Duplicated 2 times.
0.23

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

67 {% endif %}
68
69 <div class="workbench-post-stats">
70 {% get_comment_count for post as num_comments %}
71 <span class="mr-30"><i class="fa fa-line-chart"></i> {{ post.stats.views|default:'0' }}<span class="hidden-xs"> view{{ post.stats.views|default:'0'|pluralize }}</span></span>
72 <span class="mr-30 js-toggle-field link" data-field="#wb-comments-{{ post.id }}"><i class="fa fa-commenting"></i> {{ num_comments }}<span class="hidden-xs"> comment{{ num_comments|pluralize }}</span></span>
73 <span class="js-post-button link p-6" data-url="{% url 'like_user_post' post.user.username post.id %}">
74 {% if post.user_likes_post %}

/home/nathan/rb/site/accounts/templates/accounts/user_workbench_post.html

SELECT "accounts_userpoststatstotal"."post_id",
       "accounts_userpoststatstotal"."views"
  FROM
"accounts_userpoststatstotal"
 WHERE
"accounts_userpoststatstotal"."post_id" = 41188
 LIMIT
21
SELECT ••• FROM "accounts_userpoststatstotal" WHERE "accounts_userpoststatstotal"."post_id" = 41188 LIMIT 21
2 similar queries. Duplicated 2 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

68
69 <div class="workbench-post-stats">
70 {% get_comment_count for post as num_comments %}
71 <span class="mr-30"><i class="fa fa-line-chart"></i> {{ post.stats.views|default:'0' }}<span class="hidden-xs"> view{{ post.stats.views|default:'0'|pluralize }}</span></span>
72 <span class="mr-30 js-toggle-field link" data-field="#wb-comments-{{ post.id }}"><i class="fa fa-commenting"></i> {{ num_comments }}<span class="hidden-xs"> comment{{ num_comments|pluralize }}</span></span>
73 <span class="js-post-button link p-6" data-url="{% url 'like_user_post' post.user.username post.id %}">
74 {% if post.user_likes_post %}
75 <i class="fa fa-star"></i>

/home/nathan/rb/site/accounts/templates/accounts/user_workbench_post.html

SELECT "django_content_type"."id",
       "django_content_type"."app_label",
       "django_content_type"."model"
  FROM
"django_content_type"
 WHERE
("django_content_type"."app_label" = 'accounts' AND "django_content_type"."model" = 'userpost')
 LIMIT
21
SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'accounts' AND "django_content_type"."model" = 'userpost') LIMIT 21
0.15

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(78)
  content_type = ContentType.objects.get(app_label=page_content_type.split('.')[0], model=page_content_type.split('.')[1])

4 {% load rb_comments_filters %}
5
6 <div id="comments-{{ page.id }}">
7 {% get_page_locked_status content_type page.id as is_page_locked %}
8
9 {% comment %}
10 Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11 Using fluent-comments to hide unused fields and do ajax add/reply comment.

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT 1 AS "a"
  FROM
"rb_comments_pagelocked"
 WHERE
("rb_comments_pagelocked"."content_type_id" = 226 AND "rb_comments_pagelocked"."object_id" = 41188)
 LIMIT
1
SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 226 AND "rb_comments_pagelocked"."object_id" = 41188) LIMIT 1
0.08

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(79)
  is_locked = PageLocked.objects.filter(content_type=content_type, object_id=page_id).exists()

4 {% load rb_comments_filters %}
5
6 <div id="comments-{{ page.id }}">
7 {% get_page_locked_status content_type page.id as is_page_locked %}
8
9 {% comment %}
10 Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11 Using fluent-comments to hide unused fields and do ajax add/reply comment.

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT (SUBSTRING(tree_path, 1, 10)) AS "tree_path_root",
       "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity",
       "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "accounts_userplan"."user_id",
       "accounts_userplan"."plan_id",
       "accounts_userplan"."expiry_date",
       "accounts_userplan"."last_paid_date",
       "accounts_userplan"."is_subscription_active",
       "accounts_userplan"."subscription_period",
       "accounts_userplan"."payment_source",
       "accounts_userplan"."stripe_customer_id",
       "accounts_userplan"."stripe_subscription_id",
       "accounts_userplan"."paypal_subscription_id",
       "accounts_userplan"."base_free_plan_id",
       "accounts_userplan"."is_reminder_sent",
       "plans_plan"."id",
       "plans_plan"."type",
       "plans_plan"."version",
       "plans_plan"."stripe_id",
       "plans_plan"."paypal_id",
       "plans_plan"."cost_single",
       "plans_plan"."cost_monthly",
       "plans_plan"."cost_yearly",
       "accounts_userprofile"."user_id",
       "accounts_userprofile"."last_mod_inv",
       "accounts_userprofile"."last_activity",
       "accounts_userprofile"."last_ip",
       "accounts_userprofile"."last_country_id",
       "accounts_userprofile"."last_agent",
       "accounts_userprofile"."is_email_verified",
       "accounts_userprofile"."is_email_idle",
       "accounts_userprofile"."email_last_clicked",
       "accounts_userprofile"."api_token",
       "accounts_userprofile"."real_name",
       "accounts_userprofile"."location",
       "accounts_userprofile"."brickset_url",
       "accounts_userprofile"."mocpages_url",
       "accounts_userprofile"."flickr_url",
       "accounts_userprofile"."eurobricks_url",
       "accounts_userprofile"."youtube_url",
       "accounts_userprofile"."bricklink_url",
       "accounts_userprofile"."brickowl_url",
       "accounts_userprofile"."bricksafe_url",
       "accounts_userprofile"."website_url",
       "accounts_userprofile"."facebook_url",
       "accounts_userprofile"."twitter_url",
       "accounts_userprofile"."karma",
       "accounts_userprofile"."trophy_badge_id",
       "accounts_userprofile"."comments",
       "accounts_userprofile"."mfhash_vector",
       "accounts_userprofile"."is_muted",
       "accounts_userprofile"."is_banned",
       "accounts_userprofile"."is_suspected_pirate",
       "accounts_userprofile"."muted_until",
       "accounts_userprofile"."blocked_operations",
       "accounts_userprofile"."is_guest",
       "accounts_userprofile"."guest_token"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
  LEFT OUTER JOIN
"auth_user"
    ON
("django_comments"."user_id" = "auth_user"."id")
  LEFT OUTER JOIN
"accounts_userplan"
    ON
("auth_user"."id" = "accounts_userplan"."user_id")
  LEFT OUTER JOIN
"plans_plan"
    ON
("accounts_userplan"."plan_id" = "plans_plan"."id")
  LEFT OUTER JOIN
"accounts_userprofile"
    ON
("auth_user"."id" = "accounts_userprofile"."user_id")
 WHERE
("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
 ORDER BY
1 DESC, "threadedcomments_comment"."tree_path" ASC
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") LEFT OUTER JOIN "auth_user" ON ("django_comments"."user_id" = "auth_user"."id") LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") LEFT OUTER JOIN "plans_plan" ON ("accounts_userplan"."plan_id" = "plans_plan"."id") LEFT OUTER JOIN "accounts_userprofile" ON ("auth_user"."id" = "accounts_userprofile"."user_id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed") ORDER BY 1 DESC, "threadedcomments_comment"."tree_path" ASC
0.75

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(71)
  qs = self.get_queryset(context)

/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_queryset(45)
  return qs[:50], len(qs)

14 {% endcomment %}
15 {% if not comment_list %}
16 {# Get comments for a page #}
17 {% get_rb_comment_list for page as comment_list %}
18 {% get_comment_count for page as num_comments %}
19
20 {% if show_comment_count %}
21 <div class="clearfix">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
2 similar queries. Duplicated 2 times.
0.18

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

15 {% if not comment_list %}
16 {# Get comments for a page #}
17 {% get_rb_comment_list for page as comment_list %}
18 {% get_comment_count for page as num_comments %}
19
20 {% if show_comment_count %}
21 <div class="clearfix">
22 <div class="heading-title heading-border-bottom heading-color">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT (SUBSTRING(tree_path, 1, 10)) AS "tree_path_root",
       "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity",
       "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "accounts_userplan"."user_id",
       "accounts_userplan"."plan_id",
       "accounts_userplan"."expiry_date",
       "accounts_userplan"."last_paid_date",
       "accounts_userplan"."is_subscription_active",
       "accounts_userplan"."subscription_period",
       "accounts_userplan"."payment_source",
       "accounts_userplan"."stripe_customer_id",
       "accounts_userplan"."stripe_subscription_id",
       "accounts_userplan"."paypal_subscription_id",
       "accounts_userplan"."base_free_plan_id",
       "accounts_userplan"."is_reminder_sent",
       "plans_plan"."id",
       "plans_plan"."type",
       "plans_plan"."version",
       "plans_plan"."stripe_id",
       "plans_plan"."paypal_id",
       "plans_plan"."cost_single",
       "plans_plan"."cost_monthly",
       "plans_plan"."cost_yearly",
       "accounts_userprofile"."user_id",
       "accounts_userprofile"."last_mod_inv",
       "accounts_userprofile"."last_activity",
       "accounts_userprofile"."last_ip",
       "accounts_userprofile"."last_country_id",
       "accounts_userprofile"."last_agent",
       "accounts_userprofile"."is_email_verified",
       "accounts_userprofile"."is_email_idle",
       "accounts_userprofile"."email_last_clicked",
       "accounts_userprofile"."api_token",
       "accounts_userprofile"."real_name",
       "accounts_userprofile"."location",
       "accounts_userprofile"."brickset_url",
       "accounts_userprofile"."mocpages_url",
       "accounts_userprofile"."flickr_url",
       "accounts_userprofile"."eurobricks_url",
       "accounts_userprofile"."youtube_url",
       "accounts_userprofile"."bricklink_url",
       "accounts_userprofile"."brickowl_url",
       "accounts_userprofile"."bricksafe_url",
       "accounts_userprofile"."website_url",
       "accounts_userprofile"."facebook_url",
       "accounts_userprofile"."twitter_url",
       "accounts_userprofile"."karma",
       "accounts_userprofile"."trophy_badge_id",
       "accounts_userprofile"."comments",
       "accounts_userprofile"."mfhash_vector",
       "accounts_userprofile"."is_muted",
       "accounts_userprofile"."is_banned",
       "accounts_userprofile"."is_suspected_pirate",
       "accounts_userprofile"."muted_until",
       "accounts_userprofile"."blocked_operations",
       "accounts_userprofile"."is_guest",
       "accounts_userprofile"."guest_token"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
  LEFT OUTER JOIN
"auth_user"
    ON
("django_comments"."user_id" = "auth_user"."id")
  LEFT OUTER JOIN
"accounts_userplan"
    ON
("auth_user"."id" = "accounts_userplan"."user_id")
  LEFT OUTER JOIN
"plans_plan"
    ON
("accounts_userplan"."plan_id" = "plans_plan"."id")
  LEFT OUTER JOIN
"accounts_userprofile"
    ON
("auth_user"."id" = "accounts_userprofile"."user_id")
 WHERE
("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
 ORDER BY
1 DESC, "threadedcomments_comment"."tree_path" ASC
 LIMIT
50
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") LEFT OUTER JOIN "auth_user" ON ("django_comments"."user_id" = "auth_user"."id") LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") LEFT OUTER JOIN "plans_plan" ON ("accounts_userplan"."plan_id" = "plans_plan"."id") LEFT OUTER JOIN "accounts_userprofile" ON ("auth_user"."id" = "accounts_userprofile"."user_id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '41188' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed") ORDER BY 1 DESC, "threadedcomments_comment"."tree_path" ASC LIMIT 50
0.72

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

89 {% with cache_timeout=user.is_authenticated|yesno:"0,300" %}
90 {% cache cache_timeout 'comments_list_v2' request.user.is_authenticated page.id request.GET.page request.GET.showmore num_comments %}
91
92 <div class="comments {% if not comment_list.0 %} empty{% endif %} mb-30">
93 {% if use_context %}
94 {# Flat list of comments #}
95 {% for comment in comment_list.0|make_proxy_users %}
96 <ul class="comment list-unstyled comment-list-wrapper">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 682046
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 682046 LIMIT 21
6 similar queries. Duplicated 6 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.15

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 682046
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 682046 LIMIT 21
6 similar queries. Duplicated 6 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.14

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 682046
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 682046 LIMIT 21
6 similar queries. Duplicated 6 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.12

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 682046
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 682046 LIMIT 21
6 similar queries. Duplicated 6 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.12

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.14

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 682046
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 682046 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
8 similar queries. Duplicated 8 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 682046
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 682046 LIMIT 21
6 similar queries. Duplicated 6 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.12

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 682046) LIMIT 1
11 similar queries. Duplicated 11 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT COUNT(*) AS "__count"
  FROM
"accounts_userprofile"
 WHERE
UPPER("accounts_userprofile"."location"::text) = UPPER('Netherlands')
SELECT ••• FROM "accounts_userprofile" WHERE UPPER("accounts_userprofile"."location"::text) = UPPER('Netherlands')
2 similar queries. Duplicated 2 times.
0.31

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_num_users_at_location(594)
  return UserProfile.objects.filter(location__iexact=self.profile.location).count()

5 <div class="mb-30 border box-light">
6 <div class="box-inner">
7 <h4 class="mb-0"><i class="fa fa-globe"></i> {{ profile_user.profile.location }}</h4>
8 <p><small>There are {{ profile_user.get_num_users_at_location }} users from this location</small></p>
9
10 {% if profile_user.profile.website_url and profile_user.level >= settings.LEVEL_SHOW_PERSONAL_URL %}
11 <div class="trunc"><a href="{% get_external_url profile_user.profile.website_url 'action=ProfileLink&site=Personal'|addstr:'&user='|addstr:profile_user.id %}" target="_blank" rel="nofollow"><i class="fa fa-external-link"></i> {{ profile_user.profile.website_url }}</a></div>
12 {% endif %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_location.html

SELECT COUNT(*) AS "__count"
  FROM
"accounts_usertrophy"
 WHERE
"accounts_usertrophy"."user_id" = 682046
SELECT ••• FROM "accounts_usertrophy" WHERE "accounts_usertrophy"."user_id" = 682046
2 similar queries. Duplicated 2 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./accounts/views/profile.py in user_profile(362)
  return render(request, 'accounts/user_profile.html', context)

1 {% if profile_user.trophies.count > 0 %}
2 <div class="mb-30 border box-light">
3 <div class="box-inner">
4 <h4><i class="fa fa-trophy"></i> TROPHY CASE</h4>
5 {% for trophy in profile_user.trophies.all %}

/home/nathan/rb/site/accounts/templates/accounts/includes/user_profile_navbar_trophy.html

Log messages

No messages logged.