Esempio n. 1
0
    def save(self, *args, **kwargs):
        if not self.slug:
            original_slug = slugify(self.title)
            counter = 2
            qs = self.__class__.objects

            while qs.filter(slug=original_slug).exists():
                original_slug = '{0}-{1}'.format(original_slug, counter)
                counter += 1
            self.slug = original_slug

        previous_status = None
        if self.pk:
            previous_status = self.__class__.objects.get(pk=self.pk).status
        super(BaseProject, self).save(*args, **kwargs)

        # Only log project phase if the status has changed
        if self is not None and previous_status != self.status:
            get_project_phaselog_model().objects.create(
                project=self, status=self.status)
Esempio n. 2
0
from django.utils import timezone
from bluebottle.test.utils import BluebottleTestCase
from bluebottle.bb_projects.models import ProjectPhase
from bluebottle.projects.models import Project
from bluebottle.test.factory_models.donations import DonationFactory
from bluebottle.test.factory_models.orders import OrderFactory
from bluebottle.test.factory_models.projects import (ProjectFactory,
                                                     ProjectPhaseFactory)
from bluebottle.utils.model_dispatcher import (get_project_model,
                                               get_project_phaselog_model)


PROJECT_MODEL = get_project_model()
PROJECT_PHASE_LOG_MODEL = get_project_phaselog_model()


class TestProjectTestCase(BluebottleTestCase):
    def setUp(self):
        super(TestProjectTestCase, self).setUp()
        self.init_projects()

    def test_fake(self):
        self.assertEquals(PROJECT_MODEL.objects.count(), 0)
        project = ProjectFactory.create()
        self.assertEquals(PROJECT_MODEL.objects.count(), 1)


class TestProjectPhaseLog(TestProjectTestCase):
    def test_create_phase_log(self):
        phase1 = ProjectPhaseFactory.create()
        phase2 = ProjectPhaseFactory.create()