11from django .db import models
22from django .utils import timezone
3+ from enum import Enum
34
4- """
5- class Idea(models.Model):
6- author = models.ForeignKey('auth.User',on_delete=models.CASCADE)
7- title = models.CharField(max_length=200)
8- text = models.TextField()
9- created_date = models.DateTimeField(
10- default=timezone.now)
11- published_date = models.DateTimeField(
12- blank=True, null=True)
5+ class Phase (Enum ):
6+ GROW = (1 , 'Discussão' , 'discussion' , 'comments' )
7+ RATE = (2 , 'Avaliação' , 'rate' ,'clipboard' )
8+ APROVED = (3 , 'Aprovação' , 'aproved' ,'star' )
9+ ACT = (4 , 'Desenvolvimento' , 'develop' ,'tasks' )
10+ DONE = (5 , 'Feita' , 'done' , 'check' )
11+ ARCHIVED = (6 , 'Arquivada' , 'archived' , 'archive' )
12+ PAUSED = (7 , 'Pausada' , 'paused' , 'pause' )
1313
14- def publish(self):
15- self.published_date = timezone.now()
16- self.save()
1714
18- def __str__(self):
19- return self.title
20- """
21-
22- class Phase ():
23- GROW = 1
24- RATE = 2
25- ACT = 3
26- DONE = 4
27- PHASES = (
28- (GROW , 'Crescendo' ),
29- )
30- PHASES_MANAGER = (
31- (RATE , 'Avaliando' ),
32- (ACT , 'Agindo' ),
33- (RATE , 'Feito' ),
34- )
15+ def __init__ (self , id , description , css_class , icon_class ):
16+ self .id = id
17+ self .description = description
18+ self .css_class = css_class
19+ self .css_icon_class = icon_class ;
20+
21+
22+ @classmethod
23+ def choices (cls ):
24+ return tuple ((x .id , x .description ) for x in cls )
25+
26+ @classmethod
27+ def get_phase_by_id (cls , id ):
28+ for temp in cls :
29+ if temp .id == id :
30+ return temp
31+ return None
32+
33+ @classmethod
34+ def get_css_class (cls , id ):
35+ return cls .get_phase_by_id (id )
36+
37+ class Phase_History (models .Model ):
38+ current_phase = models .PositiveSmallIntegerField ()
39+ previous_phase = models .PositiveSmallIntegerField ()
40+ date_change = models .DateTimeField ('data da mudança' )
41+ idea = models .ForeignKey ('Idea' ,on_delete = models .DO_NOTHING )
42+ author = models .ForeignKey ('auth.User' ,on_delete = models .DO_NOTHING )
43+ current = models .BooleanField ()
3544
3645class Criterion (models .Model ):
3746 description = models .CharField (max_length = 40 )
@@ -44,22 +53,31 @@ class Evaluation_Item(models.Model):
4453 value = models .IntegerField (default = 0 )
4554 criterion = models .ForeignKey (Criterion ,on_delete = models .PROTECT )
4655
56+ class Category (models .Model ):
57+ description = models .CharField (max_length = 200 )
58+ key_word = models .CharField (max_length = 50 )
59+
60+ def __str__ (self ):
61+ return self .description
62+
4763class Idea (models .Model ):
4864 title = models .CharField (max_length = 200 )
4965 description = models .TextField (max_length = 500 )
5066 creation_date = models .DateTimeField ('data criação' )
5167 author = models .ForeignKey ('auth.User' ,on_delete = models .CASCADE )
52- #phase = models.ForeignKey(Phase,on_delete=models.PROTECT)
53- phase = models .PositiveSmallIntegerField (choices = Phase .PHASES )
54-
68+ category = models .ForeignKey ('Category' , models .SET_NULL ,null = True )
69+ discarded = models .BooleanField (default = False )
5570
5671 def count_popular_vote (self , like_boolean ):
5772 return self .popular_vote_set .filter (like = like_boolean ).count ()
5873 def count_dislikes (self ):
5974 return self .count_popular_vote (False )
6075 def count_likes (self ):
6176 return self .count_popular_vote (True )
62-
77+ def get_current_phase_history (self ):
78+ return self .phase_history_set .get (current = True )
79+ def get_current_phase (self ):
80+ return Phase .get_phase_by_id (self .phase_history_set .get (current = True ).current_phase )
6381
6482class Vote (models .Model ):
6583 evaluation_item = models .ForeignKey (Evaluation_Item ,on_delete = models .PROTECT )
0 commit comments