Exemple #1
0
def invite(request):
    #template = "tclassroom/invite_join_course"
    message = request.POST['message']
    userid = request.user.id
    username = request.user.username
    parsed_mails = request.POST['list'].split('#')
    emails = []
    me = User.objects.get(id=userid)
    email = me.email
    already = CollaboratorInvitation.objects.filter(fromuser=me, accepted=False)
    if (already.count () > 10):
        return dump_and_render_json(request, dict({'status' : 'error', 'code' : 'limited exceeded'}))
    tolist = []
    for item in parsed_mails :
        append = True
        if (item == email):
            continue
        for sent in already :
            if (sent.usermail == item) :
                append = False
                break
        if append :
            tolist.append(item)
            emails.append(CollaboratorInvitation (usermail=item, fromuser=me))
    
    if len(emails) == 0 :
        return dump_and_render_json(request, dict({'status' : 'error', 'code' : 'limited exceeded'}))
    #subject = render_to_string('teacher_invitation_subject.txt'.format(template))
    mandrillappmessage = EmailMessage(subject=username + " Invitation!", to=tolist, from_email=settings.EMAIL_NO_REPLY)
    mandrillappmessage.template_name = "TEACHER_COLLABORATION_INVITATION"
    mandrillappmessage.global_merge_vars = {                       # Merge tags in your template
                             'ACTIVATE': " show invitation", 'MESSAGE': message
    }
    merge_vars = {}
    CollaboratorInvitation.objects.bulk_create(emails)
    time_threshold = datetime.now() - timedelta(seconds=3)
    invitations = CollaboratorInvitation.objects.filter(sent_at__gt=time_threshold, fromuser=me)
    value = {}
    for invitation in invitations :
        value = model_to_dict(invitation, fields = ['usermail'])
        url = request.build_absolute_uri (reverse("teacher_invitation_response", args=[invitation.id]))
        value.update ({ 'URL' : url})
        merge_vars[invitation.usermail] = value
    
    mandrillappmessage.merge_vars = merge_vars
    """
    message.merge_vars = {
    '*****@*****.**': {'offer': "15% off anvils"},
    '*****@*****.**':    {'offer': "instant tunnel paint"}
    }
    msg = EmailMultiAlternatives(subject, "body", settings.EMAIL_NO_REPLY, bcc=emails)                                      
    msg.attach_alternative(body, "text/html")                                                                                                                                                                               
    response_ = msg.send()
    """
    try :
        mandrillappmessage.send()
        return render_json(request, mandrillappmessage.mandrill_response)
    except djrill.MandrillAPIError as ex:
        return render_json(request, mandrillappmessage.mandrill_response)
Exemple #2
0
def default(request):
    if request.user.is_authenticated():
        if not request.method in ('GET', 'POST'):
            raise Http404()
        else:
            # list
            if request.method == 'GET':
                try:
                    id = request.GET['cid']
                    try:
                        user = Teacher.objects.get(pk=request.user.id)
                        try:
                            chapter = Chapter.objects.get(pk=id, author=user)
                            quizzes = chapter.quizzes.all()
                            from django.forms.models import model_to_dict
                            data = dict()
                            quizzes_ = []
                            for quiz in quizzes:
                                quiz_ = model_to_dict(quiz, helper.quiz_fields)
                                responses_ = []
                                if quiz.responses.count() > 0:
                                    for response in quiz.responses.all():
                                        response_ = model_to_dict(
                                            response,
                                            fields=[
                                                'title', 'created_at', 'about',
                                                'id'
                                            ])
                                        responses_.append(response_)
                                    quiz_['responses'] = responses_
                                quizzes_.append(quiz_)
                            data['list'] = quizzes_
                            return render_json(
                                request,
                                json.dumps(data,
                                           encoding="utf-8",
                                           cls=MeeMJSONEncoder))
                        except Chapter.DoesNotExist:
                            pass
                    except Teacher.DoesNotExist:
                        pass

                except:
                    pass
            # create, post method
            else:
                data = helper.create(request)
                return render_json(
                    request,
                    json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder))
    raise Http404()
Exemple #3
0
def search(request):
    result = {'result' : None}
    if request.user.is_authenticated ():
        if not request.method == 'GET' :
            return dump_and_render_json(request, result)
        else :
            try :
                q = request.GET['q']
                cid = request.GET['cid']
            except :
                return dump_and_render_json(request, result)
            try :
                # get already in classroom
                already = CourseSubscriber.objects.filter (course__pk=cid).values_list('student__id')
                # filter in student
                students = Student.objects.filter(username__startswith=q)\
                    .exclude(id__in=already).values('username', 'id' , 'profile__thumb')[0:5]
                list_ = list(students)
                # FIXME , we must alias profile__thumb as thumb before turn on python
                for item in list_:
                    item['thumb'] = item.pop('profile__thumb')
                return render_json(request, simplejson.dumps({'result' : list_}))
            except Student.DoesNotExist:
                return dump_and_render_json(request, result)
        
    else :
        return dump_and_render_json(request, result)
Exemple #4
0
def search(request):
    result = {'result': None}
    if request.user.is_authenticated():
        if not request.method == 'GET':
            return dump_and_render_json(request, result)
        else:
            try:
                q = request.GET['q']
                cid = request.GET['cid']
            except:
                return dump_and_render_json(request, result)
            try:
                # get already in classroom
                already = CourseSubscriber.objects.filter(
                    course__pk=cid).values_list('student__id')
                # filter in student
                students = Student.objects.filter(username__startswith=q)\
                    .exclude(id__in=already).values('username', 'id' , 'profile__thumb')[0:5]
                list_ = list(students)
                # FIXME , we must alias profile__thumb as thumb before turn on python
                for item in list_:
                    item['thumb'] = item.pop('profile__thumb')
                return render_json(request, simplejson.dumps({'result':
                                                              list_}))
            except Student.DoesNotExist:
                pass
    else:
        pass
    raise Http404
Exemple #5
0
def post_comment(request, content_type_id, object_id, form_class=CommentForm):
    content_type = get_object_or_404(ContentType, pk=content_type_id)
    obj = get_object_or_404(content_type.model_class(), pk=object_id)
    form = form_class(request.POST,
                      request=request,
                      obj=obj,
                      user=request.user)
    if form.is_valid():
        comment = form.save()
        commented.send(sender=post_comment, comment=comment, request=request)
        if request.is_ajax():
            created = dehydrate_comment(comment)
            return render_json(request, json.dumps(created, encoding="utf-8"))
    else:
        if request.is_ajax():
            return HttpResponse(json.dumps({
                "status": "ERROR",
                "errors": form.errors
            }),
                                content_type="application/json")
    redirect_to = request.POST.get("next")
    # light security check -- make sure redirect_to isn't garbage.
    if not redirect_to or " " in redirect_to or redirect_to.startswith("http"):
        redirect_to = obj
    return redirect(redirect_to)
Exemple #6
0
def default(request):
    if request.user.is_authenticated():
        from django.forms.models import model_to_dict
        try:
            course = Course.objects.get(id=request.GET['cid'])
            topics = Topic.objects.filter(
                course=course
            )  #.values ('id', 'body', 'subject', 'at', 'seen')
            items = []
            for topic in topics:
                item = model_to_dict(
                    topic, ['title', 'content', 'created_time', 'id'])
                item['from'] = {
                    'name': topic.author.username,
                    'id': topic.author.id
                }
                item['at'] = str(item['created_time'])
                items.append(item)
            response = {
                'count': topics.count(),
                'list': items,
                'course': model_to_dict(course, ['id'])
            }
            return render_json(request, json.dumps(response, encoding="utf-8"))
        except Course.DoesNotExist:
            return dump_and_render_json(request, None)
    else:
        raise Http404
Exemple #7
0
def comment_list(request, content_type_id, object_id):
    content_type = get_object_or_404(ContentType, pk=content_type_id)
    obj = get_object_or_404(content_type.model_class(), pk=object_id)
    comments = Comment.objects.filter(content_type=content_type, object_id=obj.pk)
    items = []
    for comment in comments :
        item = dehydrate_comment(comment)
        items.append(item)
    return render_json(request, json.dumps(items, encoding="utf-8"))
Exemple #8
0
def get_recieved (request):
    me = User.objects.get(id=request.user.id)
    tome = CollaboratorInvitation.objects.prefetch_related('fromuser').filter(usermail=me.email)
    invitations = []
    for invitation in tome :
        item =  model_to_dict(invitation, fields=invitation_fields)
        item['source'] =  model_to_dict(invitation.user, fields=['id', 'username'])
        invitations.append(item)
    return render_json(request, json.dumps(invitations, encoding="utf-8", cls=MeeMJSONEncoder))
Exemple #9
0
def rud(request, id):
    data = {'result' : 'forbidden'}
    if request.method == 'GET' :
        data = helper.get_item (request, id)
    if request.method == 'PUT' :
        data = helper.update (request, id)
    if request.method == 'DELETE' :
        return helper.delete (request, id)
    data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
    return render_json(request, data)
Exemple #10
0
def default(request):
    data = None
    if request.method == 'GET' :
        data = helper.get_list(request)
    if request.method == 'POST' :
        data = helper.create(request)
    if data != None :
        data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
        return render_json(request, data)
    raise Http404
Exemple #11
0
def comment_list(request, content_type_id, object_id):
    content_type = get_object_or_404(ContentType, pk=content_type_id)
    obj = get_object_or_404(content_type.model_class(), pk=object_id)
    comments = Comment.objects.filter(content_type=content_type,
                                      object_id=obj.pk)
    items = []
    for comment in comments:
        item = dehydrate_comment(comment)
        items.append(item)
    return render_json(request, json.dumps(items, encoding="utf-8"))
Exemple #12
0
def default(request):
    data = None
    if request.method == 'GET':
        data = helper.get_list(request)
    if request.method == 'POST':
        data = helper.create(request)
    if data != None:
        data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
        return render_json(request, data)
    raise Http404
Exemple #13
0
def rud(request, id):
    data = {'result': 'forbidden'}
    if request.method == 'GET':
        data = helper.get_item(request, id)
    if request.method == 'PUT':
        data = helper.update(request, id)
    if request.method == 'DELETE':
        return helper.delete(request, id)
    data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
    return render_json(request, data)
Exemple #14
0
def default(request):
    if request.user.is_authenticated ():
        if not request.method in ('GET'  , 'POST'):
            raise Http404()
        else :
            # list
            if request.method == 'GET' :
                try :
                    id = request.GET['cid']
                    try :
                        user = Teacher.objects.get (pk=request.user.id)
                        try :
                            chapter = Chapter.objects.get (pk=id, author=user)
                            quizzes = chapter.quizzes.all()
                            from django.forms.models import model_to_dict
                            data = dict ()
                            quizzes_ = []
                            for quiz in quizzes :
                                quiz_ = model_to_dict(quiz, helper.quiz_fields)
                                responses_ =[]
                                if quiz.responses.count () > 0 :
                                    for response in quiz.responses.all() :
                                        response_ = model_to_dict(response, fields=['title', 'created_at', 'about', 'id'])
                                        responses_.append(response_)
                                    quiz_['responses'] = responses_ 
                                quizzes_.append(quiz_)
                            data['list'] = quizzes_ 
                            return render_json(request, json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder))
                        except Chapter.DoesNotExist:
                                pass
                    except Teacher.DoesNotExist:
                        pass
                
                except :
                    pass
            # create, post method  
            else :
                data = helper.create(request) 
                return render_json(request, json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder))
    raise Http404()
Exemple #15
0
def get_recieved(request):
    me = User.objects.get(id=request.user.id)
    tome = CollaboratorInvitation.objects.prefetch_related('fromuser').filter(
        usermail=me.email)
    invitations = []
    for invitation in tome:
        item = model_to_dict(invitation, fields=invitation_fields)
        item['source'] = model_to_dict(invitation.user,
                                       fields=['id', 'username'])
        invitations.append(item)
    return render_json(
        request, json.dumps(invitations, encoding="utf-8",
                            cls=MeeMJSONEncoder))
Exemple #16
0
 def form_valid(self, form):
     try :
         contact = form.save(self.request)
         request = self.request
         messages.success(request, _('Thank You, your Message has been sent, we will sent you a reponse as possible !'))
         if request.is_ajax():
             return render_json(request, json_dump_meemencoder (self.request, contact))
         redirect_to = request.POST.get("next")
         self.success_url = request.POST.get("success")
         # #FIXME
         if not redirect_to or " " in redirect_to or redirect_to.startswith("http"):
             redirect_to = self.success_url
         return redirect(redirect_to)
     except BaseException, e:
         return e
Exemple #17
0
def view(request, id):
    if request.user.is_authenticated ():
        from django.forms.models import model_to_dict
        message = models.Message.objects.get(id=id)
        if not message.seen :
            message.seen= True;
            if message.at == None :
                message.at = datetime.now()
            message.save ()
        result = model_to_dict(message, fields =['at', 'body', 'subject', 'id'])
        #datetime.date() is not JSON serializable
        result['at'] = str(result['at'])
        result['author'] = {'name'  : message.author.username, 'id'  : message.author.id}
        return render_json(request, json.dumps(result, encoding="utf-8"))
    else :
        raise Http404
Exemple #18
0
def default(request):
    if request.user.is_authenticated():
        if not request.method in ('GET', 'POST'):
            raise Http404()
        else:
            #list
            if request.method == 'GET':
                try:
                    id = request.GET['cid']
                except Exception:
                    raise Http404()
                page = 1
                try:
                    page = int(request.GET['page'])
                except Exception:
                    pass
                try:
                    user = Teacher.objects.get(pk=request.user.id)
                    try:
                        course = Course.objects.get(pk=id, author=user)
                        chapters = course.chapters.order_by(
                            'created')[(page - 1) * 4:page * 4]
                        from django.forms.models import model_to_dict
                        data = dict()
                        chapters_ = []
                        for chapter in chapters:
                            chapter_ = model_to_dict(
                                chapter,
                                fields=['title', 'created_at', 'about', 'id'])
                            chapters_.append(chapter_)
                        data['list'] = chapters_
                        data['total'] = course.chapters.count()
                        return render_json(
                            request,
                            json.dumps(data,
                                       encoding="utf-8",
                                       cls=MeeMJSONEncoder))
                    except Course.DoesNotExist:
                        pass
                except Teacher.DoesNotExist:
                    pass
            else:
                #create
                pass
    raise Http404()
Exemple #19
0
def default(request):
    if request.user.is_authenticated ():
        from django.forms.models import model_to_dict
        try :
            course = Course.objects.get(id=request.GET['cid'])
            topics = models.CourseForumTopic.objects.filter(course=course)#.values ('id', 'body', 'subject', 'at', 'seen')
            items = []
            for topic in topics :
                item = model_to_dict(topic, ['title', 'content', 'created_time', 'id'])
                item ['from'] = { 'name' : topic.author.username, 'id' : topic.author.id }
                item ['at'] = str(item['created_time'])
                items.append(item)
            response = {'count' : topics.count (), 'list' : items , 'course'  : model_to_dict(course, [ 'id'])}
            return render_json(request, json.dumps(response, encoding="utf-8"))
        except Course.DoesNotExist :
            return dump_and_render_json(request, None)
    else :
        raise Http404
Exemple #20
0
def view(request, id):
    if request.user.is_authenticated():
        from django.forms.models import model_to_dict
        message = Topic.objects.get(id=id)
        if not message.seen:
            message.seen = True
            if message.at == None:
                message.at = datetime.now()
            message.save()
        result = model_to_dict(message, fields=['at', 'body', 'subject', 'id'])
        #datetime.date() is not JSON serializable
        result['at'] = str(result['at'])
        result['author'] = {
            'name': message.author.username,
            'id': message.author.id
        }
        return render_json(request, json.dumps(result, encoding="utf-8"))
    else:
        raise Http404
Exemple #21
0
 def form_valid(self, form):
     try:
         contact = form.save(self.request)
         request = self.request
         messages.success(
             request,
             _('Thank You, your Message has been sent, we will sent you a reponse as possible !'
               ))
         if request.is_ajax():
             return render_json(
                 request, json_dump_meemencoder(self.request, contact))
         redirect_to = request.POST.get("next")
         self.success_url = request.POST.get("success")
         # #FIXME
         if not redirect_to or " " in redirect_to or redirect_to.startswith(
                 "http"):
             redirect_to = self.success_url
         return redirect(redirect_to)
     except BaseException, e:
         return e
Exemple #22
0
def post_comment(request, content_type_id, object_id, form_class=CommentForm):
    content_type = get_object_or_404(ContentType, pk=content_type_id)
    obj = get_object_or_404(content_type.model_class(), pk=object_id)
    form = form_class(request.POST, request=request, obj=obj, user=request.user)
    if form.is_valid():
        comment = form.save()
        commented.send(sender=post_comment, comment=comment, request=request)
        if request.is_ajax():
            created = dehydrate_comment(comment)
            return render_json(request, json.dumps(created, encoding="utf-8"))
    else:
        if request.is_ajax():
            return HttpResponse(json.dumps({
                "status": "ERROR",
                "errors": form.errors
            }), content_type="application/json")
    redirect_to = request.POST.get("next")
    # light security check -- make sure redirect_to isn't garbage.
    if not redirect_to or " " in redirect_to or redirect_to.startswith("http"):
        redirect_to = obj
    return redirect(redirect_to)
Exemple #23
0
def default(request):
    if request.user.is_authenticated ():
        if not request.method in ( 'GET'  , 'POST' ):
            raise Http404()
        else :
            #list
            if request.method == 'GET' :
                try :
                    id = request.GET['cid']
                except Exception:
                    raise Http404()
                page = 1
                try :
                    page = int(request.GET['page'])
                except Exception:
                    pass
                try :
                    user = Teacher.objects.get (pk=request.user.id)
                    try :
                        course = Course.objects.get (pk=id, author=user)
                        chapters = course.chapters.order_by('created')[(page - 1)*4: page * 4] 
                        from django.forms.models import model_to_dict
                        data = dict ()
                        chapters_ = []
                        for chapter in chapters :
                            chapter_ = model_to_dict(chapter, fields=['title', 'created_at', 'about', 'id'])
                            chapters_.append(chapter_)
                        data['list'] =   chapters_ 
                        data['total'] =   course.chapters.count ()
                        return render_json(request, json.dumps(data, encoding="utf-8", cls = MeeMJSONEncoder))
                    except Course.DoesNotExist:
                            pass
                except Teacher.DoesNotExist:
                    pass
            else :
            #create 
                pass
    raise Http404()
Exemple #24
0
def init (request):
    return render_json(request, json.dumps(data, encoding="utf-8"))
Exemple #25
0
def init(request):
    return render_json(request, json.dumps(data, encoding="utf-8"))
Exemple #26
0
def send_response(request, data):
    return render_json(request,
                       json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder))
Exemple #27
0
def upload_image(request, id):
    document = helper.upload_file (request, id)
    data = {'url' : get_file_media_url (document)}
    data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
    return render_json(request, data)
Exemple #28
0
def send_response(request, data):
    return render_json(request, json.dumps(data, encoding="utf-8", cls = MeeMJSONEncoder))   
Exemple #29
0
def invite(request):
    #template = "tclassroom/invite_join_course"
    message = request.POST['message']
    userid = request.user.id
    username = request.user.username
    parsed_mails = request.POST['list'].split('#')
    emails = []
    me = User.objects.get(id=userid)
    email = me.email
    already = CollaboratorInvitation.objects.filter(fromuser=me,
                                                    accepted=False)
    if (already.count() > 10):
        return dump_and_render_json(
            request, dict({
                'status': 'error',
                'code': 'limited exceeded'
            }))
    tolist = []
    for item in parsed_mails:
        append = True
        if (item == email):
            continue
        for sent in already:
            if (sent.usermail == item):
                append = False
                break
        if append:
            tolist.append(item)
            emails.append(CollaboratorInvitation(usermail=item, fromuser=me))

    if len(emails) == 0:
        return dump_and_render_json(
            request, dict({
                'status': 'error',
                'code': 'limited exceeded'
            }))
    #subject = render_to_string('teacher_invitation_subject.txt'.format(template))
    mandrillappmessage = EmailMessage(subject=username + " Invitation!",
                                      to=tolist,
                                      from_email=settings.EMAIL_NO_REPLY)
    mandrillappmessage.template_name = "TEACHER_COLLABORATION_INVITATION"
    mandrillappmessage.global_merge_vars = {  # Merge tags in your template
        'ACTIVATE': " show invitation",
        'MESSAGE': message
    }
    merge_vars = {}
    CollaboratorInvitation.objects.bulk_create(emails)
    time_threshold = datetime.now() - timedelta(seconds=3)
    invitations = CollaboratorInvitation.objects.filter(
        sent_at__gt=time_threshold, fromuser=me)
    value = {}
    for invitation in invitations:
        value = model_to_dict(invitation, fields=['usermail'])
        url = request.build_absolute_uri(
            reverse("teacher_invitation_response", args=[invitation.id]))
        value.update({'URL': url})
        merge_vars[invitation.usermail] = value

    mandrillappmessage.merge_vars = merge_vars
    """
    message.merge_vars = {
    '*****@*****.**': {'offer': "15% off anvils"},
    '*****@*****.**':    {'offer': "instant tunnel paint"}
    }
    msg = EmailMultiAlternatives(subject, "body", settings.EMAIL_NO_REPLY, bcc=emails)                                      
    msg.attach_alternative(body, "text/html")                                                                                                                                                                               
    response_ = msg.send()
    """
    try:
        mandrillappmessage.send()
        return render_json(request, mandrillappmessage.mandrill_response)
    except djrill.MandrillAPIError as ex:
        return render_json(request, mandrillappmessage.mandrill_response)
Exemple #30
0
def upload_cover(request, id):
    courseinfo = helper.upload_cover(request, id)
    data = {'url': get_file_media_url(courseinfo, 'cover')}
    data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
    return render_json(request, data)
Exemple #31
0
def upload(request):
    id = request.POST['chapter_id']
    document = helper.upload_file(request, id)
    data = model_to_dict(document, fields=helper.document_fields)
    return render_json(request, json_dump_meemencoder(data))
Exemple #32
0
def show(request):
    data = helper.get_notifications(request)
    data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
    return render_json(request, data)
Exemple #33
0
def upload(request):
    id= request.POST['chapter_id']
    document = helper.upload_file(request, id)
    data = model_to_dict(document, fields=helper.document_fields)
    return render_json(request, json_dump_meemencoder(data))
Exemple #34
0
def default(request):
    if request.user.is_authenticated():
        userid = request.user.id
        user = User.objects.select_related().get(pk=userid)
        model = model_to_dict(user, ['username', 'email'])
        invitations_count = CollaboratorInvitation.objects.filter(
            fromuser=user.id).count()
        invitations_recieved = CollaboratorInvitation.objects.filter(
            usermail=user.email).count()
        studentCount = 0
        course_count = 0
        courses = user.courses.all()
        for course in courses:
            studentCount = studentCount + course.students.count()
            course_count = course_count + 1

        staff_count = Team.objects.annotate(
            staff_count=Count('members')).filter(
                owner=user).values('staff_count')
        staff_count = staff_count[0]['staff_count']
        """
        collaborations = user.my_collaborators.select_related().all()
        other_collaborations = user.my_collaborators_with_others.select_related().all()
        """
        collaborators = Collaborator.objects.filter(source=user).all()
        member_in_teams = TeamMemberShip.objects.filter(
            member__in=collaborators).select_related('team',
                                                     'assigned_tasks').all()
        tasks_count = 0
        todos = []
        # FIXME
        for item in member_in_teams:
            tasks_count += item.team.assigned_tasks.count()
            for task in item.team.tasks.all():
                task_ = model_to_dict(task, ['id', 'start', 'end', 'title'])
                if getattr(task, 'label', False):
                    task_.update({'color': task.label.color})
                else:
                    task_.update({'color': '#ccc'})
                todos.append(task_)
        model.update({
            'id':
            user.id,
            'username':
            user.email,
            'img_not_found':
            '/images/team/houssem.jpg',
            'thamb_img_url':
            get_file_media_url(user.profile.cover, 'location'),
            'studentsCount':
            studentCount,
            'coursesCount':
            course_count,
            'collaboratorsCount':
            staff_count,
            'tasksCount':
            tasks_count,
            'invitations_sent_count':
            invitations_count,
            'invitations_recieved_count':
            invitations_recieved,
            'progress':
            get_profile_progress(user),
        })
        recents = user.history.all()
        paginator = Paginator(recents, 10)
        recents_activities = paginator.page(1)
        recents_activities_list = []
        for item in recents_activities:
            item_ = model_to_dict(item,
                                  fields=['id', 'action_time', 'object_id'])
            item_.update({'model': item.content_type.model})
            recents_activities_list.append(item_)  #.push(item_)

        model.update({'history': recents_activities_list})
        model.update({'todos': todos})
        return render_json(
            request, json.dumps(model, encoding="utf-8", cls=MeeMJSONEncoder))
    else:
        return dump_and_render_json(request, None)
Exemple #35
0
def list(request):
    data = helper.get_list(request)
    return render_json(request, json_dump_meemencoder(data))
Exemple #36
0
def upload_image(request, id):
    document = helper.upload_file(request, id)
    data = {'url': get_file_media_url(document)}
    data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
    return render_json(request, data)
Exemple #37
0
def upload_cover(request, id):
    courseinfo = helper.upload_cover (request, id)
    data = {'url' : get_file_media_url (courseinfo, 'cover')}
    data = json.dumps(data, encoding="utf-8", cls=MeeMJSONEncoder)
    return render_json(request, data)
Exemple #38
0
def default(request):
    if request.user.is_authenticated ():
        userid = request.user.id
        user = User.objects.select_related().get(pk=userid)
        model = model_to_dict(user, ['username', 'email'])
        invitations_count = CollaboratorInvitation.objects.filter(fromuser=user.id).count()
        invitations_recieved = CollaboratorInvitation.objects.filter(usermail=user.email).count()
        studentCount = 0
        course_count = 0
        courses = user.courses.all ()
        for course in courses :
            studentCount = studentCount + course.students.count ()
            course_count = course_count + 1
        
        staff_count = Team.objects.annotate(staff_count=Count('members')).filter(owner=user).values ('staff_count')
        staff_count = staff_count[0]['staff_count']
        
        """
        collaborations = user.my_collaborators.select_related().all()
        other_collaborations = user.my_collaborators_with_others.select_related().all()
        """
        collaborators = Collaborator.objects.filter(source=user).all ()
        member_in_teams = TeamMemberShip.objects.filter(member__in=collaborators).select_related('team', 'assigned_tasks').all ()
        tasks_count = 0
        todos = []
        # FIXME
        for item in member_in_teams :
            tasks_count += item.team.assigned_tasks.count()
            for task in item.team.tasks.all() :
                task_ = model_to_dict(task, ['id', 'start', 'end', 'title'])
                if getattr(task, 'label', False):
                    task_.update({ 'color' : task.label.color})
                else :
                    task_.update({ 'color' : '#ccc'})
                todos.append(task_)
        model.update({
                  'id' : user.id ,
                  'username' :  user.email,
                  'img_not_found' :  '/images/team/houssem.jpg',
                  'thamb_img_url' : get_file_media_url (user.profile.cover, 'location'),
                  'studentsCount' : studentCount,
                  'coursesCount' : course_count ,
                  'collaboratorsCount' : staff_count,
                  'tasksCount' : tasks_count,
                  'invitations_sent_count' :  invitations_count,
                  'invitations_recieved_count' :  invitations_recieved,
                  'progress' :  get_profile_progress(user),
                  });
        recents = user.history.all()
        paginator = Paginator(recents, 10)
        recents_activities = paginator.page(1)
        recents_activities_list = []
        for item in recents_activities :
            item_ = model_to_dict(item, fields=['id', 'action_time', 'object_id'])
            item_.update({'model' : item.content_type.model})
            recents_activities_list.append(item_) #.push(item_)
        
        model.update({'history' : recents_activities_list})
        model.update({'todos' : todos})
        return render_json(request, json.dumps(model, encoding="utf-8", cls=MeeMJSONEncoder))
    else :
        return dump_and_render_json(request, None)
Exemple #39
0
def list(request):
    data = helper.get_list(request)
    return render_json(request, json_dump_meemencoder(data))