X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/f267b2f2841d407dcdf9c3c0f5406f8c10403ccb..5a8f3bd86e5fbcdd1ae077b15c17a66de14c091e:/floof/model/art.py diff --git a/floof/model/art.py b/floof/model/art.py index 8b328d8..ff8035a 100644 --- a/floof/model/art.py +++ b/floof/model/art.py @@ -23,6 +23,9 @@ class Art(Entity): tags = OneToMany('Tag') discussion = ManyToOne('Discussion') + user_relations = OneToMany('UserRelation') + + def set_file(self, file): self.hash = save_file("art", file) self.original_filename = file.filename @@ -102,9 +105,29 @@ Rating.reverse_options = dict (zip(Rating.options.values(), Rating.options.keys( class UserRelation(Entity): - related = ManyToOne("User") + user = ManyToOne("User") art = ManyToOne("Art") - type = Field(String) # by for of + kind = Field(String) # by for of + creator = ManyToOne("User") + confirmed_by_related_user = Field(Boolean) + + # it is useful to record which authority figure on a given artwork + # confirmed the validity of this relation. + confirmed_by_authority = ManyToOne("User") + + def __init__(self, **kwargs): + super(UserRelation, self).__init__(**kwargs) + assert self.user and self.art and self.kind and self.creator + + if self.creator == self.user: + self.confirmed_by_related_user = True + # TODO: implement authorities + # if self.creator in self.art.authorities + # self.confirmed_by_authority = self.creator + + def __unicode__(self): + return "%s: %s" % (self.kind, self.related_user) + # class CharacterRelation(Entity):