# HG changeset patch # User neko259 # Date 2013-08-27 19:44:38 # Node ID a76c11ea54a0fe2666bd0ff003225e0c4d786c5a # Parent aabf6422332a2245c4e6920c81b7a71adbe2630e Added last access time and registration time for user. This refs #61 diff --git a/boards/models.py b/boards/models.py --- a/boards/models.py +++ b/boards/models.py @@ -35,39 +35,6 @@ RANK_MODERATOR = 10 RANK_USER = 100 -class User(models.Model): - - user_id = models.CharField(max_length=50) - rank = models.IntegerField() - - def save_setting(self, name, value): - setting, created = Setting.objects.get_or_create(name=name, user=self) - setting.value = value - setting.save() - - return setting - - def get_setting(self, name): - settings = Setting.objects.filter(name=name, user=self) - if len(settings) > 0: - setting = settings[0] - else: - setting = None - - if setting: - setting_value = setting.value - else: - setting_value = None - - return setting_value - - def is_moderator(self): - return RANK_MODERATOR >= self.rank - - def __unicode__(self): - return self.user_id - - class PostManager(models.Manager): def create_post(self, title, text, image=None, parent_id=NO_PARENT, ip=NO_IP, tags=None, user=None): @@ -317,15 +284,43 @@ class Post(models.Model): return last_replies -class Admin(models.Model): - """ - Model for admin users - """ - name = models.CharField(max_length=100) - password = models.CharField(max_length=100) +class User(models.Model): + + user_id = models.CharField(max_length=50) + rank = models.IntegerField() + + registration_time = models.DateTimeField() + last_access_time = models.DateTimeField() + + fav_tags = models.ManyToManyField(Tag) + fav_threads = models.ManyToManyField(Post) + + def save_setting(self, name, value): + setting, created = Setting.objects.get_or_create(name=name, user=self) + setting.value = value + setting.save() + + return setting + + def get_setting(self, name): + settings = Setting.objects.filter(name=name, user=self) + if len(settings) > 0: + setting = settings[0] + else: + setting = None + + if setting: + setting_value = setting.value + else: + setting_value = None + + return setting_value + + def is_moderator(self): + return RANK_MODERATOR >= self.rank def __unicode__(self): - return self.name + '/' + '*' * len(self.password) + return self.user_id class Setting(models.Model): diff --git a/boards/views.py b/boards/views.py --- a/boards/views.py +++ b/boards/views.py @@ -3,6 +3,7 @@ from django.core.urlresolvers import rev from django.template import RequestContext from django.shortcuts import render, redirect, get_object_or_404 from django.http import HttpResponseRedirect +from django.utils import timezone from boards import forms import boards @@ -278,10 +279,14 @@ def _get_user(request): md5.update(session.session_key) new_id = md5.hexdigest() - user = User.objects.create(user_id=new_id, rank=RANK_USER) + user = User.objects.create(user_id=new_id, rank=RANK_USER, + registration_time=timezone.now()) session['user_id'] = user.id else: user = User.objects.get(id=session['user_id']) + user.save() + + user.last_access_time = timezone.now() return user \ No newline at end of file