Commit fc10f4d0 authored by Administrator's avatar Administrator

POST form for corpus : ok

parent 76ba90fc
...@@ -2,7 +2,8 @@ from django.conf.urls import patterns, include, url ...@@ -2,7 +2,8 @@ from django.conf.urls import patterns, include, url
from django.contrib import admin from django.contrib import admin
from gargantext_web.views import home, projects, project, corpus, get_name from gargantext_web.views import home, projects, project, corpus
from gargantext_web.views import add_corpus
admin.autodiscover() admin.autodiscover()
...@@ -15,7 +16,7 @@ urlpatterns = patterns('', ...@@ -15,7 +16,7 @@ urlpatterns = patterns('',
url(r'^grappelli/', include('grappelli.urls')), # grappelli URLS url(r'^grappelli/', include('grappelli.urls')), # grappelli URLS
url(r'^$', home), url(r'^$', home),
url(r'^name/$', get_name), url(r'^add/corpus/$', add_corpus),
url(r'^projects/$', projects), url(r'^projects/$', projects),
url(r'^project/(\d+)/$', project), url(r'^project/(\d+)/$', project),
url(r'^project/(\d+)/corpus/(\d+)/$', corpus), url(r'^project/(\d+)/corpus/(\d+)/$', corpus),
......
...@@ -107,8 +107,8 @@ def project(request, project_id): ...@@ -107,8 +107,8 @@ def project(request, project_id):
date = datetime.datetime.now() date = datetime.datetime.now()
project = Node.objects.get(id=project_id) project = Node.objects.get(id=project_id)
corpora = project.get_children() corpora = project.children
number = len(corpora) number = project.children.count()
board = list() board = list()
for corpus in corpora: for corpus in corpora:
...@@ -230,21 +230,30 @@ class NameForm(forms.Form): ...@@ -230,21 +230,30 @@ class NameForm(forms.Form):
fichier = forms.FileField() fichier = forms.FileField()
def get_name(request): def add_corpus(request):
# if this is a POST request we need to process the form data # if this is a POST request we need to process the form data
#print(request.method)
if request.method == 'POST': if request.method == 'POST':
# create a form instance and populate it with data from the request: # create a form instance and populate it with data from the request:
form = CorpusForm(request.POST, request=request) form = CorpusForm(request.POST, request.FILES)
# check whether it's valid: # check whether it's valid:
if form.is_valid(): if form.is_valid():
# corpus = Node
# corpus.user = request.user
# corpus.type = forms
form.save()
# print(form.cleaned_data)
# print(form.cleaned_data['name'])
# process the data in form.cleaned_data as required # process the data in form.cleaned_data as required
# ... # ...
# redirect to a new URL: # redirect to a new URL:
return HttpResponseRedirect('/thanks/') return HttpResponseRedirect('/projects/')
# if a GET (or any other method) we'll create a blank form # if a GET (or any other method) we'll create a blank form
else: else:
form = CorpusForm(request=request) form = CorpusForm(request=request)
return render(request, 'name.html', {'form': form}) return render(request, 'add_corpus.html', {'form': form})
print("5")
...@@ -69,19 +69,18 @@ class ProjectAdmin(NodeAdmin): ...@@ -69,19 +69,18 @@ class ProjectAdmin(NodeAdmin):
from django.db.models.query import EmptyQuerySet from django.db.models.query import EmptyQuerySet
class CorpusForm(ModelForm): class CorpusForm(ModelForm):
parent = ModelChoiceField(EmptyQuerySet) #parent = ModelChoiceField(EmptyQuerySet)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
try:
self.request = kwargs.pop('request', None) self.request = kwargs.pop('request', None)
super(CorpusForm, self).__init__(*args, **kwargs) super(CorpusForm, self).__init__(*args, **kwargs)
parent_type = NodeType.objects.get(name="Project") parent_type = NodeType.objects.get(name="Project")
#parent_type = NodeType.objects.get(name=self._parent_nodetype_name) #parent_type = NodeType.objects.get(name=self._parent_nodetype_name)
self.fields['parent'].queryset = Node.objects.filter(user_id=self.request.user.id, type_id=parent_type.id) self.fields['parent'].queryset = Node.objects.filter(user_id=self.request.user.id, type_id=parent_type.id)
except:
pass
#self.parent = ModelChoiceField(Node.objects.filter(user_id=self.request.user.id, type_id=2))
#parent = ModelChoiceField(Node.objects.filter(user_id=request.user.id, type_id=2))
#print(self.request.user.id)
class Meta: class Meta:
model = Corpus model = Corpus
......
...@@ -40,7 +40,7 @@ class Ngram(models.Model): ...@@ -40,7 +40,7 @@ class Ngram(models.Model):
class Resource(models.Model): class Resource(models.Model):
guid = models.CharField(max_length=255) guid = models.CharField(max_length=255)
bdd_type = models.ForeignKey(DatabaseType, blank=True, null=True) bdd_type = models.ForeignKey(DatabaseType, blank=True, null=True)
file = models.FileField(upload_to=upload_to, blank=True) #file = models.FileField(upload_to=upload_to, blank=True)
class NodeType(models.Model): class NodeType(models.Model):
name = models.CharField(max_length=200) name = models.CharField(max_length=200)
...@@ -60,7 +60,7 @@ class Node(CTENode): ...@@ -60,7 +60,7 @@ class Node(CTENode):
metadata = hstore.DictionaryField(blank=True) metadata = hstore.DictionaryField(blank=True)
fichier = models.FileField(upload_to=upload_to, blank=True) fichier = models.FileField(upload_to=upload_to, blank=True)
resource = models.ForeignKey(Resource, blank=True, null=True) #resource = models.ForeignKey(Resource, blank=True, null=True)
#ngrams = models.ManyToManyField(NGrams) #ngrams = models.ManyToManyField(NGrams)
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<div class="container theme-showcase" role="main"> <div class="container theme-showcase" role="main">
<div class="jumbotron"> <div class="jumbotron">
<h1>Title</h1> <h1>Title</h1>
<form action="/your-name/" method="post"> <form enctype="multipart/form-data" action="/add/corpus/" method="post">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<input type="submit" value="Save" /> <input type="submit" value="Save" />
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<div class="jumbotron"> <div class="jumbotron">
<h1>My {{number}} projects</h1> <h1>My {{number}} projects</h1>
<p>Template showing my working space</p> <p>Template showing my working space</p>
<a class="btn btn-primary btn-lg" role="button" href="/admin/documents/project/add/">Add a project</a> <a class="btn btn-primary btn-lg" role="button" href="/admin/node/project/add/">Add a project</a>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment