##// END OF EJS Templates
Fixed the tests. Added exists() method for the post.
Fixed the tests. Added exists() method for the post.

File last commit:

r8:b62ef70f default
r8:b62ef70f default
Show More
models.py
77 lines | 2.0 KiB | text/x-python | PythonLexer
neko259
Initial commit. One test doesn't work, missing posting form.
r0 from django.db import models
from django.utils import timezone
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4
NO_PARENT = -1
NO_IP = '0.0.0.0'
UNKNOWN_UA = ''
DIR_IMAGES = 'images'
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Added the new posting abstraction.
r2 class PostManager(models.Manager):
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Added methods for getting opening posts and threads.
r5 def create_post(self, title, text, image = None, parent_id = NO_PARENT,
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4 ip = NO_IP):
neko259
Added the new posting abstraction.
r2 post = self.create(title = title,
text = text,
neko259
Partially fixed tests and model definition
r7 pub_time = timezone.now(),
neko259
Added the new posting abstraction.
r2 parent = parent_id,
image = image,
poster_ip = ip,
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4 poster_user_agent = UNKNOWN_UA)
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Fixed indents for pycharm. Moved images upload path to settings. Some cosmetic changes.
r1 return post
neko259
Initial commit. One test doesn't work, missing posting form.
r0
def delete_post(self, post):
neko259
Partially fixed tests and model definition
r7 children = self.filter(parent = post.id)
neko259
Removed old views. Added a proper deletion of post with children.
r3 for child in children:
self.delete_post(child)
neko259
Added the new posting abstraction.
r2 post.delete()
neko259
Initial commit. One test doesn't work, missing posting form.
r0 def delete_posts_by_ip(self, ip):
neko259
Added the new posting abstraction.
r2 posts = self.filter(poster_ip = ip)
neko259
Fixed indents for pycharm. Moved images upload path to settings. Some cosmetic changes.
r1 for post in posts:
self.delete_post(post)
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Added methods for getting opening posts and threads.
r5 def get_threads(self, tag = None):
if tag is None:
threads = self.filter(parent = NO_PARENT)
else:
threads = self.filter(parent = NO_PARENT, tag = tag)
return threads
def get_thread(self, opening_post_id):
opening_post = self.get(opening_post_id)
replies = self.filter(parent = opening_post_id)
return [opening_post, replies]
neko259
Fixed the tests. Added exists() method for the post.
r8 def exists(self, post_id):
posts = Post.objects.filter(id = post_id)
return len(posts) == 0
neko259
Added methods for getting opening posts and threads.
r5
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4 class Tag(models.Model):
"""
A tag is a text node assigned to the post. The tag serves as a board
section. There can be multiple tags for each message
"""
name = models.CharField(max_length = 100)
neko259
Fixed the tests. Added exists() method for the post.
r8
neko259
Added the new posting abstraction.
r2 class Post(models.Model):
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4 """A post is a message."""
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Added the new posting abstraction.
r2 objects = PostManager()
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Added the new posting abstraction.
r2 title = models.CharField(max_length = 100)
pub_time = models.DateTimeField()
text = models.TextField()
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4 image = models.ImageField(upload_to = DIR_IMAGES)
neko259
Added the new posting abstraction.
r2 poster_ip = models.IPAddressField()
poster_user_agent = models.TextField()
parent = models.BigIntegerField()
neko259
Partially fixed tests and model definition
r7 tags = models.ManyToManyField(Tag)
neko259
Initial commit. One test doesn't work, missing posting form.
r0
def __unicode__(self):
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4 return self.title + ' (' + self.text + ')'