def LaunchTask(request, action): try: if action == "exportworkbook": return exportWorkbook(request) elif action == "importworkbook": return StreamingHttpResponse( content_type="text/plain; charset=%s" % settings.DEFAULT_CHARSET, streaming_content=importWorkbook(request), ) else: wrapTask(request, action) return HttpResponseRedirect("%s/execute/" % request.prefix) except Exception as e: messages.add_message(request, messages.ERROR, force_text(_("Failure launching action: %(msg)s") % {"msg": e})) return HttpResponseRedirect("%s/execute/" % request.prefix)
def LaunchTask(request, action): try: if action == 'exportworkbook': return exportWorkbook(request) elif action == 'importworkbook': return importWorkbook(request) else: wrapTask(request, action) return HttpResponseRedirect('%s/execute/' % request.prefix) except Exception as e: messages.add_message( request, messages.ERROR, force_unicode(_('Failure launching action: %(msg)s') % {'msg': e}) ) return HttpResponseRedirect('%s/execute/' % request.prefix)
def LaunchTask(request, action): try: if action == 'exportworkbook': return exportWorkbook(request) elif action == 'importworkbook': return StreamingHttpResponse( content_type='text/plain; charset=%s' % settings.DEFAULT_CHARSET, streaming_content=importWorkbook(request)) else: wrapTask(request, action) return HttpResponseRedirect('%s/execute/' % request.prefix) except Exception as e: messages.add_message( request, messages.ERROR, force_text(_('Failure launching action: %(msg)s') % {'msg': e})) return HttpResponseRedirect('%s/execute/' % request.prefix)
def LaunchTask(request, action): try: if action == 'exportworkbook': return exportWorkbook(request) elif action == 'importworkbook': return StreamingHttpResponse( content_type='text/plain; charset=%s' % settings.DEFAULT_CHARSET, streaming_content=importWorkbook(request) ) else: wrapTask(request, action) return HttpResponseRedirect('%s/execute/' % request.prefix) except Exception as e: messages.add_message( request, messages.ERROR, force_text(_('Failure launching action: %(msg)s') % {'msg': e}) ) return HttpResponseRedirect('%s/execute/' % request.prefix)
def LaunchTask(request, action): try: if action == "exportworkbook": return exportWorkbook(request) elif action == "importworkbook": return StreamingHttpResponse( content_type="text/plain; charset=%s" % settings.DEFAULT_CHARSET, streaming_content=importWorkbook(request), ) else: wrapTask(request, action) return HttpResponseRedirect("%s/execute/" % request.prefix) except Exception as e: messages.add_message( request, messages.ERROR, force_text(_("Failure launching action: %(msg)s") % {"msg": e}), ) return HttpResponseRedirect("%s/execute/" % request.prefix)
def LaunchTask(request, action): # Allow only post if request.method != 'POST': raise Http404('Only post requests allowed') # Parse the posted parameters as arguments for an asynchronous task to add to the queue. TODO MAKE MODULAR WITH SEPERATE TASK CLASS worker_database = request.database try: now = datetime.now() # A if action == 'generate plan': constraint = 0 for value in request.POST.getlist('constraint'): try: constraint += int(value) except: pass task = Task(name='generate plan', submitted=now, status='Waiting', user=request.user) task.arguments = "--constraint=%s --plantype=%s" % (constraint, request.POST.get('plantype')) task.save(using=request.database) # Update the session object TODO REPLACE WITH PREFERENCE INFO request.session['plantype'] = request.POST.get('plantype') request.session['constraint'] = constraint # B elif action == 'generate model': task = Task(name='generate model', submitted=now, status='Waiting', user=request.user) task.arguments = "--cluster=%s --demand=%s --forecast_per_item=%s --level=%s --resource=%s " \ "--resource_size=%s --components=%s --components_per=%s --deliver_lt=%s --procure_lt=%s" % ( request.POST['clusters'], request.POST['demands'], request.POST['fcst'], request.POST['levels'], request.POST['rsrc_number'], request.POST['rsrc_size'], request.POST['components'], request.POST['components_per'], request.POST['deliver_lt'], request.POST['procure_lt'] ) task.save(using=request.database) # C elif action == 'empty database': task = Task(name='empty database', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) # D elif action == 'load dataset': task = Task(name='load dataset', submitted=now, status='Waiting', user=request.user, arguments=request.POST['datafile']) task.save(using=request.database) # E elif action == 'manage scenarios': worker_database = DEFAULT_DB_ALIAS if 'copy' in request.POST: source = request.POST.get('source', DEFAULT_DB_ALIAS) for sc in Scenario.objects.all(): if request.POST.get(sc.name,'off') == 'on' and sc.status == u'Free': task = Task(name='copy scenario', submitted=now, status='Waiting', user=request.user, arguments="%s %s" % (source, sc.name)) task.save() elif 'release' in request.POST: # Note: release is immediate and synchronous. for sc in Scenario.objects.all(): if request.POST.get(sc.name,'off') == u'on' and sc.status != u'Free': sc.status = u'Free' sc.lastrefresh = now sc.save() if request.database == sc.name: # Erasing the database that is currently selected. request.prefix = '' elif 'update' in request.POST: # Note: update is immediate and synchronous. for sc in Scenario.objects.all(): if request.POST.get(sc.name, 'off') == 'on': sc.description = request.POST.get('description',None) sc.save() else: raise Http404('Invalid scenario task') # F elif action == 'backup database': task = Task(name='backup database', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) # G elif action == 'generate buckets': task = Task(name='generate buckets', submitted=now, status='Waiting', user=request.user) task.arguments = "--start=%s --end=%s --weekstart=%s" % ( request.POST['start'], request.POST['end'], request.POST['weekstart'] ) task.save(using=request.database) # H elif action == 'exportworkbook': return exportWorkbook(request) # I elif action == 'importworkbook': return importWorkbook(request) # J elif action == 'openbravo_import' and 'freppledb.openbravo' in settings.INSTALLED_APPS: task = Task(name='Openbravo import', submitted=now, status='Waiting', user=request.user) task.arguments = "--delta=%s" % request.POST['delta'] task.save(using=request.database) # K elif action == 'openbravo_export' and 'freppledb.openbravo' in settings.INSTALLED_APPS: task = Task(name='Openbravo export', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) # L elif action == 'openerp_import' and 'freppledb.openerp' in settings.INSTALLED_APPS: task = Task(name='OpenERP import', submitted=now, status='Waiting', user=request.user) task.arguments = "--delta=%s" % request.POST['delta'] task.save(using=request.database) # M elif action == 'openerp_export' and 'freppledb.openerp' in settings.INSTALLED_APPS: task = Task(name='OpenERP export', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) else: # Task not recognized raise Http404('Invalid launching task') # Launch a worker process if not checkActive(worker_database): if os.path.isfile(os.path.join(settings.FREPPLE_APP,"frepplectl.py")): # Development layout Popen([ sys.executable, # Python executable os.path.join(settings.FREPPLE_APP,"frepplectl.py"), "frepple_runworker", "--database=%s" % worker_database ]) elif sys.executable.find('freppleserver.exe') >= 0: # Py2exe executable Popen([ sys.executable.replace('freppleserver.exe','frepplectl.exe'), # frepplectl executable "frepple_runworker", "--database=%s" % worker_database ], creationflags=0x08000000) # Do not create a console window else: # Linux standard installation Popen([ "frepplectl", "frepple_runworker", "--database=%s" % worker_database ]) # Task created successfully return HttpResponseRedirect('%s/execute/' % request.prefix) except Exception as e: messages.add_message(request, messages.ERROR, force_unicode(_('Failure launching action: %(msg)s') % {'msg':e})) return HttpResponseRedirect('%s/execute/' % request.prefix)
def LaunchTask(request, action): # Allow only post if request.method != 'POST': raise Http404('Only post requests allowed') # Parse the posted parameters as arguments for an asynchronous task to add to the queue. TODO MAKE MODULAR WITH SEPERATE TASK CLASS worker_database = request.database try: now = datetime.now() # A if action == 'generate plan': constraint = 0 for value in request.POST.getlist('constraint'): try: constraint += int(value) except: pass task = Task(name='generate plan', submitted=now, status='Waiting', user=request.user) task.arguments = "--constraint=%s --plantype=%s" % (constraint, request.POST.get('plantype')) task.save(using=request.database) # Update the session object TODO REPLACE WITH PREFERENCE INFO request.session['plantype'] = request.POST.get('plantype') request.session['constraint'] = constraint # B elif action == 'generate model': task = Task(name='generate model', submitted=now, status='Waiting', user=request.user) task.arguments = "--cluster=%s --demand=%s --forecast_per_item=%s --level=%s --resource=%s " \ "--resource_size=%s --components=%s --components_per=%s --deliver_lt=%s --procure_lt=%s" % ( request.POST['clusters'], request.POST['demands'], request.POST['fcst'], request.POST['levels'], request.POST['rsrc_number'], request.POST['rsrc_size'], request.POST['components'], request.POST['components_per'], request.POST['deliver_lt'], request.POST['procure_lt'] ) task.save(using=request.database) # C elif action == 'empty database': task = Task(name='empty database', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) # D elif action == 'load dataset': task = Task(name='load dataset', submitted=now, status='Waiting', user=request.user, arguments=request.POST['datafile']) task.save(using=request.database) # E elif action == 'manage scenarios': worker_database = DEFAULT_DB_ALIAS if 'copy' in request.POST: source = request.POST.get('source', DEFAULT_DB_ALIAS) for sc in Scenario.objects.all(): if request.POST.get(sc.name,'off') == 'on' and sc.status == u'Free': task = Task(name='copy scenario', submitted=now, status='Waiting', user=request.user, arguments="%s %s" % (source, sc.name)) task.save() elif 'release' in request.POST: # Note: release is immediate and synchronous. for sc in Scenario.objects.all(): if request.POST.get(sc.name,'off') == u'on' and sc.status != u'Free': sc.status = u'Free' sc.lastrefresh = now sc.save() if request.database == sc.name: # Erasing the database that is currently selected. request.prefix = '' elif 'update' in request.POST: # Note: update is immediate and synchronous. for sc in Scenario.objects.all(): if request.POST.get(sc.name, 'off') == 'on': sc.description = request.POST.get('description',None) sc.save() else: raise Http404('Invalid scenario task') # F elif action == 'backup database': task = Task(name='backup database', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) # G elif action == 'generate buckets': task = Task(name='generate buckets', submitted=now, status='Waiting', user=request.user) task.arguments = "--start=%s --end=%s --weekstart=%s" % ( request.POST['start'], request.POST['end'], request.POST['weekstart'] ) task.save(using=request.database) # H elif action == 'exportworkbook': return exportWorkbook(request) # I elif action == 'importworkbook': return importWorkbook(request) # J elif action == 'openbravo_import' and 'freppledb.openbravo' in settings.INSTALLED_APPS: task = Task(name='Openbravo import', submitted=now, status='Waiting', user=request.user) task.arguments = "--delta=%s" % request.POST['delta'] task.save(using=request.database) # K elif action == 'openbravo_export' and 'freppledb.openbravo' in settings.INSTALLED_APPS: task = Task(name='Openbravo export', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) # L elif action == 'openerp_import' and 'freppledb.openerp' in settings.INSTALLED_APPS: task = Task(name='OpenERP import', submitted=now, status='Waiting', user=request.user) task.arguments = "--delta=%s" % request.POST['delta'] task.save(using=request.database) # M elif action == 'openerp_export' and 'freppledb.openerp' in settings.INSTALLED_APPS: task = Task(name='OpenERP export', submitted=now, status='Waiting', user=request.user) task.save(using=request.database) else: # Task not recognized raise Http404('Invalid launching task') # Launch a worker process if not checkActive(worker_database): if os.path.isfile(os.path.join(settings.FREPPLE_APP,"frepplectl.py")): # Development layout Popen([ sys.executable, # Python executable os.path.join(settings.FREPPLE_APP,"frepplectl.py"), "frepple_runworker", "--database=%s" % worker_database ]) elif sys.executable.find('frepplectl.exe') >= 0: # Py2exe executable Popen([ sys.executable, # Python executable "frepple_runworker", "--database=%s" % worker_database ]) else: # Linux standard installation Popen([ "frepplectl", "frepple_runworker", "--database=%s" % worker_database ]) # Task created successfully return HttpResponseRedirect('%s/execute/' % request.prefix) except Exception as e: messages.add_message(request, messages.ERROR, force_unicode(_('Failure launching action: %(msg)s') % {'msg':e})) return HttpResponseRedirect('%s/execute/' % request.prefix)