Merge branch 'master' of github.com:sagidayan/SE-Hub

This commit is contained in:
Sagi Dayan 2015-06-29 13:31:07 +03:00
commit 47bcfecb00
6 changed files with 102 additions and 26 deletions

View file

@ -169,9 +169,9 @@ def joinCourse(token, courseId):
#----------------------------------------------------------
@course_routes.route('/api/courses/getCoursesByCampus/<string:campusId>', methods=["GET"])
@course_routes.route('/api/courses/getAllCoursesByCampus/<string:token>/<string:campusId>', methods=["GET"])
@auto.doc()
def getCourseByCampus(campusId):
def getAllCoursesByCampus(token, campusId):
"""
<span class="card-title">>This Call will return an array of all courses in a given campus</span>
<br>
@ -199,6 +199,10 @@ def getCourseByCampus(campusId):
</code>
<br>
"""
if get_user_by_token(token) is None:
return bad_request("Bad User Token")
arr = []
query = Course.all()
query.filter("campusId = ", int(campusId))
@ -215,11 +219,11 @@ def getCourseByCampus(campusId):
status=200,
mimetype="application/json")
@course_routes.route('/api/courses/getCoursesByUser/<string:token>/<string:campusId>', methods=['GET'])
@course_routes.route('/api/courses/getUserCoursesByCampus/<string:token>/<string:campusId>', methods=['GET'])
@auto.doc()
def getCampusesByUser(token, campusId):
def getUserCoursesByCampus(token, campusId):
"""
<span class="card-title">This Call will return an array of all Campuses of a certain User</span>
<span class="card-title">This Call will return an array of all Courses of a certain User in a specific Campus</span>
<br>
<b>Route Parameters</b><br>
- seToken: 'seToken'<br>
@ -275,6 +279,63 @@ def getCampusesByUser(token, campusId):
mimetype="application/json")
@course_routes.route('/api/courses/getCoursesByUser/<string:token>/<string:userId>', methods=['GET'])
@auto.doc()
def getCoursesByUser(token, userId):
"""
<span class="card-title">This Call will return an array of all Courses of a certain User</span>
<br>
<b>Route Parameters</b><br>
- seToken: 'seToken'<br>
- userId: 1234354543<br>
<br>
<br>
<b>Payload</b><br>
- NONE <br>
<br>
<br>
<b>Response</b>
<br>
200 - JSON Array, Example:<br>
[<br>
{
'title': 'JCE',<br>
'email_ending': '@post.jce.ac.il',<br>
'master_user_id': 123453433341, (User that created the campus)<br>
'avatar_url': 'http://some.domain.com/imagefile.jpg',<br>
'id' : 1234567890<br>
},<br>
....<br>
{<br>
...<br>
}req<br>
]<br>
<br>
403 - Invalid Token<br>
"""
user = get_user_by_token(token)
if user is None:
return bad_request("Bad user Token")
otherUser = User.get_by_id(int(userId))
if otherUser is None:
return bad_request("Bad user Id")
arr = []
for i in otherUser.courses_id_list:
print i
course = Course.get_by_id(int(i))
arr.append(dict(json.loads(course.to_JSON())))
if len(arr) != 0:
return Response(response=json.dumps(arr),
status=200,
mimetype="application/json")
else:
return Response(response='[]',
status=200,
mimetype="application/json")
#----------------------------------------------------------
# PUT
#----------------------------------------------------------

View file

@ -140,13 +140,14 @@ def joinProject(token, projectId):
# GET
#----------------------------------------------------------
@project_routes.route('/api/projects/getProjectsByCourse/<string:courseId>', methods=["GET"])
@project_routes.route('/api/projects/getProjectsByCourse/<string:token>/<string:courseId>', methods=["GET"])
@auto.doc()
def getProjectsByCourse(courseId):
def getProjectsByCourse(token, courseId):
"""
<span class="card-title">>This Call will return an array of all projects in a given course</span>
<br>
<b>Route Parameters</b><br>
- seToken: token<br>
- courseId: 1234567890
<br>
<br>
@ -171,6 +172,8 @@ def getProjectsByCourse(courseId):
<br>
"""
if get_user_by_token(token) is None:
return bad_request("Bad User Token")
arr = []
query = Project.all()
query.filter("courseId = ", int(courseId))

View file

@ -12,6 +12,7 @@ angular.module('SeHub')
$scope.user.startDate = '';
$scope.showMyClass = false;
$scope.coursesEmpty = false;
$scope.campusId;
var campusId = $routeParams.campusId;
$scope.goToClass = function(classId)
@ -20,15 +21,16 @@ angular.module('SeHub')
$location.path('/projects/' + classId.toString()); // Will display all the projects in this course
}
$scope.chooseCourseClicked = function()
$scope.chooseCampusClicked = function()
{
$scope.isCourse = true;
console.log("choose course Clicked!!");
console.log("Choose campus Clicked!!");
apiService.getAllCampuses(token).success(function(data)
{
$scope.campuses = data;
console.log("Campuses: " + $scope.campuses.toString());
console.log("Campuses: ");
console.log($scope.campuses);
}).error(function(err)
{
console.log("Error: " + err);
@ -42,12 +44,23 @@ angular.module('SeHub')
$scope.submitNewClassClicked = function()
{
var i;
if($scope.course.courseName != null && $scope.course.endDate != null && $scope.course.startDate != null)
{
for(i = 0; i < $scope.campuses.length; i++)
{
if($scope.course.campusName === $scope.campuses[i].title)
{
$scope.campusId = $scope.campuses[i].id;
}
}
console.log("NOW: ");
console.log($scope.campusId);
var jsonNewCourse =
{
'courseName': $scope.course.courseName,
'campusName': $scope.course.campusName,
'campusId': $scope.campusId,
'startDate': {
'year' : $scope.course.startDate.getFullYear(),
'day' : $scope.course.startDate.getDate(),
@ -108,7 +121,7 @@ angular.module('SeHub')
var displayCourses = function()
{
apiService.getCourseByCampusName(token).success(function(data) // Shows all classes from this campus
apiService.getAllCoursesByCampus(token, campusId).success(function(data) // Shows all classes from this campus
{
$scope.courses = data;
console.log("success " + $scope.courses);

View file

@ -28,9 +28,9 @@ angular.module('SeHub')
}
apiService.getAllCampuses(token).success(function(data) // Get all the campuses
{
$scope.campuses = data;
}).error(function() {
{
$scope.campuses = data;
}).error(function() {
// TODO
});
});

View file

@ -43,8 +43,8 @@ service.factory('apiService', ['$http', function($http) {
};
return $http(req);
},
getCourseByCampusName: function(token){
var url = (DEBUG ? "http://localhost:8080" : "http://se-hub.appspot.com") + "/api/courses/getCourseByCampusName/" + token;
getAllCoursesByCampus: function(token, campusId){
var url = (DEBUG ? "http://localhost:8080" : "http://se-hub.appspot.com") + "/api/courses/getAllCoursesByCampus/" + token + '/' + campusId;
req = {
method : "GET",
url : url

View file

@ -3,31 +3,30 @@
<h1 layout-margin style="margin-left:15px"><i class="fa fa-graduation-cap"></i> My Classes</h1>
</md-content>
<md-card class="cardAllcourses">
<div flex = "99" layout = "row" ng-repeat = "t in holdArrays" value = "{{t}}" layout-padding>
<div flex = "32" layout = "column" ng-repeat = "course in t" value = "{{course}}" >
<div ng-if = "scope.coursesEmpty">
<div ng-if = "!scope.coursesEmpty">
<div ng-if="t.length != 1">
<md-button ng-click = "goToClass(course.id)" style="width:100%; height:32%;" layout-padding class = "md-raised" >
<md-card style="width:97%;height:97%">
<md-card-content>
<h2 class="md-title">{{course.title}}</h2> <!-- Should Be "course.title" -->
<h2 class="md-title">{{course.courseName}}</h2> <!-- Should Be "course.title" -->
</md-card-content>
</md-2card>
</md-card>
</md-button>
</div>
<div ng-if="t.length == 1">
<md-button ng-click = "goToClass(course.id)" style="width:32%; height:32%;" layout-padding class = "md-raised" >
<md-card style="width:97%;height:97%">
<md-card-content>
<h2 class="md-title">{{course.title}}</h2> <!-- Should Be "course.title" -->
<h2 class="md-title">{{course.courseName}}</h2> <!-- Should Be "course.title" -->
</md-card-content>
</md-card>
</md-button>
</div>
</div>
<div class="spacer"></div>
<div ng-if = "!scope.coursesEmpty">
<div ng-if = "scope.coursesEmpty">
You Are Not Related To Any Course, You May Join Any Course You Wish.
</div>
</div>
@ -57,7 +56,7 @@
<md-card layout-padding>
<div layout layout-sm="column">
<!-- <input ng-model="course.campusName" required> -->
<md-select placeholder = "Campus name" ng-model="course.campusName" ng-click = "chooseCourseClicked()" required>
<md-select placeholder = "Campus name" ng-model="course.campusName" ng-click = "chooseCampusClicked()" required>
<md-option ng-repeat="c in campuses" value="{{c.title}}">
{{c.title}}
</md-option>
@ -84,11 +83,11 @@
</div>
</md-content>
</div>
<div layout-margin layout-padding ng-if="showMyClass">
<!-- <div layout-margin layout-padding ng-if="showMyClass">
<md-select placeholder="Choose Existing Course" ng-model="course" ng-click="chooseCourseClicked()" class="courseDropDown">
<md-option ng-repeat="c in courses" value="{{c.course}}">{{c.course}}</md-option>
</md-select>
</div>
</div> -->
</div>
<div ng-if="isStudent"> <!-- Student Mode -->