minsk-hackerspace / hackerspace.by

Website of Minsk Hackerspace (Ruby on Rails)
https://hackerspace.by/
11 stars 20 forks source link

Навести порядок с методом User.active #565

Closed jekhor closed 1 year ago

jekhor commented 2 years ago

Возникла путаница с методами User.active и User#active? (методы класса и объекта соответственно). В одном случае — это юзеры, которые хоть когда-то проявляли активность (заплатили хоть раз и хоть раз логинились), во втором — это проверка на то, не находится ли юзер в бане/саспенде. Из-за этой неочевидной разницы в семантике User.active в парочке мест используется не по назначению.

Наверное, надо User.active (который используется в основном для показа списка участников) привести в соответствие с User#active?, либо переименовать его в соответствии с семантикой.

yahor commented 2 years ago

@jekhor Усё тут падаецца правільна. скоп маделі(метад класса) і метады інстанса класа active?

User.active != user.active? розныя аб'екты і розныя метады. У якім месцы кода блытаніна?

jekhor commented 2 years ago

Мне калі трэба атрымаць спіс дзейсных на дадзены момант юзэраў (не забаненых і не ў саспендзе), то я, убачыўшы метад User.active і ведаючы пра User#active?, проста ні на секунду не буду сумнявацца, што User.active — як раз тое, што мне трэба. А насамрэч не.

jekhor commented 2 years ago

https://github.com/minsk-hackerspace/hackerspace.by/blob/master/app/models/user.rb#L156 напрыклад

jekhor commented 2 years ago

семантыка розная.

yahor commented 2 years ago

ага, цяпер бачу што не зусім празрыста ўнутры.

трэба рэфакторыць або проста увесці flag які будзе ставіцца актыўнамую юзеру як true і табы будзе менш выбараць і іфчыкаў.

def self.active (allowed.paid + allowed.signed_in).uniq end

jekhor commented 2 years ago

Ну мне падаецца, што непатрэбна нам тая сартыроўка па "актыўнасці" юзэраў, якую калісьці праз гэта рабілі ў спісе ўдзельнікаў.

yahor commented 2 years ago

так, пасля саспенд логікі прыйшоў час пераглядзець гэта.

yahor commented 2 years ago

Зрабіў змены тут https://github.com/minsk-hackerspace/hackerspace.by/pull/577