Skip to content

Commit

Permalink
Issue mozilla#108: Progress, adding permissions and a start on team i…
Browse files Browse the repository at this point in the history
…nvitations / applications
  • Loading branch information
lmorchard committed Feb 18, 2015
1 parent a6ce524 commit 08f335b
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 2 deletions.
40 changes: 38 additions & 2 deletions badger/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -443,8 +443,12 @@ class Meta:
unique_together = ('title', 'slug')
ordering = ['-modified', '-created']
permissions = (
('award_badge',
_(u'Can award this badge')),
('nominate_badge',
_(u'Can submit nominations for this badge')),
('manage_deferredawards',
_(u'Can manage deferred awards for this badge')),
_(u'Can manage deferred awards for this badge')),
)

get_permissions_for = get_permissions_for
Expand All @@ -458,6 +462,9 @@ def get_absolute_url(self):
def get_upload_meta(self):
return ("badge", self.slug)

def get_owner_user(self):
return self.creator

def clean(self):
if self.image:
scaled_file = scale_image(self.image.file, IMG_MAX_SIZE)
Expand Down Expand Up @@ -720,11 +727,19 @@ class Award(models.Model):

class Meta:
ordering = ['-modified', '-created']
permissions = (
)

def __unicode__(self):
by = self.creator and (u' by %s' % self.creator) or u''
return u'Award of %s to %s%s' % (self.badge, self.user, by)

def get_owner_user(self):
return self.creator

def get_permission_parents(self):
return [ this.badge, ]

@models.permalink
def get_absolute_url(self):
return ('badger.views.award_detail', (self.badge.slug, self.pk))
Expand Down Expand Up @@ -918,6 +933,9 @@ class Meta:

get_permissions_for = get_permissions_for

def get_permission_parents(self):
return [ this.badge, ]

def __unicode__(self):
perc = self.percent and (' (%s%s)' % (self.percent, '%')) or ''
return u'Progress toward %s by %s%s' % (self.badge, self.user, perc)
Expand Down Expand Up @@ -1032,11 +1050,17 @@ class Meta:
ordering = ['-modified', '-created']
permissions = (
("grant_deferredaward",
_(u'Can grant deferred award to an email address')),
_(u'Can grant deferred award to an email address')),
)

get_permissions_for = get_permissions_for

def get_owner_user(self):
return self.creator

def get_permission_parents(self):
return [ this.badge, ]

def allows_detail_by(self, user):
# TODO: Need some logic here, someday.
return True
Expand Down Expand Up @@ -1169,12 +1193,24 @@ class Nomination(models.Model):
created = models.DateTimeField(auto_now_add=True, blank=False)
modified = models.DateTimeField(auto_now=True, blank=False)

class Meta:
permissions = (
('approve_nomination', _(u'Can approve this nomination')),
('reject_nomination', _(u'Can reject this nomination')),
)

get_permissions_for = get_permissions_for

def __unicode__(self):
return u'Nomination for %s to %s by %s' % (self.badge, self.nominee,
self.creator)

def get_owner_user(self):
return self.creator

def get_permission_parents(self):
return [ this.badge, ]

def get_absolute_url(self):
return reverse('badger.views.nomination_detail',
args=(self.badge.slug, self.id))
Expand Down
34 changes: 34 additions & 0 deletions badgus/teams/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,35 @@


IMG_MAX_SIZE = getattr(settings, "TEAM_IMG_MAX_SIZE", (256, 256))

BADGETEAM_INVALID_NAMES = ('new',)

BADGETEAM_DEFAULT_ROLES = {
"leader": (
'badge.change_badge',
'badge.delete_badge',
'badge.award_badge',
'badge.nominate_badge',
'badge.manage_deferredawards',
'award.change_award',
'award.delete_award',
'nomination.change_nomination',
'nomination.delete_nomination',
'nomination.approve_nomination',
'nomination.reject_nomination',
'deferredaward.grant_deferredaward',
),
"awarder": (
'badge.award_badge',
'badge.nominate_badge',
'badge.manage_deferredawards',
'award.delete_award',
'nomination.approve_nomination',
'nomination.reject_nomination',
'deferredaward.grant_deferredaward',
)
}


class BadgeTeam(Team):
"""Expansions to the teamwork Team model for user-created teams"""
Expand Down Expand Up @@ -53,3 +80,10 @@ def save(self, **kwargs):
self.slug = slugify(self.name)

super(BadgeTeam, self).save(**kwargs)


class BadgeTeamInvitation(models.Model):
pass

class BadgeTeamApplication(models.Model):
pass

0 comments on commit 08f335b

Please sign in to comment.