X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/69d5189cc4fb2ca63418a0741bf744cf5fee8bc9..27cb94de7786bd9a9d0e03c9562876d4e21cda77:/floof/model/users.py?ds=sidebyside diff --git a/floof/model/users.py b/floof/model/users.py index 86c31d8..af4bfba 100644 --- a/floof/model/users.py +++ b/floof/model/users.py @@ -16,19 +16,21 @@ class User(Entity): # galleries = OneToMany('GalleryWidget') pages = OneToMany('UserPage', inverse="owner") primary_page = OneToOne('UserPage', inverse="owner") + relationships = OneToMany('UserRelationship', inverse='user') + target_of_relationships = OneToMany('UserRelationship', inverse='target_user') + - def __unicode__(self): return self.name def __init__(self, **kwargs): super(User, self).__init__(**kwargs) - - - + + + # TODO: have this clone a standard starter page self.primary_page = UserPage(owner=self, title="default", visible=True) - + # a starter gallery, just for fun gallery = GalleryWidget(owner=self, string="awesome") self.primary_page.galleries.append(gallery) @@ -46,11 +48,30 @@ class UserPage(Entity): Page templates that provide familiar interfaces will also be UserPage records. Users will see a panel full of them, and they can choose to clone those template pages to their own page list. If more than one is set to visible, there would be tabs. - + """ - + owner = ManyToOne('User', inverse="pages") title = Field(String) - + visible = Field(Boolean) - galleries = OneToMany('GalleryWidget') \ No newline at end of file + galleries = OneToMany('GalleryWidget') + + +class UserRelationshipTypes(object): + IS_WATCHING = 1 + +class UserRelationship(Entity): + """Represents some sort of connection between users. + + For the moment, this means "watching". Later, it may mean friending or + ignoring. + + XXX: Watching should be made more general than this; it should have the + power of an arbitrary query per watched artist without being unintelligible + to users. + """ + + user = ManyToOne('User') + target_user = ManyToOne('User') + type = Field(Integer) # UserRelationshipTypes above