Exemplo n.º 1
0
def activity(request, department, class_number, year, semester, section):
	user = request.user
	c = getClassObject(department, class_number, year, semester, section, user)
	
	#Gets the list of students for want to receive email notifications for graded activities
	emailStudents = UserProfile.objects.filter(classlist__cid=c.cid, setting__email_activity=1)

	activities = Activity.objects.filter(cid=c.cid).order_by('due_date')
	
	if request.method == 'POST':
		activity = Activity(cid=c, released=0)
		form = ActivityForm(request.POST, request.FILES, instance=activity)
		if form.is_valid():
			if form.cleaned_data['status'] == 2:
				form.cleaned_data["released"] = 1
			else:
				form.cleaned_data["released"] = 0
			form.save()
			
			#Create a calendar event for each activity created
			label = getClassLabel(user, c.cid, department, class_number)
			event_name = form.cleaned_data['activity_name']
			date = form.cleaned_data['due_date']
			description = form.cleaned_data['description']
			
			
			event = Event(uid=request.user.userprofile, cid=c.cid, lid=label, event_name=event_name, date=date, description=description)
			event.save()
			
			#If grade has been released by instructor/TA
			if form.cleaned_data['status'] == 2:
				#Generate+send email announcement
				subject = c.department+' %s' %c.class_number+': Grade released for '+form.cleaned_data['activity_name']
				from_email = '*****@*****.**'
				to = []
				for student in emailStudents:
					to.append(student.user.email)
				html_content = render_to_string('instructor/emailActivityTemplate.html', {'class': c, 'activity': activity,})
				text_content = strip_tags(html_content)
				msg = EmailMultiAlternatives(subject, text_content, from_email, to)
				msg.attach_alternative(html_content, "text/html")
				msg.send()
				
				#Created announcement for it
				title = 'Grade released for '+form.cleaned_data['activity_name']
				content = "A new grade was released for "+form.cleaned_data['activity_name']
				act = Announcement(uid=user.userprofile, title=title, content=content, date_posted=datetime.datetime.now(), cid=c, send_email=0, was_updated=0, updated_by=user.userprofile, updated_on=datetime.datetime.now())
				act.save()
			return HttpResponseRedirect("")
	else:
		form = ActivityForm()
	
	content = getContent(c, user)
	content['form'] = form
	content['activities'] = activities
	content['update'] = 0
	return render_to_response('instructor/activity.html', content, 
		context_instance=RequestContext(request))
Exemplo n.º 2
0
def updateActivity(request, department, class_number, year, semester, section, aid):
	user = request.user
	c = getClassObject(department, class_number, year, semester, section, user)
	a = get_object_or_404(Activity, pk=aid)

	#Gets all students who wish to receive email when assignment is released
	emailStudents = UserProfile.objects.filter(classlist__cid=c.cid, setting__email_activity=1)
	activities = Activity.objects.filter(cid=c.cid)
	
	if request.method == 'POST':
		activity = Activity(cid=c, aid=aid, released=0)
		form = ActivityForm(request.POST, request.FILES, instance=activity)
		if form.is_valid():
			form.save()
			if form.cleaned_data['status'] == 2:
				rel = 1
			else:
				rel = 0
			Activity.objects.filter(aid=a.aid).update(released=rel)
			
			#Update the calendar event for the activity
			event = Event.objects.get(uid=request.user.userprofile, cid=c.cid, event_name=a.activity_name)
			event.date = form.cleaned_data['due_date']
			event.description = form.cleaned_data['description']
			event.name = form.cleaned_data['activity_name']
			event.save()
			
			if form.cleaned_data['status'] == 2 and a.released == 0:
				#Generate+send email announcement
				subject = c.department+' %s' %c.class_number+': Grade released for '+form.cleaned_data['activity_name']
				from_email = '*****@*****.**'
				to = []
				for student in emailStudents:
					to.append(student.user.email)
				html_content = render_to_string('instructor/emailActivityTemplate.html', {'class': c, 'act_name': form.cleaned_data['activity_name'], 'act_aid': aid})
				text_content = strip_tags(html_content)
				msg = EmailMultiAlternatives(subject, text_content, from_email, to)
				msg.attach_alternative(html_content, "text/html")
				msg.send()
				
				#Created announcement for it
				title = 'Grade released for '+form.cleaned_data['activity_name']
				content = "A new grade was released for "+form.cleaned_data['activity_name']
				act = Announcement(uid=user.userprofile, title=title, content=content, date_posted=datetime.datetime.now(), cid=c, send_email=0, was_updated=0, updated_by=user.userprofile, updated_on=datetime.datetime.now())
				act.save()
			url = getClassUrl(c) + 'instructor/activity'
			return HttpResponseRedirect(url)
	else:
		tmp = Activity.objects.get(aid=aid)
		form = ActivityForm(initial={'activity_name': tmp.activity_name, 'out_of': tmp.out_of, 'worth': tmp.worth, 'description': tmp.description, 'submission_file_type': tmp.submission_file_type, 'description_doc': tmp.description_doc, 'due_date': tmp.due_date, 'status': tmp.status, })

	content = getContent(c, user)
	content['form'] = form
	content['activities'] = activities
	content['update'] = 1
	return render_to_response('instructor/activity.html', content, 
		context_instance=RequestContext(request))
Exemplo n.º 3
0
def create_itinerary(request):
	profile = request.user.get_profile()
	
	if request.method == "POST":
		if 'location' in request.POST and 'destination' in request.POST and 'persons' in request.POST and 'transportation' in request.POST:
			itineraryForm = ItineraryForm({'starting_location': request.POST['location'], 'destination': request.POST['destination'], 'no_of_persons': int(request.POST['persons']), 'transportation_type': int(request.POST['transportation'])})
			itineraryForm.save()
			
			#Parse days JSON object
			objs = json.loads(request.POST['days'])

			#Iterate through days list
			for obj in objs:
				dayForm = DayForm(itinerary_id=obj.itinerary_id, day_number=obj.day_number)
				dayForm.save()
				
			#Parse activities JSON object
			objs = json.loads(request.POST['activities'])

			#Iterate through activities list
			for obj in objs:
				activityForm = ActivityForm(day_id=obj.day_id, activity_type_id=obj.activity_type_id, time_start=obj.time_start, description=obj.description, location_name=obj.location_name, address=obj.address, telephone_number=obj.telephone_number)
				activityForm.save()
				
			#Parse costs JSON object
			objs = json.loads(request.POST['costs'])

			#Iterate through costs list
			for obj in objs:
				costForm = CostForm(day_id=obj.day_id, cost_type_id=obj.cost_type_id, activity_name=obj.activity_name, activity_cost=obj.activity_cost)
				costForm.save()

			#Parse key_locations JSON object
			objs = json.loads(request.POST['key_locations'])

			#Iterate through key_locations list
			for obj in objs:
				keylocationForm = KeyLocationForm(itinerary_id=obj.itinerary_id, name=obj.name, description=obj.description, longitude=obj.longitude, latitude=obj.latitude)
				keylocationForm.save()	
			
			#Parse key_location_photos JSON object
			objs = json.loads(request.POST['key_location_photos'])

			#Iterate through key_location_photos list
			for obj in objs:
				keylocationphotosForm = KeyLocationPhotoForm(key_location_id=obj.key_location_id, photo_url=obj.photo_url)
				keylocationphotosForm.save()	
			
	return render_to_response('user.html', {
	}, context_instance=RequestContext(request))
Exemplo n.º 4
0
def editActivities(request, template_name):
	if request.method=='POST':
		actForm=ActivityForm(request.POST)
		createdActivity=actForm.save(commit=False)
		createdActivity.save(request)
		actForm=ActivityForm()
		activities=Activity.objects.all_with_permission(request)
		actList=[]
		for activity in activities:
			actList.append({
				'id':activity.id,
				'activity':activity.name,
				'tags':activity.activitytags.all(),
				'count':activity.actCount(request),
			})
		
		return render(request, template_name, {'actList':actList, 'actForm':actForm})
	
	activities=Activity.objects.all_with_permission(request)
	actList=[]
	for activity in activities:
		actList.append({
			'id':activity.id,
			'activity':activity.name,
			'tags':activity.activitytags.all(),
			'count':activity.actCount(request),
		})
	
	actForm=ActivityForm()
	return render(request, template_name, {'actList':actList, 'actForm':actForm})
Exemplo n.º 5
0
def editActivities(request, template_name):
    if request.method == 'POST':
        actForm = ActivityForm(request.POST)
        createdActivity = actForm.save(commit=False)
        createdActivity.save(request)
        actForm = ActivityForm()
        activities = Activity.objects.all_with_permission(request)
        actList = []
        for activity in activities:
            actList.append({
                'id': activity.id,
                'activity': activity.name,
                'tags': activity.activitytags.all(),
                'count': activity.actCount(request),
            })

        return render(request, template_name, {
            'actList': actList,
            'actForm': actForm
        })

    activities = Activity.objects.all_with_permission(request)
    actList = []
    for activity in activities:
        actList.append({
            'id': activity.id,
            'activity': activity.name,
            'tags': activity.activitytags.all(),
            'count': activity.actCount(request),
        })

    actForm = ActivityForm()
    return render(request, template_name, {
        'actList': actList,
        'actForm': actForm
    })
Exemplo n.º 6
0
def create_Activity(request):
	if request.is_ajax():
		search_term = request.POST['yelp_term']
		# lat = request.session['cur_lat']
		# lng = request.session['cur_lng']
		lat = '42.056459'
		lng = '-87.675267'
		search_result = yelp_api.search_location(lat,lng,search_term)
		request.session['search_result'] = search_result
		return HttpResponse(json.dumps(search_result), content_type="application/json")

	elif request.method == 'POST':
		actForm = ActivityForm(request.POST)
		locForm = LocationForm(request.POST)

		# check for valid location
		if locForm.is_valid():
			street = request.POST.get('address')
			city = request.POST.get('city')
			state = request.POST.get('state')

			# get lat and long
			addr_str = street + ", " + city + ", " + state
			r = geocode(addr_str)
			lat = r['lat']
			lng = r['lng']

			m = locForm.save(commit=False)
			m.longitude = lng
			m.latitude = lat
			loc_name = m.location_name
			
			# get yelp rating and image
			rating,img_url = yelp_api.get_yelp_data(loc_name,lng,lat)
			print rating
			if rating == -1:
				m.location_rate = 0.0
			else:
				m.location_rate = rating
			if img_url == -1:
				m.location_img_url = "http://www.mountainmansocialmedia.com/_site/wp-content/themes/juiced/img/thumbnail-default.jpg"
			else:
				m.location_img_url = img_url
			
			location_obj = locForm.save()
			
			date = request.POST.get('date')
			start_time = request.POST.get('start_time')
			end_time = request.POST.get('end_time')
			name = request.POST.get('activity_name')
			max_num = request.POST.get('max_num_attendees')
			min_num = request.POST.get('min_num_attendees')
			skill = request.POST.get('skill_level')

			dt = datetime.strptime(date, "%m/%d/%Y")
			st = datetime.strptime(convert_Time(start_time), "%H:%M:%S")
			et = datetime.strptime(convert_Time(end_time), "%H:%M:%S")
			owner = request.user.onthemoveuser

			request.GET = request.GET.copy()
			request.GET['date'] = dt
			request.GET['start_time'] = st 
			request.GET['end_time'] = et 
			request.GET['activity_name'] = name
			request.GET['max_num_attendees'] = max_num
			request.GET['min_num_attendees'] = min_num
			request.GET['skill_level'] = skill
			request.GET['location_id'] = location_obj
			request.GET['owner_id'] = owner

			actForm1 = ActivityForm(request.GET)

			if actForm1.is_valid():
				x=actForm1.save(commit=False)
				x.location_id = location_obj
				x.owner_id = owner
				y = actForm1.save()
				print "here"
				return HttpResponseRedirect(reverse("Activities:details",args=(y.pk,)))
	else:
		actForm = ActivityForm()
		locForm = LocationForm()
	context = {}
	context.update(csrf(request))
	context['act_form'] = actForm
	context['loc_form'] = locForm
	context['path'] = request.path

	return render(request,"Activities/createActivity.html", context)