Removing base/services.py now not needed

remotes/origin/enhancement/email-actions
Jesús Espino 2013-03-30 13:38:23 +01:00
parent 91aeb00297
commit 3fc0a9de67
4 changed files with 12 additions and 51 deletions

View File

@ -29,8 +29,7 @@ class UserAdmin(DjangoUserAdmin):
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email', 'description', 'photo')}),
(_('Extra info'), {'fields': ('color', 'default_language', 'default_timezone', 'token', 'colorize_tags')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
'groups', 'user_permissions')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',)}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
form = UserChangeForm

View File

@ -1,30 +0,0 @@
from django.contrib.auth.models import Group
from greenmine.scrum.models import Project
from greenmine.base.models import Role
class RoleGroupsService(object):
def replicate_role_on_all_projects(self, role):
for group in role.groups.all():
self._replicate_role_permissions_on_group(role, group)
for project in Project.objects.all():
self._replicate_role_on_project_if_needed(role, project)
def replicate_all_roles_on_one_project(self, project):
for role in Role.objects.all():
group = Group(name="p%d-r%d" % (project.pk, role.pk), role=role, project=project)
group.save()
self._replicate_role_permissions_on_group(role, group)
def _replicate_role_on_project_if_needed(self, role, project):
if project.groups.filter(role=role).count() == 0:
group = Group(name="p%d-r%d" % (project.pk, role.pk), role=role, project=project)
group.save()
self._replicate_role_permissions_on_group(role, group)
def _replicate_role_permissions_on_group(self, role, group):
group.permissions.clear()
for permission in role.permissions.all():
group.permissions.add(permission)
group.save()

View File

@ -10,9 +10,10 @@ from django.contrib.contenttypes import generic
from picklefield.fields import PickledObjectField
from greenmine.base.utils.slug import slugify_uniquely, ref_uniquely
from greenmine.base.fields import DictField
from greenmine.base.utils import iter_points
from greenmine.scrum.choices import *
from greenmine.scrum.choices import (ISSUESTATUSES, TASKSTATUSES, USSTATUSES,
POINTS_CHOICES, SEVERITY_CHOICES,
ISSUETYPES, TASK_CHANGE_CHOICES)
class Severity(models.Model):
@ -113,6 +114,7 @@ class Membership(models.Model):
class Meta:
unique_together = ('user', 'project')
class Project(models.Model):
uuid = models.CharField(max_length=40, unique=True, blank=True)
name = models.CharField(max_length=250, unique=True)
@ -239,7 +241,6 @@ class UserStory(models.Model):
('can_add_userstory_to_milestones', 'Can add user stories to milestones'),
)
def __repr__(self):
return u"<UserStory %s>" % (self.id)
@ -313,7 +314,7 @@ class Task(models.Model):
class Meta:
unique_together = ('ref', 'project')
permissions = [
permissions = (
('can_comment_task', 'Can comment tasks'),
('can_change_owned_task', 'Can modify owned tasks'),
('can_change_assigned_task', 'Can modify assigned tasks'),
@ -321,8 +322,7 @@ class Task(models.Model):
('can_assign_task_to_myself', 'Can assign tasks to myself'),
('can_change_task_state', 'Can change the task state'),
('can_add_task_to_us', 'Can add tasks to a user story'),
]
)
def __unicode__(self):
return self.subject
@ -371,14 +371,14 @@ class Issue(models.Model):
class Meta:
unique_together = ('ref', 'project')
permissions = [
permissions = (
('can_comment_issue', 'Can comment issues'),
('can_change_owned_issue', 'Can modify owned issues'),
('can_change_assigned_issue', 'Can modify assigned issues'),
('can_assign_issue_to_other', 'Can assign issues to others'),
('can_assign_issue_to_myself', 'Can assign issues to myself'),
('can_change_issue_state', 'Can change the issue state'),
]
)
def __unicode__(self):
return self.subject
@ -396,15 +396,10 @@ class Issue(models.Model):
# Model related signals handlers
@receiver(models.signals.post_save, sender=Project, dispatch_uid="project_post_save")
def project_post_save(sender, instance, created, **kwargs):
from greenmine.base.services import RoleGroupsService
if not created:
return
RoleGroupsService().replicate_all_roles_on_one_project(instance)
# Populate new project dependen default data
for order, name, is_closed in ISSUESTATUSES:
IssueStatus.objects.create(name=name, order=order,
is_closed=is_closed, project=instance)

View File

@ -4,13 +4,10 @@ from django.dispatch import receiver
from django.conf import settings
from django.utils.translation import ugettext
from django.template.loader import render_to_string
from django.db.models.signals import post_save
from greenmine.base import signals
from greenmine.base.utils.auth import set_token
from greenmine.base.mail.tasks import send_mail, send_bulk_mail
from greenmine.scrum.models import Project
from greenmine.base.services import RoleGroupsService
@receiver(signals.mail_new_user)