# 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)
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