diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index b7e4b445..0f1fb834 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -9,11 +9,12 @@ def index end def all - personal_groups = Group.where(tag: :personal_group) + everyone_group = Group.where(tag: :everyone_group) + generic_groups = Group.where(tag: nil) - respond_to do |format| - format.json { render json: Group.all - personal_groups } - end + returned_groups = everyone_group + generic_groups + + render json: returned_groups end # GET /groups/1/edit diff --git a/app/models/group.rb b/app/models/group.rb index 27d4268b..7df7d577 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -30,4 +30,18 @@ def self.owner_groups(item_id) WHERE id IN (SELECT group_id FROM permissions WHERE item_id = :item_id AND permission_type = :permission_type)", { item_id: item_id, permission_type: "2" }] end + + def user_count + users.length + end + + def user_count_string + "#{user_count} #{I18n.t('group_member', count: user_count)}" + end + + def as_json(options) + super(options.merge({ + methods: [:user_count, :user_count_string] + })) + end end diff --git a/app/views/items/_item_type_form.html.erb b/app/views/items/_item_type_form.html.erb index 94f98dcf..b76e913b 100644 --- a/app/views/items/_item_type_form.html.erb +++ b/app/views/items/_item_type_form.html.erb @@ -52,7 +52,7 @@
diff --git a/spec/views/items/edit.html.erb_spec.rb b/spec/views/items/edit.html.erb_spec.rb index 40ba9100..d07cccc9 100644 --- a/spec/views/items/edit.html.erb_spec.rb +++ b/spec/views/items/edit.html.erb_spec.rb @@ -27,6 +27,14 @@ end end + it "contains a member counter" do + item = FactoryBot.create(:other) + assign(:item, item) + render + + expect(response).to have_text("'member' : 'members'") + end + [:book, :movie, :game, :other].each do |item_type| it "renders correct attributes for item type #{item_type}" do item = FactoryBot.create(item_type)