Firestarter FS9 Battlemech

MOC-199720795 parts
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
  • MOC-199720 Firestarter FS9 Battlemech
Buy:
PDF Building Instructions
Cost:
CA$5.00 CAD Have a coupon?
Want to see more MOCS like this? Create an account to find MOCs you can build from the parts you already own

FOLLOWERS

345

LIKES

!!!INSTRUCTIONS ARE ONLY AVAILABLE THROUGH REBRICKABLE.COM ALL OTHERS ARE ILLEGITIMATE!!!

  • +/-790 pieces, digitally designed, build tested, and refined multiple times.

  • Freestanding and posable, articulating toes, ankles, knees, hips, torso, shoulders, and elbows

  • Accommodates minifigure mechwarrior

  • Alternate Colour XML files available with purchase: Ice (Azure), Dessert, Camo, and Stormtrooper (White).

  • This is a custom build, not a set. As such it is a fairly complex build and will take some care to handle while building and when complete.

  • DISPLAY MOC…NOT…PLAY MOC…needs to be handled with care, and supported on BOTH legs

  • Not all connections used are 'legal' (as deemed by Lego), and may cause very minor stress on some parts (eg. cutting 3mm pneumatic tube for back to back open stud connections, etc).

  • FOR BEST RESULTS USE REAL LEGOs...they have superior clutch power...

  • For best friction, use NEW rotation joints, and tow balls+sockets, large ball joints use the ones with the small holes in the balls, and latest socket design

  • Hansen Bricks has a wonderful hex-base here:



  • HBS Battletech Source Material
    to your account to add or reply to comments.
    • Avatar image for Rebrickable user Herbane
      2 months ago Herbane Level 15 MOC Designer
      Thought this was an alt of the gingerbread AT-AT for a second
      • Avatar image for Rebrickable user canuck33
        1 month, 2 weeks ago canuck33 Level 13 Designed this MOC DESIGNER
        Yeah totally, I actually bought that set to re=up my dark orange pieces for more builds…

    Rebrickable does not sell LEGO Parts.

    We provide links to third-party stores that sell LEGO products. If you use these stores, you are not buying from Rebrickable. Click the button below to search the stores.

    DJDT

    Time

    Resource usage

    Resource Value
    User CPU time 323.183 msec
    System CPU time 4.030 msec
    Total CPU time 327.213 msec
    Elapsed time 351.525 msec
    Context switches 185 voluntary, 10 involuntary

    Browser timing

    Timing attribute Timeline Milliseconds since navigation start (+length)

    SQL queries from 1 connection

    • default 25.91 ms (81 queries including 61 similar and 43 duplicates )
    Query Timeline Time (ms) Action
    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_moc"."baseset_ptr_id",
           "lego_moc"."designer_id",
           "lego_moc"."detail_url",
           "lego_moc"."gallery_url",
           "lego_moc"."bi_url",
           "lego_moc"."cad_url",
           "lego_moc"."video",
           "lego_moc"."bi_type",
           "lego_moc"."is_for_sale",
           "lego_moc"."is_hosted",
           "lego_moc"."cost",
           "lego_moc"."currency_id",
           "lego_moc"."parent_set_1_id",
           "lego_moc"."parent_set_2_id",
           "lego_moc"."parent_set_3_id",
           "lego_moc"."parent_set_4_id",
           "lego_moc"."parent_set_5_id",
           "lego_moc"."parent_inv_1_id",
           "lego_moc"."parent_inv_2_id",
           "lego_moc"."parent_inv_3_id",
           "lego_moc"."parent_inv_4_id",
           "lego_moc"."parent_inv_5_id",
           "lego_moc"."parent_type",
           "lego_moc"."is_allowed_premium",
           "lego_moc"."is_locked",
           "lego_moc"."last_social_post",
           "lego_moc"."is_review_requested",
           "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",
           T4."id",
           T4."parent_id",
           T4."name",
           T4."slug",
           T4."set_count",
           T4."t1_id",
           T4."t1_name",
           T4."t2_name",
           T4."t3_name",
           T4."lego_blurb",
           T4."banner_img",
           T4."descr",
           T5."id",
           T5."parent_id",
           T5."name",
           T5."slug",
           T5."set_count",
           T5."t1_id",
           T5."t1_name",
           T5."t2_name",
           T5."t3_name",
           T5."lego_blurb",
           T5."banner_img",
           T5."descr",
           "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",
           "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",
           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",
           "lego_setstatstotal"."set_id",
           "lego_setstatstotal"."hits",
           "lego_setstatstotal"."builds",
           "lego_setstatstotal"."likes",
           "lego_setstatstotal"."bi_downloads",
           "lego_setstatstotal"."featured_hits",
           "lego_setstatstotal"."user_hits"
      FROM
    "lego_moc"
     INNER JOIN
    "lego_baseset"
        ON
    ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
     INNER JOIN
    "lego_theme"
        ON
    ("lego_baseset"."theme_id" = "lego_theme"."id")
      LEFT OUTER JOIN
    "lego_theme" T4
        ON
    ("lego_theme"."parent_id" = T4."id")
      LEFT OUTER JOIN
    "lego_theme" T5
        ON
    (T4."parent_id" = T5."id")
     INNER JOIN
    "lego_designer"
        ON
    ("lego_moc"."designer_id" = "lego_designer"."user_ptr_id")
     INNER JOIN
    "auth_user"
        ON
    ("lego_designer"."user_ptr_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
    "lego_baseset" T10
        ON
    ("lego_moc"."parent_set_1_id" = T10."id")
      LEFT OUTER JOIN
    "lego_setstatstotal"
        ON
    ("lego_baseset"."id" = "lego_setstatstotal"."set_id")
     WHERE
    "lego_baseset"."set_num" = 'MOC-199720'
     LIMIT
    21
    SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") INNER JOIN "lego_theme" ON ("lego_baseset"."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T4 ON ("lego_theme"."parent_id" = T4."id") LEFT OUTER JOIN "lego_theme" T5 ON (T4."parent_id" = T5."id") INNER JOIN "lego_designer" ON ("lego_moc"."designer_id" = "lego_designer"."user_ptr_id") INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_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 "lego_baseset" T10 ON ("lego_moc"."parent_set_1_id" = T10."id") LEFT OUTER JOIN "lego_setstatstotal" ON ("lego_baseset"."id" = "lego_setstatstotal"."set_id") WHERE "lego_baseset"."set_num" = 'MOC-199720' LIMIT 21
    2.65

    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/./lego/views/mocs.py in moc_details(423)
      moc = Moc.all_objects.select_related('designer', 'stats').get(set_num=set_num)
    
    
    SELECT DISTINCT ("taggit_taggeditem"."object_id") AS "_prefetch_related_val",
           "taggit_tag"."id",
           "taggit_tag"."name",
           "taggit_tag"."slug"
      FROM
    "taggit_tag"
     INNER JOIN
    "taggit_taggeditem"
        ON
    ("taggit_tag"."id" = "taggit_taggeditem"."tag_id")
     INNER JOIN
    "django_content_type"
        ON
    ("taggit_taggeditem"."content_type_id" = "django_content_type"."id")
     WHERE
    ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc' AND "taggit_taggeditem"."object_id" IN (242646))
    SELECT ••• FROM "taggit_tag" INNER JOIN "taggit_taggeditem" ON ("taggit_tag"."id" = "taggit_taggeditem"."tag_id") INNER JOIN "django_content_type" ON ("taggit_taggeditem"."content_type_id" = "django_content_type"."id") WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc' AND "taggit_taggeditem"."object_id" IN (242646))
    0.28

    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/./lego/views/mocs.py in moc_details(423)
      moc = Moc.all_objects.select_related('designer', 'stats').get(set_num=set_num)
    
    
    SELECT "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"
      FROM
    "lego_inventory"
     WHERE
    ("lego_inventory"."set_id" = 242646 AND "lego_inventory"."version" = 1)
     LIMIT
    21
    SELECT ••• FROM "lego_inventory" WHERE ("lego_inventory"."set_id" = 242646 AND "lego_inventory"."version" = 1) LIMIT 21
    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/./lego/views/mocs.py in moc_details(523)
      inventory = get_object_or_404(Inventory.all_objects, set=moc, version=inventory_version)
    
    
    SELECT "lego_changelog"."id",
           "lego_changelog"."timestamp",
           "lego_changelog"."user_id",
           "lego_changelog"."model",
           "lego_changelog"."instance_id",
           "lego_changelog"."set_num",
           "lego_changelog"."part_num",
           "lego_changelog"."old_value",
           "lego_changelog"."new_value"
      FROM
    "lego_changelog"
     WHERE
    "lego_changelog"."set_num" = 'MOC-199720'
     ORDER BY
    "lego_changelog"."timestamp" DESC
    SELECT ••• FROM "lego_changelog" WHERE "lego_changelog"."set_num" = 'MOC-199720' ORDER BY "lego_changelog"."timestamp" DESC
    10.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/./lego/views/mocs.py in moc_details(538)
      changes = moc.get_change_summary()
    
    /home/nathan/rb/site/./lego/models/sets.py in get_change_summary(1121)
      changes = ChangeLog.get_changes(set_num=self.set_num)
    
    /home/nathan/rb/site/./lego/models/changes.py in get_changes(276)
      if len(changes) > 0:
    
    
    SELECT "lego_designerdiscount"."id",
           "lego_designerdiscount"."designer_id",
           "lego_designerdiscount"."name",
           "lego_designerdiscount"."start_date",
           "lego_designerdiscount"."end_date",
           "lego_designerdiscount"."discount_pct",
           "lego_designerdiscount"."mocs"
      FROM
    "lego_designerdiscount"
     WHERE
    ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:13.958482+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:13.958479+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646')
     ORDER BY
    "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC
     LIMIT
    1
    SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:13.958482+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:13.958479+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1
    4 similar queries.
    0.34

    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/./lego/views/mocs.py in moc_details(553)
      context['applied_discount'] = DesignerDiscount.get_moc_discount(moc.id)
    
    /home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(440)
      return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
    
    
    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"."id" = 456595)
     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"."id" = 456595) LIMIT 21
    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/./lego/views/mocs.py in moc_details(622)
      context['designer_ga_tracking_id'] = moc.designer.get_ga_tracking_id()
    
    /home/nathan/rb/site/./lego/models/designers.py in get_ga_tracking_id(89)
      user = ProxyUser.objects.get(id=self.id)  # Designer class won't have options pre-loaded so do a lookup instead
    
    
    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 (456595)
    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 (456595)
    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/./lego/views/mocs.py in moc_details(622)
      context['designer_ga_tracking_id'] = moc.designer.get_ga_tracking_id()
    
    /home/nathan/rb/site/./lego/models/designers.py in get_ga_tracking_id(89)
      user = ProxyUser.objects.get(id=self.id)  # Designer class won't have options pre-loaded so do a lookup instead
    
    
    SELECT "accounts_usersetting"."id",
           "accounts_usersetting"."user_id",
           "accounts_usersetting"."name",
           "accounts_usersetting"."value"
      FROM
    "accounts_usersetting"
     WHERE
    ("accounts_usersetting"."name" = 'personalisation' AND "accounts_usersetting"."user_id" = 456595)
    SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'personalisation' AND "accounts_usersetting"."user_id" = 456595)
    2 similar queries.
    0.19

    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/./lego/views/mocs.py in moc_details(622)
      context['designer_ga_tracking_id'] = moc.designer.get_ga_tracking_id()
    
    /home/nathan/rb/site/./lego/models/designers.py in get_ga_tracking_id(90)
      ga_tracking_id = user.get_personalisation_option('ga_tracking_id')
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in get_personalisation_option(175)
      options = self.get_personalisation_options()
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in get_personalisation_options(167)
      if len(self.personalisation_options) == 0:
    
    
    SELECT COUNT(*) AS "__count"
      FROM
    "django_comments"
     WHERE
    ("django_comments"."content_type_id" = 31 AND NOT "django_comments"."is_removed" AND "django_comments"."object_pk" = '242646')
    SELECT ••• FROM "django_comments" WHERE ("django_comments"."content_type_id" = 31 AND NOT "django_comments"."is_removed" AND "django_comments"."object_pk" = '242646')
    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/./lego/views/mocs.py in moc_details(637)
      context['num_comments'] = Comment.objects.filter(object_pk=moc.id, content_type=ContentType.objects.get_for_model(moc), is_removed=False).count()
    
    
    SELECT "lego_designerdiscount"."id",
           "lego_designerdiscount"."designer_id",
           "lego_designerdiscount"."name",
           "lego_designerdiscount"."start_date",
           "lego_designerdiscount"."end_date",
           "lego_designerdiscount"."discount_pct",
           "lego_designerdiscount"."mocs"
      FROM
    "lego_designerdiscount"
     WHERE
    ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:13.971146+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:13.971144+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646')
     ORDER BY
    "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC
     LIMIT
    1
    SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:13.971146+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:13.971144+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1
    4 similar queries.
    0.43

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_discounted_cost(380)
      discount = DesignerDiscount.get_moc_discount(self.id)
    
    /home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(440)
      return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
    
    
    80 {% endif %}
    81 "offers": {
    82 "@type": "Offer",
    83 "price": "{{ moc.get_discounted_cost|floatformat:2 }}",
    84 "priceCurrency": "{{ moc.currency.code }}",
    85 "availability": "OnlineOnly"
    86 }
    87 }

    /home/nathan/rb/site/lego/templates/mocs/moc_details.html

    SELECT "geo_currency"."id",
           "geo_currency"."code",
           "geo_currency"."rate"
      FROM
    "geo_currency"
     WHERE
    "geo_currency"."id" = 155
     LIMIT
    21
    SELECT ••• FROM "geo_currency" WHERE "geo_currency"."id" = 155 LIMIT 21
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    81 "offers": {
    82 "@type": "Offer",
    83 "price": "{{ moc.get_discounted_cost|floatformat:2 }}",
    84 "priceCurrency": "{{ moc.currency.code }}",
    85 "availability": "OnlineOnly"
    86 }
    87 }
    88 </script>

    /home/nathan/rb/site/lego/templates/mocs/moc_details.html

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

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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 COUNT(*) AS "__count"
      FROM
    "lego_inventory"
     WHERE
    ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 242646)
    SELECT ••• FROM "lego_inventory" WHERE ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 242646)
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/sets.py in get_num_inventories(981)
      return Inventory.objects.filter(set=self).count()
    
    
    16 <div class="mb-10">
    17 <span>{{ moc.set_num }}</span>
    18 &bull;
    19 <span><a href="#parts_scroll" title="See the parts in this MOC's inventory">{{ moc.num_parts }} parts{% if moc.get_num_inventories > 1 %} <span class="label label-primary">v{{ inventory.version }}</span>{% endif %}</a></span>
    20 </div>
    21
    22 </div>
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top.html

    SELECT "lego_mocimage"."id",
           "lego_mocimage"."moc_id",
           "lego_mocimage"."is_primary",
           "lego_mocimage"."file_extension"
      FROM
    "lego_mocimage"
     WHERE
    "lego_mocimage"."moc_id" = 242646
     ORDER BY
    "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
    SELECT ••• FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 242646 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
    3 similar queries. Duplicated 3 times.
    0.47

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    25 <div class="alert alert-danger"><h4><i class="fa fa-warning"></i> This MOC is disabled.</h4></div>
    26 {% endif %}
    27
    28 {% if moc.use_fake_image %}
    29
    30 {% thumbs moc.use_fake_image.img_dir settings.THUMBS_OPTIONS_MOC_TILE as thumb_img %}
    31 {% thumbs_encoded moc.use_fake_image.img_dir settings.THUMBS_OPTIONS_MOC_MAIN_PREVIEW as preview_img %}
    32 {% thumbs moc.use_fake_image.img_dir settings.THUMBS_OPTIONS_MOC_MAIN get_real_dims=1 as first_image %}

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top.html

    SELECT "lego_mocimage"."id",
           "lego_mocimage"."moc_id",
           "lego_mocimage"."is_primary",
           "lego_mocimage"."file_extension"
      FROM
    "lego_mocimage"
     WHERE
    "lego_mocimage"."moc_id" = 242646
     ORDER BY
    "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
    SELECT ••• FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 242646 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    42 data-directionNav="true" data-controlsContainer="#slider_controls">
    43 {# adding display-flex puts images side-by-side so when flexslider is initialising it doesn't stack them vertically briefly which screws up CLS #}
    44 <ul class="slides display-flex">
    45 {% for image in moc.moc_images.all %}
    46 {% if forloop.counter <= 12 %}
    47 {% thumbs image.img_dir settings.THUMBS_OPTIONS_MOC_TILE as thumb_img %}
    48 {% if forloop.counter == 1 %}
    49 {% thumbs_encoded image.img_dir settings.THUMBS_OPTIONS_MOC_MAIN_PREVIEW as preview_img %}

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top.html

    SELECT "lego_mocimage"."id",
           "lego_mocimage"."moc_id",
           "lego_mocimage"."is_primary",
           "lego_mocimage"."file_extension"
      FROM
    "lego_mocimage"
     WHERE
    "lego_mocimage"."moc_id" = 242646
     ORDER BY
    "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
    SELECT ••• FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 242646 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
    3 similar queries. Duplicated 3 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    74 </ul>
    75 </div>
    76 {# pre-create controls div so we can size column height without CLS impact and prevents flicker #}
    77 <div class="flexslider-controls-container {% if moc.moc_images.all|length > 6 %}flexslider-controls-container-2rows{% endif %}">
    78 <div id="slider_controls" class="flexslider-mocs text-center"></div>
    79 </div>
    80
    81 {% else %}

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top.html

    SELECT COUNT(*) AS "__count"
      FROM
    "lego_inventory"
     WHERE
    ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 242646)
    SELECT ••• FROM "lego_inventory" WHERE ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 242646)
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/sets.py in get_num_inventories(981)
      return Inventory.objects.filter(set=self).count()
    
    
    16 <div class=" mb-30">
    17 <span>{{ set.set_num }}</span>
    18 &bull;
    19 <span><a href="#parts_scroll" title="See the parts in this MOC's inventory">{{ set.num_parts }} parts{% if set.get_num_inventories > 1 %} <span class="label label-primary">v{{ inventory.version }}</span>{% endif %}</a></span>
    20 &bull;
    21 <span><a href="{% url 'browse_mocs' %}?theme={{ set.theme_id }}" title="Find other MOCs in this theme">{{ set.theme.get_full_name }}</a></span>
    22 </div>
    23 </div>

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top_buy.html

    SELECT "blog_article"."id",
           "blog_article"."title",
           "blog_article"."author_id",
           "blog_article"."published_date",
           "blog_article"."is_active",
           "blog_article"."body",
           "blog_article"."meta_description",
           "blog_article"."meta_img",
           "blog_article"."slug",
           "blog_article"."category_id",
           "blog_article"."ads",
           "blog_article"."show_ads_for_set_num",
           "blog_article"."review_for_set_num",
           "blog_article"."status",
           "blog_article"."scheduled_net",
           "blog_article"."ready_for_review_date",
           "blog_article"."is_sensitive",
           "blog_article"."search_vector"
      FROM
    "blog_article"
     WHERE
    ("blog_article"."is_active" AND "blog_article"."review_for_set_num"::text LIKE '%MOC-199720%')
     ORDER BY
    "blog_article"."published_date" ASC
    SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."review_for_set_num"::text LIKE '%MOC-199720%') ORDER BY "blog_article"."published_date" ASC
    0.25

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/sets.py in get_set_review(1393)
      for review in reviews:
    
    
    22 </div>
    23 </div>
    24
    25 {% with moc.get_set_review as review %}
    26 {% if review %}
    27 <div class="text-center">
    28 <a href="{{ review.get_absolute_url }}"><i class="fa fa-star"></i> See our Review of this MOC</a>
    29 </div>

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top_buy.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" = 456595
     LIMIT
    21
    SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 456595 LIMIT 21
    3 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_bi_preview_imgs(1463)
      user = User.objects.get(id=self.designer_id)
    
    
    31 {% endwith %}
    32
    33 <div class="row row-condensed">
    34 {% with moc.get_bi_preview_imgs as preview_imgs %}
    35 {% for img in preview_imgs %}
    36 <div class="col-condensed {% if preview_imgs|length == 2 %}col-xs-6{% elif preview_imgs|length == 1 %}col-xs-6 col-xs-offset-3{% else %}col-xs-4{% endif %}">
    37 <a class="lightbox" href="{% cachebuster img %}" data-plugin-options='{"type":"image", "zoom": {"enabled": "true"}}'>
    38 {% thumbs img settings.THUMBS_OPTIONS_MOC_PDF_PREVIEW calc_height=1 as img %}

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top_buy.html

    SELECT "accounts_usersetting"."id",
           "accounts_usersetting"."user_id",
           "accounts_usersetting"."name",
           "accounts_usersetting"."value"
      FROM
    "accounts_usersetting"
     WHERE
    ("accounts_usersetting"."name" = 'moc' AND "accounts_usersetting"."user_id" = 456595)
    SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'moc' AND "accounts_usersetting"."user_id" = 456595)
    2 similar queries.
    0.19

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_bi_preview_imgs(1466)
      if user.to_proxy().get_moc_option('preview_pdf_images'):
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in get_moc_option(221)
      options = self.get_moc_options()
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in get_moc_options(213)
      if len(self.moc_options) == 0:
    
    
    31 {% endwith %}
    32
    33 <div class="row row-condensed">
    34 {% with moc.get_bi_preview_imgs as preview_imgs %}
    35 {% for img in preview_imgs %}
    36 <div class="col-condensed {% if preview_imgs|length == 2 %}col-xs-6{% elif preview_imgs|length == 1 %}col-xs-6 col-xs-offset-3{% else %}col-xs-4{% endif %}">
    37 <a class="lightbox" href="{% cachebuster img %}" data-plugin-options='{"type":"image", "zoom": {"enabled": "true"}}'>
    38 {% thumbs img settings.THUMBS_OPTIONS_MOC_PDF_PREVIEW calc_height=1 as img %}

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top_buy.html

    SELECT "lego_mocinstructionspdfpreview"."id",
           "lego_mocinstructionspdfpreview"."bi_file_id",
           "lego_mocinstructionspdfpreview"."page_nums",
           "lego_mocinstructions"."id",
           "lego_mocinstructions"."moc_id",
           "lego_mocinstructions"."uploaded",
           "lego_mocinstructions"."file_size",
           "lego_mocinstructions"."to_be_uploaded",
           "lego_mocinstructions"."s3file_id",
           "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_files_s3file"."id",
           "lego_files_s3file"."file_size",
           "lego_files_s3file"."last_modified",
           "lego_files_s3file"."aws_mi_file",
           "lego_files_s3file"."linode_si_file",
           "lego_files_s3file"."linode_mi_file",
           "lego_files_s3file"."linode_media_file"
      FROM
    "lego_mocinstructionspdfpreview"
     INNER JOIN
    "lego_mocinstructions"
        ON
    ("lego_mocinstructionspdfpreview"."bi_file_id" = "lego_mocinstructions"."id")
     INNER JOIN
    "lego_baseset"
        ON
    ("lego_mocinstructions"."moc_id" = "lego_baseset"."id")
      LEFT OUTER JOIN
    "lego_files_s3file"
        ON
    ("lego_mocinstructions"."s3file_id" = "lego_files_s3file"."id")
     WHERE
    "lego_mocinstructions"."moc_id" = 242646
    SELECT ••• FROM "lego_mocinstructionspdfpreview" INNER JOIN "lego_mocinstructions" ON ("lego_mocinstructionspdfpreview"."bi_file_id" = "lego_mocinstructions"."id") INNER JOIN "lego_baseset" ON ("lego_mocinstructions"."moc_id" = "lego_baseset"."id") LEFT OUTER JOIN "lego_files_s3file" ON ("lego_mocinstructions"."s3file_id" = "lego_files_s3file"."id") WHERE "lego_mocinstructions"."moc_id" = 242646
    0.52

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_bi_preview_imgs(1467)
      img_urls = MocInstructionsPDFPreview.get_img_urls(self)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_img_urls(2673)
      files = sorted(files, key=lambda x: str(x.bi_file.file))
    
    
    31 {% endwith %}
    32
    33 <div class="row row-condensed">
    34 {% with moc.get_bi_preview_imgs as preview_imgs %}
    35 {% for img in preview_imgs %}
    36 <div class="col-condensed {% if preview_imgs|length == 2 %}col-xs-6{% elif preview_imgs|length == 1 %}col-xs-6 col-xs-offset-3{% else %}col-xs-4{% endif %}">
    37 <a class="lightbox" href="{% cachebuster img %}" data-plugin-options='{"type":"image", "zoom": {"enabled": "true"}}'>
    38 {% thumbs img settings.THUMBS_OPTIONS_MOC_PDF_PREVIEW calc_height=1 as img %}

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top_buy.html

    SELECT COUNT(*) AS "__count"
      FROM
    "lego_mocinstructions"
     WHERE
    "lego_mocinstructions"."moc_id" = 242646
    SELECT ••• FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 242646
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in has_instructions(514)
      return MocInstructions.objects.filter(moc_id=self.id).count() > 0
    
    
    44 </div>
    45
    46 {% if moc.is_for_sale and moc.is_hosted %}
    47 {% if user_moc_purchase %}
    48 {% url 'user_purchases' request.user.get_username as url %}
    49 <p>You have purchased this MOC! Download the files below or via your <a href="{{ url }}">MOC Purchases</a> page.</p>
    50 {% include "mocs/includes/render_moc_bi_files_sidebar.html" with purchase=user_moc_purchase bi_files=user_moc_purchase.bi_files %}
    51 {% elif purchase_pending %}

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top_buy.html

    SELECT "accounts_userterms"."id",
           "accounts_userterms"."user_id",
           "accounts_userterms"."terms"
      FROM
    "accounts_userterms"
     WHERE
    "accounts_userterms"."user_id" = 456595
     LIMIT
    21
    SELECT ••• FROM "accounts_userterms" WHERE "accounts_userterms"."user_id" = 456595 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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)
    
    
    1 {% load crispy_forms_tags %}
    2 {% load rb_helpers %}
    3 {% if moc.designer.terms.terms %}
    4 <div class="row p-10">
    5 <div class="col-xs-8 col-xs-offset-4">
    6 <a href="{% url 'user_terms' moc.designer.username %}" target="_blank"><i class="fa fa-check-square-o"></i> Terms of Sale</a>
    7 </div>

    /home/nathan/rb/site/lego/templates/mocs/includes/buy_moc_bi_form.html

    SELECT "lego_mocinstructions"."id",
           "lego_mocinstructions"."moc_id",
           "lego_mocinstructions"."uploaded",
           "lego_mocinstructions"."file_size",
           "lego_mocinstructions"."to_be_uploaded",
           "lego_mocinstructions"."s3file_id"
      FROM
    "lego_mocinstructions"
     WHERE
    "lego_mocinstructions"."moc_id" = 242646
    SELECT ••• FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 242646
    2 similar queries. Duplicated 2 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_bi_type_generic(260)
      if self.has_pdf_instructions():
    
    /home/nathan/rb/site/./lego/models/mocs.py in has_pdf_instructions(535)
      for bif in bi_files:
    
    
    10 <div class="row p-10">
    11 <div class="col-xs-3"><span class="pull-right">Buy:</span></div>
    12 <div class="col-xs-9">
    13 <b>{{ moc.get_bi_type_generic }}
    14 <a href="/help/types-of-moc-building-instructions/" target="_blank"><i class="fa fa-question-circle"></i></a>
    15 </b>
    16 </div>
    17 </div>

    /home/nathan/rb/site/lego/templates/mocs/includes/buy_moc_bi_form.html

    SELECT "lego_files_s3file"."id",
           "lego_files_s3file"."file_size",
           "lego_files_s3file"."last_modified",
           "lego_files_s3file"."aws_mi_file",
           "lego_files_s3file"."linode_si_file",
           "lego_files_s3file"."linode_mi_file",
           "lego_files_s3file"."linode_media_file"
      FROM
    "lego_files_s3file"
     WHERE
    "lego_files_s3file"."id" = 549831
     LIMIT
    21
    SELECT ••• FROM "lego_files_s3file" WHERE "lego_files_s3file"."id" = 549831 LIMIT 21
    2 similar queries. Duplicated 2 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_bi_type_generic(260)
      if self.has_pdf_instructions():
    
    /home/nathan/rb/site/./lego/models/mocs.py in has_pdf_instructions(536)
      if bif.is_pdf:
    
    /home/nathan/rb/site/./lego/models/mocs.py in is_pdf(2139)
      return self.file.name.lower().endswith('.pdf')
    
    /home/nathan/rb/site/./lego/models/mocs.py in file(2034)
      if self.s3file:
    
    
    10 <div class="row p-10">
    11 <div class="col-xs-3"><span class="pull-right">Buy:</span></div>
    12 <div class="col-xs-9">
    13 <b>{{ moc.get_bi_type_generic }}
    14 <a href="/help/types-of-moc-building-instructions/" target="_blank"><i class="fa fa-question-circle"></i></a>
    15 </b>
    16 </div>
    17 </div>

    /home/nathan/rb/site/lego/templates/mocs/includes/buy_moc_bi_form.html

    SELECT "lego_mocinstructions"."id",
           "lego_mocinstructions"."moc_id",
           "lego_mocinstructions"."uploaded",
           "lego_mocinstructions"."file_size",
           "lego_mocinstructions"."to_be_uploaded",
           "lego_mocinstructions"."s3file_id"
      FROM
    "lego_mocinstructions"
     WHERE
    "lego_mocinstructions"."moc_id" = 242646
    SELECT ••• FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 242646
    2 similar queries. Duplicated 2 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in show_no_pdf_instructions_warning(531)
      return not self.has_pdf_or_zip_instructions()
    
    /home/nathan/rb/site/./lego/models/mocs.py in has_pdf_or_zip_instructions(542)
      for bif in bi_files:
    
    
    15 </b>
    16 </div>
    17 </div>
    18 {% if moc.show_no_pdf_instructions_warning %}
    19 {% show_warning '' 'This Premium MOC does NOT include PDF-formatted instructions.' %}
    20 {% endif %}
    21 <div class="row p-10">
    22 <div class="col-xs-3"><span class="pull-right">Cost:</span></div>

    /home/nathan/rb/site/lego/templates/mocs/includes/buy_moc_bi_form.html

    SELECT "lego_files_s3file"."id",
           "lego_files_s3file"."file_size",
           "lego_files_s3file"."last_modified",
           "lego_files_s3file"."aws_mi_file",
           "lego_files_s3file"."linode_si_file",
           "lego_files_s3file"."linode_mi_file",
           "lego_files_s3file"."linode_media_file"
      FROM
    "lego_files_s3file"
     WHERE
    "lego_files_s3file"."id" = 549831
     LIMIT
    21
    SELECT ••• FROM "lego_files_s3file" WHERE "lego_files_s3file"."id" = 549831 LIMIT 21
    2 similar queries. Duplicated 2 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in show_no_pdf_instructions_warning(531)
      return not self.has_pdf_or_zip_instructions()
    
    /home/nathan/rb/site/./lego/models/mocs.py in has_pdf_or_zip_instructions(543)
      if bif.is_pdf or bif.is_zip:
    
    /home/nathan/rb/site/./lego/models/mocs.py in is_pdf(2139)
      return self.file.name.lower().endswith('.pdf')
    
    /home/nathan/rb/site/./lego/models/mocs.py in file(2034)
      if self.s3file:
    
    
    15 </b>
    16 </div>
    17 </div>
    18 {% if moc.show_no_pdf_instructions_warning %}
    19 {% show_warning '' 'This Premium MOC does NOT include PDF-formatted instructions.' %}
    20 {% endif %}
    21 <div class="row p-10">
    22 <div class="col-xs-3"><span class="pull-right">Cost:</span></div>

    /home/nathan/rb/site/lego/templates/mocs/includes/buy_moc_bi_form.html

    SELECT "lego_designerdiscount"."id",
           "lego_designerdiscount"."designer_id",
           "lego_designerdiscount"."name",
           "lego_designerdiscount"."start_date",
           "lego_designerdiscount"."end_date",
           "lego_designerdiscount"."discount_pct",
           "lego_designerdiscount"."mocs"
      FROM
    "lego_designerdiscount"
     WHERE
    ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:14.005466+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:14.005465+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646')
     ORDER BY
    "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC
     LIMIT
    1
    SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:14.005466+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:14.005465+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1
    4 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_discounted_cost(380)
      discount = DesignerDiscount.get_moc_discount(self.id)
    
    /home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(440)
      return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
    
    
    23 <div class="col-xs-9">
    24 <span id="moc_bi_cost_data"
    25 data-coupon="{{ moc.applied_coupon.code }}"
    26 data-cost="{{ moc.get_discounted_cost }}"
    27 data-commission="{{ moc.get_discounted_cost|multiply_var:moc.get_commission_fee }}"
    28 data-currency="{{ moc.currency.code }}"></span>
    29 {% if applied_discount %}
    30 <b>{{ moc.get_formatted_discounted_cost }}</b>

    /home/nathan/rb/site/lego/templates/mocs/includes/buy_moc_bi_form.html

    SELECT "lego_designerdiscount"."id",
           "lego_designerdiscount"."designer_id",
           "lego_designerdiscount"."name",
           "lego_designerdiscount"."start_date",
           "lego_designerdiscount"."end_date",
           "lego_designerdiscount"."discount_pct",
           "lego_designerdiscount"."mocs"
      FROM
    "lego_designerdiscount"
     WHERE
    ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:14.006313+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:14.006312+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646')
     ORDER BY
    "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC
     LIMIT
    1
    SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-24T01:44:14.006313+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-24T01:44:14.006312+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '242646') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1
    4 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/mocs.py in get_discounted_cost(380)
      discount = DesignerDiscount.get_moc_discount(self.id)
    
    /home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(440)
      return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
    
    
    24 <span id="moc_bi_cost_data"
    25 data-coupon="{{ moc.applied_coupon.code }}"
    26 data-cost="{{ moc.get_discounted_cost }}"
    27 data-commission="{{ moc.get_discounted_cost|multiply_var:moc.get_commission_fee }}"
    28 data-currency="{{ moc.currency.code }}"></span>
    29 {% if applied_discount %}
    30 <b>{{ moc.get_formatted_discounted_cost }}</b>
    31 <strike class="text-muted"><small>{{ moc.get_formatted_cost }}</small></strike>

    /home/nathan/rb/site/lego/templates/mocs/includes/buy_moc_bi_form.html

    SELECT "lego_designerpaypalaccount"."id",
           "lego_designerpaypalaccount"."user_id",
           "lego_designerpaypalaccount"."paypal_email",
           "lego_designerpaypalaccount"."paypal_merchant_id"
      FROM
    "lego_designerpaypalaccount"
     WHERE
    "lego_designerpaypalaccount"."user_id" = 456595
     LIMIT
    21
    SELECT ••• FROM "lego_designerpaypalaccount" WHERE "lego_designerpaypalaccount"."user_id" = 456595 LIMIT 21
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    73 <div class="col-xs-9"><a href="{% url 'designer_moc_sales' moc.designer.username %}?moc={{ moc.id }}"><b>{{ num_purchases }}</b></a> {% include 'rb/render_popover.html' with help_topic='MOC Sales' help_content='Only Rebrickable admins and the MOC designer can see the number of sales for a MOC.' %}</div>
    74 </div>
    75 {% endif %}
    76 {% if not moc.designer.paypal_account.paypal_merchant_id and not moc.designer.paypal_account.paypal_email and not moc.designer.stripe_account.stripe_user_id %}
    77 {% show_warning 'No Payment Methods' 'Sorry, it looks like the designer does not have any active payment methods setup yet.' %}
    78 {% else %}
    79 {# if just bought, page is reloaded with payment_intent=pi_3M3XnZJrPSxBprU31v9t65Or&payment_intent_client_secret=pi_3M3XnZJrPSxBprU31v9t65Or_secret_Ma8Z1z6OmxIskPFbWBJKhILUo&redirect_status=succeeded #}
    80 <div id="buy_moc_error_msg_nomodal"></div>

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_top_buy.html

    SELECT COUNT(*) AS "__count"
      FROM
    "lego_designerfollower"
     WHERE
    "lego_designerfollower"."designer_id" = 456595
    SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 456595
    4 similar queries. Duplicated 4 times.
    0.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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    9 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    10 </a>
    11 {% else %}
    12 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    13 {% endif %}
    14 {% if request.user.is_authenticated %}
    15 {# designer_follow_btn is a class because it can appear twice on a moc (info tab on mobile) #}
    16 <div class="designer_follow_btn_{{ set.designer.id }}">

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_likes_follows.html

    SELECT COUNT(*) AS "__count"
      FROM
    "lego_designerfollower"
     WHERE
    "lego_designerfollower"."designer_id" = 456595
    SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 456595
    4 similar queries. Duplicated 4 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/designers.py in get_num_followers_formatted(231)
      i = DesignerFollower.objects.filter(designer_id=self.id).count()
    
    
    9 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    10 </a>
    11 {% else %}
    12 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    13 {% endif %}
    14 {% if request.user.is_authenticated %}
    15 {# designer_follow_btn is a class because it can appear twice on a moc (info tab on mobile) #}
    16 <div class="designer_follow_btn_{{ set.designer.id }}">

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_likes_follows.html

    SELECT COUNT(*) AS "__count"
      FROM
    "accounts_usersetphoto"
     INNER JOIN
    "auth_user"
        ON
    ("accounts_usersetphoto"."user_id" = "auth_user"."id")
     WHERE
    ("accounts_usersetphoto"."is_active" AND "accounts_usersetphoto"."set_id" = 242646 AND "auth_user"."is_active")
    SELECT ••• FROM "accounts_usersetphoto" INNER JOIN "auth_user" ON ("accounts_usersetphoto"."user_id" = "auth_user"."id") WHERE ("accounts_usersetphoto"."is_active" AND "accounts_usersetphoto"."set_id" = 242646 AND "auth_user"."is_active")
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    43 <li><a href="#tab_photos" data-toggle="tab">
    44 <span class="hidden-xs">Photos</span>
    45 <span class="visible-xs text-center"><i class="fa fa-lg fa-photo"></i></span>
    46 <span class="badge badge-light hidden-xs">{{ user_set_photos.count }}</span>
    47 </a></li>
    48 {% if can_edit %}
    49 <li><a href="#tab_admin" data-toggle="tab" class="text-red">
    50 <span class="hidden-xs">Admin</span>

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_tabs.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.05

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.html

    SELECT 1 AS "a"
      FROM
    "lego_part"
     WHERE
    "lego_part"."part_num" = '888888'
     LIMIT
    1
    SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '888888' LIMIT 1
    14 similar queries. Duplicated 14 times.
    0.06

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
      return parse_cards(txt)
    
    /home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
      d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d)  # part eg 75c09
    
    /usr/lib/python3.10/re.py in sub(209)
      return _compile(pattern, flags).sub(repl, string, count)
    
    /home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
      if Part.all_objects.filter(part_num=x).exists():
    
    
    16 {% if request.user.get_personalisation_options.dark_mode %}
    17 {{ moc.descr|parse_cards|bbcode_dark_mode|bbcode|safe }}
    18 {% else %}
    19 {{ moc.descr|parse_cards|bbcode|safe }}
    20 {% endif %}
    21 </div>
    22 {% endif %}
    23

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_main_descr.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" = 'lego' AND "django_content_type"."model" = 'moc')
     LIMIT
    21
    SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc') LIMIT 21
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 31 AND "rb_comments_pagelocked"."object_id" = 242646)
     LIMIT
    1
    SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 31 AND "rb_comments_pagelocked"."object_id" = 242646) LIMIT 1
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 31 AND "django_comments"."object_pk" = '242646' 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" = 31 AND "django_comments"."object_pk" = '242646' 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
    1.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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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 ("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 (622030, 778590, 456595, 1132581)
    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 (622030, 778590, 456595, 1132581)
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 31 AND "django_comments"."object_pk" = '242646' 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" = 31 AND "django_comments"."object_pk" = '242646' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 31 AND "django_comments"."object_pk" = '242646' 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" = 31 AND "django_comments"."object_pk" = '242646' 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.93

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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 ("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 (622030, 778590, 456595, 1132581)
    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 (622030, 778590, 456595, 1132581)
    2 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 622030
     ORDER BY
    "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
     LIMIT
    1
    SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 622030 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
    5 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 622030
     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" = 622030 LIMIT 21
    3 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 622030)
     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" = 622030) LIMIT 1
    6 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 622030)
     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" = 622030) LIMIT 1
    6 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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
    "accounts_mocpurchase"
     WHERE
    ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 622030)
     LIMIT
    1
    SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 622030) LIMIT 1
    5 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
      if user.has_purchased_moc(moc.id):
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
      return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
    
    
    65 {% endif %}
    66 {% endif %}
    67 {% if page.is_moc %}
    68 {% get_verified_purchase comment.user page %}
    69 {% endif %}
    70 {% endif %}
    71 </div>
    72

    /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" = 778590
     ORDER BY
    "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
     LIMIT
    1
    SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 778590 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
    5 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 778590
     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" = 778590 LIMIT 21
    3 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 778590)
     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" = 778590) LIMIT 1
    6 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 778590)
     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" = 778590) LIMIT 1
    6 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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
    "accounts_mocpurchase"
     WHERE
    ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 778590)
     LIMIT
    1
    SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 778590) LIMIT 1
    5 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
      if user.has_purchased_moc(moc.id):
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
      return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
    
    
    65 {% endif %}
    66 {% endif %}
    67 {% if page.is_moc %}
    68 {% get_verified_purchase comment.user page %}
    69 {% endif %}
    70 {% endif %}
    71 </div>
    72

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

    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"
      FROM
    "threadedcomments_comment"
     INNER JOIN
    "django_comments"
        ON
    ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
     WHERE
    "threadedcomments_comment"."comment_ptr_id" = 1071066
     LIMIT
    21
    SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE "threadedcomments_comment"."comment_ptr_id" = 1071066 LIMIT 21
    2 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    105 {% if not comment.open and not comment.close %}</li>{% endif %}
    106 {% if comment.open %}
    107 <ul class="comment list-unstyled comment-list-wrapper">{% endif %}
    108 <li class="comment {% if comment.parent and comment.depth < 7 %}comment-reply{% endif %} comment-wrapper">
    109 {% include "comments/comment.html" %}
    110 {% for close in comment.close %}
    111 </li>
    112 </ul>

    /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" = 456595
     ORDER BY
    "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
     LIMIT
    1
    SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 456595 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
    5 similar queries. Duplicated 2 times.
    0.19

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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 "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" = 456595)
     LIMIT
    21
    SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 456595) 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in is_public_plan(654)
      return self.get_privacy_option('is_public_plan')
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_option(269)
      options = self.get_privacy_options()
    
    /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)
    
    
    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 }}
    65 {% endif %}
    66 {% endif %}
    67 {% if page.is_moc %}

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

    SELECT 1 AS "a"
      FROM
    "accounts_mocpurchase"
     WHERE
    ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 456595)
     LIMIT
    1
    SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 456595) LIMIT 1
    5 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
      if user.has_purchased_moc(moc.id):
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
      return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
    
    
    65 {% endif %}
    66 {% endif %}
    67 {% if page.is_moc %}
    68 {% get_verified_purchase comment.user page %}
    69 {% endif %}
    70 {% endif %}
    71 </div>
    72

    /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" = 1132581
     ORDER BY
    "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
     LIMIT
    1
    SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 1132581 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
    5 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 1132581
     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" = 1132581 LIMIT 21
    3 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 1132581)
     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" = 1132581) LIMIT 1
    6 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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" = 1132581)
     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" = 1132581) LIMIT 1
    6 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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
    "accounts_mocpurchase"
     WHERE
    ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 1132581)
     LIMIT
    1
    SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 1132581) LIMIT 1
    5 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
      if user.has_purchased_moc(moc.id):
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
      return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
    
    
    65 {% endif %}
    66 {% endif %}
    67 {% if page.is_moc %}
    68 {% get_verified_purchase comment.user page %}
    69 {% endif %}
    70 {% endif %}
    71 </div>
    72

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

    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"
      FROM
    "threadedcomments_comment"
     INNER JOIN
    "django_comments"
        ON
    ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
     WHERE
    "threadedcomments_comment"."comment_ptr_id" = 758683
     LIMIT
    21
    SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE "threadedcomments_comment"."comment_ptr_id" = 758683 LIMIT 21
    2 similar queries.
    0.19

    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    105 {% if not comment.open and not comment.close %}</li>{% endif %}
    106 {% if comment.open %}
    107 <ul class="comment list-unstyled comment-list-wrapper">{% endif %}
    108 <li class="comment {% if comment.parent and comment.depth < 7 %}comment-reply{% endif %} comment-wrapper">
    109 {% include "comments/comment.html" %}
    110 {% for close in comment.close %}
    111 </li>
    112 </ul>

    /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" = 456595
     ORDER BY
    "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
     LIMIT
    1
    SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 456595 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
    5 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.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 "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" = 456595)
     LIMIT
    21
    SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 456595) 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in is_public_plan(654)
      return self.get_privacy_option('is_public_plan')
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_option(269)
      options = self.get_privacy_options()
    
    /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)
    
    
    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 }}
    65 {% endif %}
    66 {% endif %}
    67 {% if page.is_moc %}

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

    SELECT 1 AS "a"
      FROM
    "accounts_mocpurchase"
     WHERE
    ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 456595)
     LIMIT
    1
    SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 242646 AND "accounts_mocpurchase"."user_id" = 456595) LIMIT 1
    5 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
      if user.has_purchased_moc(moc.id):
    
    /home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
      return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
    
    
    65 {% endif %}
    66 {% endif %}
    67 {% if page.is_moc %}
    68 {% get_verified_purchase comment.user page %}
    69 {% endif %}
    70 {% endif %}
    71 </div>
    72

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

    SELECT COUNT(*) AS "__count"
      FROM
    "lego_designerfollower"
     WHERE
    "lego_designerfollower"."designer_id" = 456595
    SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 456595
    4 similar queries. Duplicated 4 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    9 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    10 </a>
    11 {% else %}
    12 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    13 {% endif %}
    14 {% if request.user.is_authenticated %}
    15 {# designer_follow_btn is a class because it can appear twice on a moc (info tab on mobile) #}
    16 <div class="designer_follow_btn_{{ set.designer.id }}">

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_likes_follows.html

    SELECT COUNT(*) AS "__count"
      FROM
    "lego_designerfollower"
     WHERE
    "lego_designerfollower"."designer_id" = 456595
    SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 456595
    4 similar queries. Duplicated 4 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    /home/nathan/rb/site/./lego/models/designers.py in get_num_followers_formatted(231)
      i = DesignerFollower.objects.filter(designer_id=self.id).count()
    
    
    9 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    10 </a>
    11 {% else %}
    12 <h2 class="size-30 mt-0 mb-10 text-info num-followers" title="{{ set.designer.followers.count }}">{{ set.designer.get_num_followers_formatted }}</h2>
    13 {% endif %}
    14 {% if request.user.is_authenticated %}
    15 {# designer_follow_btn is a class because it can appear twice on a moc (info tab on mobile) #}
    16 <div class="designer_follow_btn_{{ set.designer.id }}">

    /home/nathan/rb/site/lego/templates/mocs/includes/render_moc_likes_follows.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" = 159879
     LIMIT
    21
    SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 159879 LIMIT 21
    3 similar queries.
    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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    5 {% cache cache_timeout 'change_summary' user.is_authenticated set.id 'v3' %}
    6 <div><small><i class="fa fa-fw fa-eye" title="Views"></i> {{ set.stats.hits|default:0|floor_100|intcomma }}</small></div>
    7 <div><small><i class="fa fa-fw fa-plus" title="Added"></i> {{ changes.added.timestamp }}
    8 {% if changes.added.user %}by
    9 <a href="{% url 'user_profile' changes.added.user.get_username %}">{{ changes.added.user.get_username }}</a>
    10 {% endif %}</small></div>
    11 <div><small><i class="fa fa-fw fa-edit" title="Updated"></i> {{ changes.updated.timestamp }}
    12 {% if changes.updated.user %}by

    /home/nathan/rb/site/lego/templates/sets/includes/render_change_summary.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" = 456595
     LIMIT
    21
    SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 456595 LIMIT 21
    3 similar queries. Duplicated 2 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/./lego/views/mocs.py in moc_details(690)
      return render(request, 'mocs/moc_details.html', context)
    
    
    9 <a href="{% url 'user_profile' changes.added.user.get_username %}">{{ changes.added.user.get_username }}</a>
    10 {% endif %}</small></div>
    11 <div><small><i class="fa fa-fw fa-edit" title="Updated"></i> {{ changes.updated.timestamp }}
    12 {% if changes.updated.user %}by
    13 <a href="{% url 'user_profile' changes.updated.user.get_username %}">{{ changes.updated.user.get_username }}</a>
    14 {% endif %}</small></div>
    15 <div class="mb-10"><small><a href="{% url 'change_log' %}?search_id={{ set.set_num }}">See Change Log for {{ set.set_num }}</a></small></div>
    16 {% if user.is_authenticated %}

    /home/nathan/rb/site/lego/templates/sets/includes/render_change_summary.html

    Log messages

    No messages logged.