fix: super(BaseTask) [all tests pass]
This commit is contained in:
parent
fa41c9084d
commit
2e4d1cb963
1 changed files with 30 additions and 12 deletions
|
@ -40,13 +40,18 @@ class LockedAtomicTransaction(Atomic):
|
||||||
super(LockedAtomicTransaction, self).__enter__()
|
super(LockedAtomicTransaction, self).__enter__()
|
||||||
|
|
||||||
# Make sure not to lock, when sqlite is used, or you'll run into problems while running tests!!!
|
# Make sure not to lock, when sqlite is used, or you'll run into problems while running tests!!!
|
||||||
if settings.DATABASES[self.using]["ENGINE"] != "django.db.backends.sqlite3":
|
if (
|
||||||
|
settings.DATABASES[self.using]["ENGINE"]
|
||||||
|
!= "django.db.backends.sqlite3"
|
||||||
|
):
|
||||||
cursor = None
|
cursor = None
|
||||||
try:
|
try:
|
||||||
cursor = get_connection(self.using).cursor()
|
cursor = get_connection(self.using).cursor()
|
||||||
for model in self.models:
|
for model in self.models:
|
||||||
cursor.execute(
|
cursor.execute(
|
||||||
"LOCK TABLE {table_name}".format(table_name=model._meta.db_table)
|
"LOCK TABLE {table_name}".format(
|
||||||
|
table_name=model._meta.db_table
|
||||||
|
)
|
||||||
)
|
)
|
||||||
finally:
|
finally:
|
||||||
if cursor and not cursor.closed:
|
if cursor and not cursor.closed:
|
||||||
|
@ -71,8 +76,12 @@ class TaskList(models.Model):
|
||||||
|
|
||||||
class BaseTask(models.Model):
|
class BaseTask(models.Model):
|
||||||
title = models.CharField(max_length=140)
|
title = models.CharField(max_length=140)
|
||||||
task_list = models.ForeignKey(TaskList, on_delete=models.CASCADE, null=True)
|
task_list = models.ForeignKey(
|
||||||
created_date = models.DateField(default=timezone.now, blank=True, null=True)
|
TaskList, on_delete=models.CASCADE, null=True
|
||||||
|
)
|
||||||
|
created_date = models.DateField(
|
||||||
|
default=timezone.now, blank=True, null=True
|
||||||
|
)
|
||||||
due_date = models.DateField(blank=True, null=True)
|
due_date = models.DateField(blank=True, null=True)
|
||||||
completed = models.BooleanField(default=False)
|
completed = models.BooleanField(default=False)
|
||||||
completed_date = models.DateField(blank=True, null=True)
|
completed_date = models.DateField(blank=True, null=True)
|
||||||
|
@ -94,7 +103,7 @@ class BaseTask(models.Model):
|
||||||
|
|
||||||
# Has due date for an instance of this object passed?
|
# Has due date for an instance of this object passed?
|
||||||
def overdue_status(self):
|
def overdue_status(self):
|
||||||
"Returns whether the Tasks's due date has passed or not."
|
"Returns whether the BaseTasks's due date has passed or not."
|
||||||
if self.due_date and datetime.date.today() > self.due_date:
|
if self.due_date and datetime.date.today() > self.due_date:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -104,12 +113,12 @@ class BaseTask(models.Model):
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return reverse("todo:task_detail", kwargs={"task_id": self.id})
|
return reverse("todo:task_detail", kwargs={"task_id": self.id})
|
||||||
|
|
||||||
# Auto-set the Task creation / completed date
|
# Auto-set the BaseTask creation / completed date
|
||||||
def save(self, **kwargs):
|
def save(self, **kwargs):
|
||||||
# If Task is being marked complete, set the completed_date
|
# If BaseTask is being marked complete, set the completed_date
|
||||||
if self.completed:
|
if self.completed:
|
||||||
self.completed_date = datetime.datetime.now()
|
self.completed_date = datetime.datetime.now()
|
||||||
super(Task, self).save()
|
super(BaseTask, self).save()
|
||||||
|
|
||||||
def merge_into(self, merge_target):
|
def merge_into(self, merge_target):
|
||||||
if merge_target.pk == self.pk:
|
if merge_target.pk == self.pk:
|
||||||
|
@ -138,7 +147,10 @@ class Comment(models.Model):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
author = models.ForeignKey(
|
author = models.ForeignKey(
|
||||||
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True
|
settings.AUTH_USER_MODEL,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
)
|
)
|
||||||
task = models.ForeignKey(Task, on_delete=models.CASCADE)
|
task = models.ForeignKey(Task, on_delete=models.CASCADE)
|
||||||
date = models.DateTimeField(default=datetime.datetime.now)
|
date = models.DateTimeField(default=datetime.datetime.now)
|
||||||
|
@ -163,7 +175,9 @@ class Comment(models.Model):
|
||||||
def snippet(self):
|
def snippet(self):
|
||||||
body_snippet = textwrap.shorten(self.body, width=35, placeholder="...")
|
body_snippet = textwrap.shorten(self.body, width=35, placeholder="...")
|
||||||
# Define here rather than in __str__ so we can use it in the admin list_display
|
# Define here rather than in __str__ so we can use it in the admin list_display
|
||||||
return "{author} - {snippet}...".format(author=self.author_text, snippet=body_snippet)
|
return "{author} - {snippet}...".format(
|
||||||
|
author=self.author_text, snippet=body_snippet
|
||||||
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.snippet
|
return self.snippet
|
||||||
|
@ -175,9 +189,13 @@ class Attachment(models.Model):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
task = models.ForeignKey(Task, on_delete=models.CASCADE)
|
task = models.ForeignKey(Task, on_delete=models.CASCADE)
|
||||||
added_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
added_by = models.ForeignKey(
|
||||||
|
settings.AUTH_USER_MODEL, on_delete=models.CASCADE
|
||||||
|
)
|
||||||
timestamp = models.DateTimeField(default=datetime.datetime.now)
|
timestamp = models.DateTimeField(default=datetime.datetime.now)
|
||||||
file = models.FileField(upload_to=get_attachment_upload_dir, max_length=255)
|
file = models.FileField(
|
||||||
|
upload_to=get_attachment_upload_dir, max_length=255
|
||||||
|
)
|
||||||
|
|
||||||
def filename(self):
|
def filename(self):
|
||||||
return os.path.basename(self.file.name)
|
return os.path.basename(self.file.name)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue