models.py 1.71 KB
from django.db import models
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse_lazy

from topics.models import Resource
from users.models import User

class Goals(Resource):
	presentation = models.TextField(_('Presentation'), blank = True)
	limit_submission_date = models.DateTimeField(_('Submission Limit Date'), null = True, blank = True)

	class Meta:
		verbose_name = _('Goal')
		verbose_name_plural = _('Goals')

	def __str__(self):
		return self.name

	def access_link(self):
		if self.show_window:
			return reverse_lazy('goals:window_submit', args = (), kwargs = {'slug': self.slug})

		return reverse_lazy('goals:submit', args = (), kwargs = {'slug': self.slug})

	def update_link(self):
		return 'goals:update'

	def delete_link(self):
		return 'goals:delete'

	def delete_message(self):
		return _('Are you sure you want delete the %s topic goals specification')%(self.topic.name)

class GoalItem(models.Model):
	description = models.CharField(_('Description'), max_length = 255, blank = True)
	ref_value = models.IntegerField(_('Referential Value'))
	order = models.PositiveSmallIntegerField(_('Order'), null = True)
	goal = models.ForeignKey(Goals, verbose_name = _('Goal'), related_name = 'item_goal')

	class Meta:
		ordering = ['order']

class MyGoals(models.Model):
	value = models.IntegerField(_('My Value'))
	user = models.ForeignKey(User, verbose_name = _('User'), related_name = 'user_goals')
	item = models.ForeignKey(GoalItem, verbose_name = _('Goal'), related_name = 'mine_goals')
	create_date = models.DateTimeField(_('Create Date'), auto_now_add = True)
	last_update = models.DateTimeField(_('Last Update'), auto_now = True)