parent
77a0bb26e8
commit
bd94c0977f
3 changed files with 65 additions and 2 deletions
@ -0,0 +1,23 @@ |
|||||||
|
# Generated by Django 2.0.2 on 2018-02-13 09:06 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('course', '0030_auto_20180212_0537'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='course', |
||||||
|
name='deactivated_at', |
||||||
|
field=models.DateTimeField(blank=True, default=None, null=True), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='lesson', |
||||||
|
name='deactivated_at', |
||||||
|
field=models.DateTimeField(blank=True, default=None, null=True), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
from django.db import models |
||||||
|
from django.utils import timezone |
||||||
|
|
||||||
|
|
||||||
|
class BaseModel(models.Model): |
||||||
|
|
||||||
|
class Meta: |
||||||
|
abstract = True |
||||||
|
|
||||||
|
|
||||||
|
class DeactivatedQueryset(models.Manager): |
||||||
|
|
||||||
|
def allow_delete(self): |
||||||
|
super().delete() |
||||||
|
|
||||||
|
def delete(self): |
||||||
|
count = self.count() |
||||||
|
self.filter(deactivated_at__isnull=True).update( |
||||||
|
deactivated_at=timezone.now() |
||||||
|
) |
||||||
|
return (count, None) |
||||||
|
|
||||||
|
|
||||||
|
class DeactivatedMixin(models.Model): |
||||||
|
deactivated_at = models.DateTimeField(null=True, blank=True, default=None) |
||||||
|
|
||||||
|
objects = DeactivatedQueryset() |
||||||
|
|
||||||
|
class Meta: |
||||||
|
abstract = True |
||||||
|
|
||||||
|
def allow_delete(self, using=None, keep_parents=False): |
||||||
|
super().delete(using=using, keep_parents=keep_parents) |
||||||
|
|
||||||
|
def delete(self, using=None, keep_parents=False): |
||||||
|
if not self.deactivated_at: |
||||||
|
self.deactivated_at = timezone.now() |
||||||
|
self.save() |
||||||
Loading…
Reference in new issue