예제 #1
0
def jsonFolderCrud(request):

    dictData = []
    # GET * SELECT
    if request.is_ajax() and request.method == 'GET':
        action = request.GET.get('action', None)

        if (action == "filter"):
            LessonID = request.GET.get('LessonID', None)
            #dictData = Folder.objects.get(LessonID=LessonID).graders.all().values()   #OK
            dictData = Folder.objects.filter(LessonID=LessonID).values()
            jsonData = json.dumps(list(dictData))
            #print jsonData
            return HttpResponse(jsonData, content_type='application/json')

    # POST INS.UPD.DEL
    if request.is_ajax() and request.method == 'POST':
        action = request.POST.get('action', None)

        #INSERT COMMAND (need related LessonID ) | only add C type folders
        if (action == "add"):  # on LessonID
            LessonID = request.POST.get('LessonID', None)
            no = request.POST.get('no', None)
            books = request.POST.get('books', None)  #.title()
            codeType = request.POST.get('codeType', None)
            #status = request.POST.get('status', None)
            print 'Data:', no, books, codeType
            # Apaitoume oi fakeloi na exoun synexomeh arithmisi
            # akoma kai gia diafortikous typous
            # px fA/fANA. Ayto to allazoume efkola an theloume
            # TO kanoume giati volevei sta reports
            # alliws tha kanoume aali coding ...
            #no = Lesson.objects.get(id=LessonID).getNextFolderNo(codeType)

            try:  #with transaction.atomic():
                lesson = Lesson.objects.get(id=LessonID)
                no = lesson.getNextFolderNo(
                    -1)  # count F(AB) / even for F(ANA)
                print 'Data(new):', no, books, codeType
                record = Folder(LessonID_id=LessonID,
                                no=no,
                                books=books,
                                codeType=codeType)
                record.save()
                record.codeBarcode = '%04d-%010d' % (int(LessonID),
                                                     int(record.id))
                record.save()
                # Need to Update Lesson Data HERE aka mum Books, Folders etc.
                if codeType == '0':  # F(A)
                    print "F(A)"
                    #lesson.update(booksAB=booksAB+books,  booksABFolders=booksABFolders+1)
                    lesson.booksAB = lesson.booksAB + int(books)
                    lesson.booksABFolders = lesson.booksABFolders + 1
                    lesson.save()
                elif codeType == '1':  # F(B)
                    #lesson.booksAB += books
                    #lesson.booksABFolders += 1
                    pass
                elif codeType == '2':  # F(ANA)
                    lesson.booksC = lesson.booksC + int(books)
                    lesson.booksCFolders = lesson.booksCFolders + 1
                    lesson.save()

                msg = "Επιτυχής εισαγωγή εγγραφής!"
                helperMessageLog(request, msg, tag='info')
                #messages.info(request, msg, fail_silently=True)
            except DatabaseError:
                transaction.rollback()
                msg = "Αδυναμία εισαγωγής εγγραφής!"
                helperMessageLog(request, msg, tag='error')
                #messages.error(request, msg, fail_silently=True)

            #dictData = Lesson.objects.filter(id=record.id).values()
            #print dictData
            #jsonData = json.dumps(list(dictData))
            jsonData = json.dumps({'msg': msg})
            return HttpResponse(jsonData, content_type='application/json')

        # UPDATE
        if (action == "update"):
            id = request.POST.get('id', None)
            no = request.POST.get('no', None)
            books = request.POST.get('books', None)
            codeType = request.POST.get('codeType', None)
            #lexType = request.POST.get('lexType', None)
            #CodeStatus = request.POST.get('CodeStatus ', None)
            #CodeLocation = request.POST.get('CodeLocation', None)
            #print "FOLDER-UPDATE %s - %s - codeType:%s lexType:%s" %(no, books, codeType, lexType)

            try:  #with transaction.atomic():
                record = Folder.objects.filter(id=id)
                record.update(
                    no=no,
                    books=books,
                    codeType=codeType,
                )
                msg = "Επιτυχής τροποποίηση εγγραφής!"
                helperMessageLog(request, msg, tag='info')
                #messages.info(request, msg, fail_silently=True)
            except DatabaseError:
                transaction.rollback()
                msg = "Αδυναμία τροποποίησης εγγραφής!"
                helperMessageLog(request, msg, tag='error')
                #messages.error(request, msg, fail_silently=True)

            #Folder.objects.filter(id=id).update(isCoordinator = helperStr2Bool(isCoordinator), isgraderC = helperStr2Bool(isgraderC), status = status, )
            # return Lesson record
            #dictData = record.values()
            #jsonData = json.dumps(list(dictData))
            jsonData = json.dumps({'msg': msg})
            #print jsonData
            return HttpResponse(jsonData, content_type='application/json')

        #DELETE COMMAND
        if (action == "delete"):
            id = request.POST.get('id', None)
            try:
                record = Folder.objects.get(id=id)
                # update related lesson
                lesson = Lesson.objects.get(id=record.LessonID.id)
                print "codeType:%s" % (record.codeType)
                print "lesson:%d" % (lesson.id)
                if record.codeType == 0:  # F(A)
                    print "delete codeType:%s" % (record.codeType)
                    #lesson.update(booksAB=booksAB+books,  booksABFolders=booksABFolders+1)
                    lesson.booksAB = lesson.booksAB - int(record.books)
                    lesson.booksABFolders = lesson.booksABFolders - 1
                    lesson.save()
                elif record.codeType == 1:  # F(B)
                    pass
                elif record.codeType == 2:  # F(ANA)
                    print "delete codeType:%s" % (record.codeType)
                    lesson.booksC = lesson.booksC - int(record.books)
                    lesson.booksCFolders = lesson.booksCFolders - 1
                    lesson.save()

                record.delete()
                msg = "Επιτυχής διαγραφής Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='info')

                #messages.info(request, msg, fail_silently=True)
            except IntegrityError:
                transaction.rollback()
                msg = "Αδυναμία διαγραφής Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='error')
                #messages.error(request, msg, fail_silently=True)
            jsonData = json.dumps({'msg': msg})
            return HttpResponse(jsonData, content_type='application/json')

    #"Default SELECT(*) "
    dictData = Folder.objects.all().values()
    #print dictData
    jsonData = json.dumps(list(dictData))
    return HttpResponse(jsonData, content_type='application/json')
예제 #2
0
def jsonLessonCrud(request):

    #Handle Mesages
    #messages.success(request, 'All items on this page have free shipping.',fail_silently=False)
    #messages.warning(request, 'All items on this page have free shipping.',fail_silently=True) #OK

    # Display on GET
    if request.is_ajax() and request.method == 'GET':
        id = request.GET.get('id', None)
        action = request.GET.get('action', None)

        if (action == "filter"):
            dictData = Lesson.objects.filter(id=id).values()
        else:
            dictData = Lesson.objects.all().values()
        #print dictData
        jsonData = json.dumps(list(dictData))
        return HttpResponse(jsonData, content_type='application/json')

    # CRUD on POST
    if request.is_ajax() and request.method == 'POST':
        action = request.POST.get('action', None)
        #dictData = Lesson.objects.all().values()

        #ADD
        if (action == "add"):
            #Fakeloi 1o 2o xeri (AB)
            #booksAB = models.IntegerField(default=0, blank=False)
            #booksABFolders = models.IntegerField(default=0, blank=False)
            #booksC = request.POST.get('booksC', None)
            #booksCFolders = request.POST.get('booksCFolders', None)
            category = request.POST.get('category', None)
            name = request.POST.get('name', None)
            type = request.POST.get('type', None)

            try:
                record = Folder(category=category, name=name, type=type)
                record.save()
                msg = "Επιτυχής εισαγωγή Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='info')
            except IntegrityError:
                transaction.rollback()
                msg = "Αδυναμία εισαγωγής Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='error')
            #jsonData = json.dumps({'msg': msg})
            # return record
            dictData = Lesson.objects.filter(id=record.id).values()
            jsonData = json.dumps(dictData)
            return HttpResponse(jsonData, content_type='application/json')

        # UPDATE
        elif (action == "update"):
            id = request.POST.get('id', None)
            #Fakeloi 1o 2o xeri (AB)
            #booksAB booksABFolders
            booksC = request.POST.get('booksC', None)
            booksCFolders = request.POST.get('booksCFolders', None)
            category = request.POST.get('category', None)
            name = request.POST.get('name', None)
            type = request.POST.get('type', None)

            try:
                #'Αδυναμία εισαγωγής | τροποποίησης | διαγραφής | εγγραφής.'
                record = Lesson.objects.filter(id=id)
                record.update(
                    booksC=booksC,
                    booksCFolders=booksCFolders,
                    category=category,
                    name=name,
                    type=type,
                )
                msg = "Επιτυχής τροποποίηση Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='info')
            except IntegrityError:
                transaction.rollback()
                msg = "Αδυναμία τροποποίησης Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='error')

            # return Lesson record
            dictData = record.values()
            jsonData = json.dumps(list(dictData))
            #print jsonData
            return HttpResponse(jsonData, content_type='application/json')

        #DELETE
        if (action == "delete"):
            id = request.POST.get('id', None)
            record = Lesson.objects.filter(id=id)
            try:
                #'Αδυναμία εισαγωγής | τροποποίησης | διαγραφής | εγγραφής.'
                record.delete()
                msg = "Επιτυχής διαγραφή Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='info')
            except IntegrityError:
                transaction.rollback()
                msg = "Αδυναμία διαγραφής Φακέλου (%s) !" % (record)
                helperMessageLog(request, msg, tag='error')
            return HttpResponse(result, content_type='application/json')
        # else: No POST Default

    # DEFAULT
    else:
        dictData = Lesson.objects.all().values()
        jsonData = json.dumps(list(dictData))
        #print jsonData
        return HttpResponse(jsonData, content_type='application/json')