Skip to content

Commit c4fd828

Browse files
committed
Merge pull request #11 from kelvin-neves/master
added lastest modification on states machine
2 parents 4982b9d + b47d900 commit c4fd828

File tree

15 files changed

+628
-234
lines changed

15 files changed

+628
-234
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FROM python:alpine
33
ARG VERSION=master
44

55
RUN \
6-
apk add --no-cache unzip wget ca-certificates gcc openldap-dev binutils-libs binutils gmp isl libgomp libatomic libgcc pkgconf pkgconfig mpfr3 mpc1 libstdc++ libc-dev musl-dev mariadb-dev nginx
6+
apk add --no-cache unzip wget ca-certificates gcc openldap-dev binutils-libs binutils gmp isl libgomp libatomic libgcc pkgconf pkgconfig mpfr3 mpc1 libstdc++ libc-dev musl-dev mariadb-dev postgresql-dev nginx
77

88
RUN \
99
cd /var/www; \

ideax/forms.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,31 @@
11
from django import forms
22
from django.utils.translation import ugettext_lazy as _
3-
from .models import Idea, Criterion
3+
from .models import Idea, Criterion, Category
44

55
class IdeaForm(forms.ModelForm):
66

77
class Meta:
88
model = Idea
9-
fields = ('title', 'description')
9+
fields = ('title', 'description', )
1010
labels = {'title': _('Título'), 'description': _('Descrição'), }
1111

1212
class IdeaFormUpdate(forms.ModelForm):
1313

1414
class Meta:
1515
model = Idea
16-
fields = ('title', 'description', 'phase')
17-
labels = {'title': _('Título'), 'description': _('Descrição'), 'phase': _('Fase'), }
18-
19-
"""
20-
class PhaseForm(forms.ModelForm):
16+
fields = ('title', 'description')
17+
labels = {'title': _('Título'), 'description': _('Descrição'), }
2118

22-
class Meta:
23-
model = Phase
24-
fields = ('name','description')
25-
labels = {'name': _('Nome'), 'description': _('Descrição'), }
26-
"""
2719
class CriterionForm(forms.ModelForm):
2820

2921
class Meta:
3022
model = Criterion
3123
fields = ('description','peso')
3224
labels = {'peso': _('Peso'), 'description': _('Descrição'), }
25+
26+
class CategoryForm(forms.ModelForm):
27+
28+
class Meta:
29+
model = Category
30+
fields = ('description', 'key_word', )
31+
labels = {'description': _('Descrição'), 'key_word':_('Palavra-chave') }
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Generated by Django 2.0.1 on 2018-03-07 17:51
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('ideax', '0003_auto_20180225_1220'),
13+
]
14+
15+
operations = [
16+
migrations.CreateModel(
17+
name='Category',
18+
fields=[
19+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20+
('description', models.CharField(max_length=200)),
21+
('key_word', models.CharField(max_length=50)),
22+
],
23+
),
24+
migrations.CreateModel(
25+
name='Phase_History',
26+
fields=[
27+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
28+
('current_phase', models.PositiveSmallIntegerField()),
29+
('previous_phase', models.PositiveSmallIntegerField()),
30+
('date_change', models.DateTimeField(verbose_name='data da mudança')),
31+
('current', models.BooleanField()),
32+
('author', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
33+
],
34+
),
35+
migrations.RemoveField(
36+
model_name='idea',
37+
name='phase',
38+
),
39+
migrations.AddField(
40+
model_name='idea',
41+
name='discarded',
42+
field=models.BooleanField(default=False),
43+
),
44+
migrations.AddField(
45+
model_name='phase_history',
46+
name='idea',
47+
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='ideax.Idea'),
48+
),
49+
migrations.AddField(
50+
model_name='idea',
51+
name='category',
52+
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='ideax.Category'),
53+
),
54+
]

ideax/models.py

Lines changed: 51 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,46 @@
11
from django.db import models
22
from 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

3645
class 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+
4763
class 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

6482
class Vote(models.Model):
6583
evaluation_item = models.ForeignKey(Evaluation_Item,on_delete=models.PROTECT)

0 commit comments

Comments
 (0)