def subject_add(request, initiative_uuid=None): system_message = None profile_id = request.session['profile_id'] if request.POST: form = SubjectAddForm(request.POST) if form.is_valid() == False: system_message = 'Error!' else: if 'initiative_uuid' in request.POST: uuid = request.POST['initiative_uuid'] if uuid != "": initiative_id = initiative_dao.get_pulic_intitiative_id( uuid) # defensive check - make sure submitter id contributor contrib_init = initiative_dao.all_contributing_initiative_ids( profile_id) can_create_subject = False for init_id in contrib_init: if init_id == int(initiative_id): can_create_subject = True break if not can_create_subject: system_message = 'Error! You must be Initiative contributor or sponsor to create subject.' else: short_desc = form.cleaned_data['short_desc'] long_desc = form.cleaned_data['long_desc'] subject_dao.subject_create( initiative_id, profile_id, short_desc, long_desc, True) system_message = "Subject successfully created." form = SubjectAddForm() else: system_message = 'Error! Initiative is required.' else: system_message = 'Error! Initiative missing' else: form = SubjectAddForm() if initiative_uuid is None: #initiatives = initiative_dao.initiative_list_by_profile_id(profile_id) initiatives = initiative_dao.all_contributing_initiatives(profile_id) else: initiatives = None return render_to_response('subject_add.html', { 'system_message': system_message, 'form': form, 'initiatives': initiatives, 'initiative_uuid': initiative_uuid }, context_instance=RequestContext(request))
def initiative_service_offer(request, uuid=None): my_profile_id = request.session['profile_id'] if request.POST: sl = request.POST.getlist('service_list') uuid = request.POST['uuid'] initiative_id = initiative_dao.get_pulic_intitiative_id(uuid) # Initiative_Service_Offer.objects.filter(initiative_id=initiative_id, # profile_id=my_profile_id).delete() existing_offers = Initiative_Service_Offer.objects.filter( initiative_id=initiative_id, profile_id=my_profile_id) existing_service_ids = [] for existing_service in existing_offers: existing_service_ids.append(existing_service.service_id) if str(existing_service.service_id) not in sl: Initiative_Service_Offer.objects.get( pk=existing_service.id).delete() for service in sl: if int(service) not in existing_service_ids: Initiative_Service_Offer.objects.create( profile_id=request.session['profile_id'], initiative_id=initiative_id, service_id=service, is_accepted=False) system_message = 'Update complete' else: system_message = None s = Service.objects.all().order_by('short_desc', ) service_selected = Initiative_Service_Offer.objects.get_query_set().filter( initiative_id=initiative_dao.get_pulic_intitiative_id(uuid), profile_id=my_profile_id) return render_to_response('initiative_service_offer.html', { 'service_list': s, 'service_selected': service_selected, 'uuid': uuid, 'system_message': system_message, }, RequestContext(request))
def initiative_rate(request, uuid=None): system_message = None my_profile_id = request.session['profile_id'] if request.POST: initiative_id = initiative_dao.get_pulic_intitiative_id( request.POST['uuid']) initiative = Initiative.objects.get(pk=initiative_id) if my_profile_id == initiative.profile_id: system_message = 'You can not rate your own Initiative!' return render_to_response( 'system.html', { 'system_message': system_message, }, context_instance=RequestContext(request)) if 'star' in request.POST: rating = Decimal(request.POST['star']) else: system_message = "Error, you must select a rating." if 'initiative_rating_id' in request.POST: init_rating = Initiative_Rating.objects.get( pk=request.POST['initiative_rating_id']) else: init_rating = None return render_to_response('initiative_rate.html', { 'system_message': system_message, 'initiative_id': initiative_id, 'init_rating': init_rating, }, RequestContext(request)) comments = request.POST['comments'] if 'initiative_rating_id' in request.POST: initiative_rating_id = request.POST['initiative_rating_id'] system_message = "Your rating has been updated" init_rating = Initiative_Rating.objects.get( pk=initiative_rating_id) init_rating.rating = rating init_rating.comments = comments init_rating.save() else: system_message = "Your rating has been added" init_rating = Initiative_Rating.objects.create( initiative_id=initiative_id, profile_id=my_profile_id, rating=rating, comments=comments ) else: try: init_rating = Initiative_Rating.objects.get( initiative_id=Initiative.objects.get( uuid=uuid).id, profile_id=my_profile_id) system_message = "Update rating" except Initiative_Rating.DoesNotExist: init_rating = None return render_to_response('initiative_rate.html', { 'system_message': system_message, 'uuid': uuid, 'init_rating': init_rating, }, RequestContext(request))