* initial backbone port * changed AspectMembershipsController#destroy to use aspect_membership_id * included rudimentary jasmine specs * more specs, updating the list elements after de-/selection * update selected aspect count on button * don't even try to render html in AspectMembershipsController * more specs for button summary text * adapt aspect management on contacts page and in the popup boxes * adapt inline creation of aspects + memberships TODO * more tests
28 lines
701 B
Ruby
28 lines
701 B
Ruby
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
class AspectMembership < ActiveRecord::Base
|
|
|
|
belongs_to :aspect
|
|
belongs_to :contact
|
|
has_one :user, :through => :contact
|
|
has_one :person, :through => :contact
|
|
|
|
before_destroy do
|
|
if self.contact && self.contact.aspects.size == 1
|
|
self.user.disconnect(self.contact)
|
|
end
|
|
true
|
|
end
|
|
|
|
def as_json(opts={})
|
|
{
|
|
:id => self.id,
|
|
:person_id => self.person.id,
|
|
:contact_id => self.contact.id,
|
|
:aspect_id => self.aspect_id,
|
|
:aspect_ids => self.contact.aspects.map{|a| a.id}
|
|
}
|
|
end
|
|
end
|