def details(request, account_id, equipment_id): account = get_object_or_404(Account, pk=account_id) equipment = get_object_or_404(Equipment, pk=equipment_id) if check_permission(request, account, equipment) is False: return HttpResponseRedirect('/%s/status/' % (account.id)) #---branching for POST vs. GET request if request.method == 'POST': # If a form has been submitted... if 'export_details_tab' in request.POST: data_out = generate_equipment_info_csv(request, equipment) return CSVResponse(data = data_out, output_name = 'BuildingSpeak_Report_Equipment_Info') main_page_help_text = 'Equipment Details - view equipment info.' tab_help_text = 'click to export Equipment info to CSV file' context = { 'sidebar': 'buildingspeakapp/shared/account_sidebar.html', 'tab': 'details', 'main_page_help_text': main_page_help_text, 'tab_help_text': tab_help_text, 'user': request.user, 'account': account, 'accounts': request.user.account_set.order_by('id'), 'buildings': account.building_set.order_by('name'), 'spaces': Space.objects.filter(Q(building__account=account) | Q(meters__account=account)).distinct().order_by('name'), 'meters': account.meter_set.order_by('name'), 'equipments': Equipment.objects.filter(Q(buildings__account=account) | Q(meters__account=account)).distinct().order_by('name'), 'measures': EfficiencyMeasure.objects.filter(Q(equipments__buildings__account=account) | Q(meters__account=account)).distinct().order_by('name'), 'alerts': equipment.get_all_alerts(reverse_boolean=True), 'equipment': equipment, } template_name = 'buildingspeakapp/equipment/details.html' return render(request, template_name, RequestContext(request, context))
def info(request, account_id, equipment_id): account = get_object_or_404(Account, pk=account_id) equipment = get_object_or_404(Equipment, pk=equipment_id) if check_permission(request, account, equipment) is False: return HttpResponseRedirect('/%s/status/' % (account.id)) #---branching for POST vs. GET request if request.method == 'POST': # If a form has been submitted... # ... and the form was the add event form if 'add_event' in request.POST: add_event_form = AddEventForm(request.POST) if add_event_form.is_valid(): # All validation rules pass # Process the data in add_event_form.cleaned_data new_event = Message() new_event.__setattr__('message_type', 'Event') new_event.__setattr__('when', add_event_form.cleaned_data['when']) new_event.__setattr__('subject', add_event_form.cleaned_data['subject']) new_event.save() equipment.messages.add(new_event) success_message = "'%s' on %s successfully added to equipment: %s." % (new_event.subject, new_event.when.strftime('%m/%d/%Y'), equipment.name) messages.success(request, success_message) # ... and the user has hit 'export' on the info tab elif 'export_info_tab' in request.POST: data_out = generate_equipment_info_csv(request, equipment) return CSVResponse(data = data_out, output_name = 'BuildingSpeak_Report_Equipment_Info') main_page_help_text = 'Equipment Info - view images, lists of efficiency measures, etc.' tab_help_text = 'click to export Equipment info to CSV file' context = { 'sidebar': 'buildingspeakapp/shared/account_sidebar.html', 'tab': 'info', 'main_page_help_text': main_page_help_text, 'tab_help_text': tab_help_text, 'user': request.user, 'account': account, 'accounts': request.user.account_set.order_by('id'), 'buildings': account.building_set.order_by('name'), 'spaces': Space.objects.filter(Q(building__account=account) | Q(meters__account=account)).distinct().order_by('name'), 'meters': account.meter_set.order_by('name'), 'equipments': Equipment.objects.filter(Q(buildings__account=account) | Q(meters__account=account)).distinct().order_by('name'), 'measures': EfficiencyMeasure.objects.filter(Q(equipments__buildings__account=account) | Q(meters__account=account)).distinct().order_by('name'), 'alerts': [x for x in request.user.user_profile.alerts.all() if x.target() == equipment], 'events': equipment.get_all_events(reverse_boolean=True), 'equipment': equipment, 'adding_events_is_enabled': True, } template_name = 'buildingspeakapp/equipment/info.html' return render(request, template_name, RequestContext(request, context))