##// END OF EJS Templates
Fixed getting posts for a thread. Implemented thread getting test.
Fixed getting posts for a thread. Implemented thread getting test.

File last commit:

r17:e40b2431 default
r17:e40b2431 default
Show More
models.py
94 lines | 2.4 KiB | text/x-python | PythonLexer
neko259
Initial commit. One test doesn't work, missing posting form.
r0 from django.db import models
Ilyas
Added creating new thread form...
r14 from django.http import Http404
neko259
Initial commit. One test doesn't work, missing posting form.
r0 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):
neko259
Fixed getting posts for a thread. Implemented thread getting test.
r17 opening_post = self.get(id = opening_post_id)
replies = self.filter(parent = opening_post_id)
neko259
Added methods for getting opening posts and threads.
r5
neko259
Fixed getting posts for a thread. Implemented thread getting test.
r17 thread = [opening_post]
thread.extend(replies)
return thread
neko259
Added methods for getting opening posts and threads.
r5
neko259
Fixed the tests. Added exists() method for the post.
r8 def exists(self, post_id):
neko259
Changed some links to the html pages.
r12 posts = self.filter(id = post_id)
neko259
Fixed the tests. Added exists() method for the post.
r8
neko259
Fixed "exists" method.
r10 return len(posts) > 0
neko259
Fixed the tests. Added exists() method for the post.
r8
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()
Ilyas
Added creating new thread form...
r14 image = models.ImageField(upload_to = DIR_IMAGES, blank = True)
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):
Ilyas
Added admin loing possibility. Now it is abailable under {BASE_URL}/boards/login...
r9 return self.title + ' (' + self.text + ')'
neko259
Renamed model "admins" to "admin".
r11 class Admin(models.Model):
Ilyas
Added admin loing possibility. Now it is abailable under {BASE_URL}/boards/login...
r9 """
Model for admin users
"""
neko259
Changed some links to the html pages.
r12 name = models.CharField(max_length = 100)
password = models.CharField(max_length = 100)
Ilyas
Added admin loing possibility. Now it is abailable under {BASE_URL}/boards/login...
r9
def __unicode__(self):
return self.name + '/' + '*' * len(self.password)