def form(request, id=False): if id: instance = get_object_or_404(Project, id=id, deleted=False) title = _("Edit project") msg = "Vellykket endret prosjekt" pid = instance.pid else: instance = Project() msg = "Vellykket lagt til nytt prosjekt" title = _("New project") pid = Project.calculate_next_pid() #Save and set to active, require valid form if request.method == 'POST': form = ProjectForm(request.POST, instance=instance) if form.is_valid(): o = form.save(commit=False) o.owner = request.user o.save(no_allemployee_group_permissions=True) request.message_success(msg) return redirect(view, o.id) else: form = ProjectForm(instance=instance, initial={'pid': pid}) return render(request, "projects/form.html", { 'title': title, 'project': instance, 'form': form })
def form (request, id=False): if id: instance = get_object_or_404(Project, id=id, deleted=False) title = _("Edit project") msg = "Vellykket endret prosjekt" pid = instance.pid else: instance = Project() msg = "Vellykket lagt til nytt prosjekt" title = _("New project") pid = Project.calculate_next_pid() #Save and set to active, require valid form if request.method == 'POST': form = ProjectForm(request.POST, instance=instance) if form.is_valid(): o = form.save(commit=False) o.owner = request.user o.save(no_allemployee_group_permissions=True) request.message_success(msg) return redirect(view, o.id) else: form = ProjectForm(instance=instance, initial={'pid': pid}) return render(request, "projects/form.html", {'title': title, 'project': instance, 'form': form})
def get(self, request): users = User.get_users(status=None) projects = Project.get_projects() return render(request, "index.html", { "users": serializers.serialize('json', users), "projects": serializers.serialize('json', projects), })
def export(self): try: self.log("Starting usage export. Date: " + str(self.date)) date_str = self.date.isoformat() usage_records = ELKClient().find_usage_records( self.region, None, date_str, date_str) records = UsageRecordBuilder(self.region).build_usage_report( usage_records, date_str, date_str) base_document = self.create_base_document() records_grouped_by_project = dict() for record in records['usage']: record_list = records_grouped_by_project.get( record['project_id'], []) if not record_list: records_grouped_by_project[ record['project_id']] = record_list record_list.append(record) for project_id, record_list in records_grouped_by_project.iteritems( ): project = Project.find_by_uuid(project_id) base_document['distribuicao'].append( self.create_distribution(project, record_list)) self._send(base_document) except: self.log("Error", 'exception')
def get(self, request): users = User.get_users(status=None) projects = Project.get_projects() return render( request, "index.html", { "users": serializers.serialize('json', users), "projects": serializers.serialize('json', projects), })
def userhome(): if request.method == "POST": if request.form["create"]: if not g.user.projects.filter_by(id=5).first(): project_name = request.form["project_name"] if not Project.query.filter_by(project_name=project_name).first(): new_project = Project(project_name=project_name) db.session.add(new_project) db.session.commit() flash("Project created!") return redirect(url_for("project_home", project_id=new_project.id)) else: flash("Project name already exists!") return redirect("/userhome") else: flash("Max project limit reached") return redirect("/userhome") projects = g.user.projects.all() return render_template("userhome.html", projects=projects)
def add(request): form = ProjectFormSimple(request.POST, instance=Project()) if form.is_valid(): a = form.save() return HttpResponse(simplejson.dumps({ 'name': a.project_name, 'id': a.id, 'valid': True }), mimetype='application/json') else: errors = dict([(field, errors[0]) for field, errors in form.errors.items()]) return HttpResponse(simplejson.dumps({ 'errors': errors, 'valid': False }), mimetype='application/json') return HttpResponse("ERROR")
def build_usage_report(self, aggregations, start, end): records = {"usage": []} records_grouped_by_type = {'Running VM': [], 'Allocated VM': []} for project_bucket in aggregations['by_project']['buckets']: project_id = project_bucket['key'] project = next( (x for x in self.projects if x.get('id') == project_id), dict()) local_project = Project.find_by_uuid(project_id) for resource_type_bucket in project_bucket['by_type']['buckets']: usage_type = resource_type_bucket['key'] for offering_bucket in resource_type_bucket['by_offering'][ 'buckets']: offering_struct = offering_bucket['key'].split('|') offering_id = offering_struct[0] or None offering_name = offering_struct[1] or None offering_cpu = offering_struct[2] or None offering_ram = offering_struct[3] or None raw_usage = float(offering_bucket['rawusage_sum']['value']) if raw_usage > app.config['USAGE_MINIMUM_TIME']: account = project.get('account', '-') domain = project.get('domain', '-') usage_record = { 'project_id': local_project.uuid if local_project else project_id, 'project_name': local_project.name if local_project else '-', 'type': usage_type, 'start_date': start, 'end_date': end, 'offering_id': offering_id, 'offering_name': offering_name, 'offering_cpu': offering_cpu, 'offering_ram': offering_ram, 'usage': raw_usage, 'account': account, 'domain': domain, 'region': self.region.upper() } records['usage'].append(usage_record) records_grouped_by_type[usage_type].append( usage_record) self._calculate_allocated_vm_time(records_grouped_by_type, records) return records