Example #1
0
 def process_POST(self):
     guest = self.request.user
     
     form = {}
     form['sname'] = self.request.POST.get('app_sname', None)
     form['name'] = self.request.POST.get('app_name', None)
     logo = self.request.FILES.get('logo', None)
     form['cat'] = self.request.POST.get('category', None)
     form['plats'] = self.request.POST.getlist('platform')
     form['devel'] = self.request.POST.get('devel', None)
     form['version'] = self.request.POST.get('version', None)
     form['license'] = self.request.POST.get('license', None)
     form['url'] = self.request.POST.get('url', None)
     form['wiki'] = self.request.POST.get('wiki', None)
     form['blog'] = self.request.POST.get('blog', None)
     form['desc'] = self.request.POST.get('description', None)
     
     try:
         DataChecker.check_short_name(form['sname'])
         DataChecker.check_name(form['name'])
         DataChecker.check_category(form['cat'])
         
         if not form['plats']:
             raise DataError("You have to pick a platform")
         for i in form['plats']:
             DataChecker.check_platform(i)
         
         if not DataChecker.defined(form['url']):
             raise DataError("Website cannot be empty")
         
         DataChecker.check_url(form['url'])
         DataChecker.check_url(form['wiki'])
         DataChecker.check_url(form['blog'])
         DataChecker.check_description(form['desc'])
         
         app = Application()
         app.short_name = form['sname']
         app.name = form['name']
         app.description = form['desc']
         app.developer = form['devel']
         app.version = form['version']
         app.license = form['license']
         app.url = form['url']
         app.wiki = form['wiki']
         app.blog = form['blog']
         app.owner = guest
         
         category = Category.objects.get(name=form['cat'])
         app.category = category
         
         app.save()
         
         for i in form['plats']:
             platform = Platform.objects.get(name=i)
             app.platform.add(platform)
         
         if logo is not None:
             print "logo is not None"
             app.logo = logo
         
         app.save()
         
         messages.success(self.request, UserMsgs.APP_ADDED)
         return HttpResponseRedirect('/app/%s/' % app.short_name)
     except DataError, error:
         messages.error(self.request, error.msg)
         
         categories = Category.objects.all().order_by('name')
         platforms = Platform.objects.all().order_by('name')
         
         return render_to_response('application_form.html', \
                 {'guest': guest, 'form': form, \
                 'cats': categories, 'plats': platforms,}, \
                 context_instance=RequestContext(self.request))