Mariano  Falcón avatar Mariano Falcón committed 2abe508

nueva_categoria view

Comments (0)

Files changed (6)

cashflow/forms.py

         user = kwargs.pop('user')
         self.user = user
         super(CuentaForm, self).__init__(*args, **kwargs)
-    
+
     def clean(self):
         cleaned_data = self.cleaned_data
         nombre = cleaned_data.get("nombre")
         else:
             return cleaned_data
 
+class CategoriaForm(ModelForm):
+    class Meta:
+        model = Categoria
+        exclude = ('usuario',)
+
+    def __init__(self, *args, **kwargs):
+        user = kwargs.pop('user')
+        self.user = user
+        super(CategoriaForm, self).__init__(*args, **kwargs)
+        self.fields['cuenta'].queryset = Cuenta.objects.filter(usuario=user)
+
+    def clean(self):
+        cleaned_data = self.cleaned_data
+        nombre = cleaned_data.get("nombre")
+        tipo = cleaned_data.get("tipo")
+        cuenta = cleaned_data.get("cuenta")
+        cat = Categoria.objects.filter(
+                usuario=self.user,cuenta=cuenta, nombre=nombre, tipo=tipo)
+        if cat:
+            raise forms.ValidationError("Ya existe la categoria")
+        cat = Categoria.objects.filter(
+                usuario=self.user, cuenta=cuenta, tipo=tipo)
+        if len(cat) >= 5 and nombre:
+            raise forms.ValidationError("No mas categorias")
+        if not nombre:
+            raise forms.ValidationError("Ingresa algo papa")
+        else:
+            return cleaned_data
+
+
         
-
+'''
 class CategoriaForm(ModelForm):
     class Meta:
         model = Categoria
         exclude = ('usuario', 'tipo',)
+'''
     url(r'^arrow/(?P<nombre_cuenta>\w+)/$', views.arrow, name='cs_arrow'),
     url(r'^ingresos/(?P<nombre_cuenta>\w+)/$', views.ingreso, name='cs_ingreso'),
     url(r'^gastos/(?P<nombre_cuenta>\w+)/$', views.gasto, name='cs_gasto'),
-    url(r'^nueva_cat/(?P<tipo>\w+)/$', 
-                                views.nueva_cat, name='cs_nueva_categoria'),
+    #url(r'^nueva_cat/(?P<tipo>\w+)/$', 
+    #                            views.nueva_cat, name='cs_nueva_categoria'),
+    url(r'^nueva_categoria/$', views.nueva_categoria,
+                                        name='cs_nueva_categoria'),
     url(r'^nueva_cuenta/$', views.nueva_cuenta, name='cs_nueva_cuenta'),
     url(r'^reportes/(?P<nombre_cuenta>\w+)/$', views.reportes, name='cs_reportes'),
 )

cashflow/views.py

         context_instance = RequestContext(request),
     )
 
-
+'''
 def nueva_cat(request, tipo):
     if request.method == u'POST':
         POST = request.POST
         message = "ERROR"
         
     return HttpResponse(message)                    
-
+'''
+@login_required
 def nueva_cuenta(request):
     if request.method == 'POST':
         POST = request.POST
     
     return HttpResponse(message)
 '''       
-'''
+
 @login_required
-def nueva_categoria(request, tipo):
+def nueva_categoria(request):
     if request.method == 'POST':
-        form = CategoriaForm(data=request.POST)
+        form = CategoriaForm(user=request.user, data=request.POST)
         if form.is_valid():
             nueva_cat = form.save(commit=False)
             nueva_cat.nombre = form.cleaned_data['nombre']
             nueva_cat.usuario = request.user
-            nueva_cat.tipo = tipo
-            uri = ("/cashflow/prueba/%s") % s
+            nueva_cat.tipo = form.cleaned_data['tipo']
+            nueva_cat.cuenta = form.cleaned_data['cuenta']
+            uri = "/cashflow/welcome/"
             return HttpResponseRedirect(uri)
     else:
-        form = CategoriaForm()
+        form = CategoriaForm(user=request.user)
     
     context = {
           'CategoriaForm': form,
         context,
         context_instance = RequestContext(request),
     )
-'''
 

Binary file modified.

templates/cashflow/nueva_categoria.html

 {% extends "base.html" %}
 
-{% block title %}Pylse - {{ block.super }}{% endblock %}
+{% block title %}Guardinero - {{ block.super }}{% endblock %}
 
 {% block extra_head %}
 {% endblock %}
         <h1>Crear Categoria</h1>    
         <div>
             <form id="create" method="POST" action="">{% csrf_token %}
+                {% if CuentaForm.non_field_errors %}
+                    <p><span class="error">
+                        {{ CuentaForm.non_field_errors|join:", " }}
+                    </span></p>
+                {% endif %}
                 <ul id="list">
                 {{ CategoriaForm.as_ul }}
                 </ul>

templates/cashflow/welcome.html

         <p>De un simple vistazo observa como se distribuyen tus ingresos y gastos</p>
         <div id="transacciones">
             <p><a href={% url cs_nueva_cuenta %}>Crear una cuenta nueva</a></p>
-            {% comment %}
             <p><a href={% url cs_nueva_categoria %}>Crear una categoria</a></p>
-            {% endcomment %}
         </div> 
     </div>
 {% endblock %}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.