##// END OF EJS Templates
Added thread bumping.
Added thread bumping.

File last commit:

r25:beac4c3a default
r25:beac4c3a default
Show More
models.py
109 lines | 2.9 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
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 from neboard import settings
import thumbs
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 = ''
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Added the new posting abstraction.
r2 class PostManager(models.Manager):
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 def create_post(self, title, text, image=None, parent_id=NO_PARENT,
neko259
Added localization (not fully working). Added tags posting. Changed the design a bit.
r24 ip=NO_IP, tags=None):
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 post = self.create(title=title,
text=text,
pub_time=timezone.now(),
parent=parent_id,
image=image,
poster_ip=ip,
neko259
Added thread bumping.
r25 poster_user_agent=UNKNOWN_UA,
last_edit_time=timezone.now())
neko259
Initial commit. One test doesn't work, missing posting form.
r0
neko259
Added localization (not fully working). Added tags posting. Changed the design a bit.
r24 if tags:
for tag in tags:
post.tags.add(tag)
neko259
Added thread bumping.
r25 if parent_id != NO_PARENT:
parent = self.get(id=parent_id)
parent.last_edit_time=timezone.now()
parent.save()
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
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 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 images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 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 images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 def get_threads(self, tag=None):
neko259
Added methods for getting opening posts and threads.
r5 if tag is None:
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 threads = self.filter(parent=NO_PARENT)
neko259
Added methods for getting opening posts and threads.
r5 else:
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 threads = self.filter(parent=NO_PARENT, tag=tag)
neko259
Added thread bumping.
r25 threads = list(threads.order_by('-last_edit_time'))
neko259
Added methods for getting opening posts and threads.
r5
return threads
def get_thread(self, opening_post_id):
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 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
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 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
"""
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 name = models.CharField(max_length=100)
neko259
Removed images directory. Removed old urls. Added a bit code for the views.
r4
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 images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 title = models.CharField(max_length=100)
neko259
Added the new posting abstraction.
r2 pub_time = models.DateTimeField()
text = models.TextField()
neko259
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 image = thumbs.ImageWithThumbsField(upload_to='images/',
blank=True, sizes=((200, 150),))
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
Added thread bumping.
r25 last_edit_time = models.DateTimeField()
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
Added images upload. Changed the design a bit. Reformatted some code by PEP 8. Changed the urls: not the main site is located at /, not /boards/.
r22 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)