Ejemplo n.º 1
0
def reset_password_view(request):

    if request.method == "POST":
        form = ResetPasswordForm(request.POST, request=request)
        ########## Request is sent to constructor of ResetPasswordForm Class to check how is current user
        #### request.POST is dict type parameter used to send all data of reset password form

        if form.is_valid():
            try:
                userN = User.objects.get(username=request.user)
                userN.set_password(form.cleaned_data['newp'])
                ########## Raw Password is converted into hassing(encrypted) using set_password function

                userN.save()
                messages.success(request, 'Password Changed Succesfully')
            except:
                messages.success(request, 'Username DoesNotExist')

    else:
        form = ResetPasswordForm

    data = ToDoModel.objects.filter(user=request.user,
                                    status='todo',
                                    flagTask='no')
    task_flag_update(request.user)
    return render(request, 'todoapp/reset_password.html', {
        'form': form,
        'current_user': request.user,
        'data': data
    })
Ejemplo n.º 2
0
def mylist_view(request, mylist_choice=None):
    ##'mylist_choice' parameter was added to know which page has been selected by end user from 'mylist','todo','inProgress','done'

    data = ToDoModel.objects.filter(user=request.user,
                                    status='todo',
                                    flagTask='no')
    task_flag_update(request.user)

    if request.method == 'POST':  #######
        for x in request.POST:  #   This logic is used to select and delete the multipul objects
            if x.isnumeric():  #
                ToDoModel.objects.get(id=x).delete()  #######

    if mylist_choice == 'todo':
        data_todo = ToDoModel.objects.filter(user=request.user, status='todo')
        return render(
            request, 'todoapp/mylist.html', {
                'data': data,
                'alldata': data_todo,
                'current_user': request.user,
                'status': 'todo'
            })

    elif mylist_choice == 'inProgress':
        data_inprogress = ToDoModel.objects.filter(user=request.user,
                                                   status='inProgress')
        return render(
            request, 'todoapp/mylist.html', {
                'data': data,
                'alldata': data_inprogress,
                'current_user': request.user,
                'status': 'inProgress'
            })

    elif mylist_choice == 'done':
        data_done = ToDoModel.objects.filter(user=request.user, status='done')
        return render(
            request, 'todoapp/mylist.html', {
                'data': data,
                'alldata': data_done,
                'current_user': request.user,
                'status': 'done'
            })

    else:
        alldata = ToDoModel.objects.filter(user=request.user)
        return render(
            request, 'todoapp/mylist.html', {
                'data': data,
                'alldata': alldata,
                'current_user': request.user,
                'status': 'mylist'
            })
Ejemplo n.º 3
0
def createGroupview(request):

    if request.method == 'POST':
        if len(
                request.POST.get('group')
        ) >= 2:  ##This conditon is used coz, if length is small, then  while creating grpid by using slicing we will get an error
            flag = False
            addGrp = GroupModel()
            allGroupData = GroupModel.objects.all()
            for data in allGroupData:
                if data.group == request.POST.get('group'):
                    flag = True
                    ##Here we are checking do group already exist or not, if yes flag will be True.

            if flag == False:
                addGrp.member = request.user  # here member is foregin key and we are adding first member of group as current user by default
                addGrp.created_by = str(request.user)
                addGrp.group = request.POST.get('group')
                addGrp.save()
                gid = GroupModel.objects.get(id=addGrp.id)
                ##Here we are creating new object of same recently created group object
                ##Because we require id of recently created group to create grpid of same group and we will not get group id untill we dont save that group object
                gid.grpid = str(gid.id) + gid.group[0:2]
                gid.save()
                mail_subject = "Your were added in " + "'" + request.POST.get(
                    "group") + "'" + ' by ' + str(request.user)
                userAddMail = User.objects.get(username=request.user)
                send_mail('New Group Created',
                          mail_subject,
                          '*****@*****.**', [userAddMail.email],
                          fail_silently=False)
                messages.success(request, 'Group created Successfully')
            else:
                messages.info(request, 'Group already exist')

        else:
            messages.info(request,
                          'Group name must contain atleast 2 characters')

    grpdata_member = GroupModel.objects.filter(member=request.user)
    ##Here we are retrieving all the groups of current loged in user
    mylist_data = ToDoModel.objects.filter(user=request.user,
                                           status='todo',
                                           flagTask='no')
    task_flag_update(request.user)

    return render(
        request, 'todoapp/createGroup.html', {
            'current_user': request.user,
            'grpdata_member': grpdata_member,
            'data': mylist_data
        })
Ejemplo n.º 4
0
def updateAssignedTaskView(request, id=None, grpid=None, activityOption=None):
    historyFlag = False
    updateTask = TaskAssignModel.objects.get(id=id)
    #This is object which we are going to update in steps below
    allfiles = GroupTaskAttachmentsModel.objects.filter(fileTask_id=id)
    #Here we are retrieving all the files attached with this  object (updateTask)
    #The fileTask_id is the foreign key connected to TaskAssignModel
    allLinks = GroupTaskWebLinkModel.objects.filter(linkTask_id=id)
    #Same for all the link attach to task
    grp_member = GroupModel.objects.filter(grpid=grpid)
    #Here we are retreiving all the member of the group
    #Because this member are required when we want to update assigen_to field
    for x in grp_member:
        groupName = x.group
        break
    formFile = GroupTaskAttachmentsForm()
    formLink = GroupTaskWebLinkForm()
    if activityOption == 'History/':
        historyFlag = True
        ##At this step we are checking History button is click or not by end user

    if request.method == 'POST':
        historyCheckFlag, flag = historyCheck(request.POST.get('comment'),
                                              request.POST.get('task'),
                                              request.POST.get('status'),
                                              request.POST.get('member_id'),
                                              id)
        ##By using historyCheck function defined in supportin_python file
        ##we check which fields are updated by end user while updating task
        updateTask = TaskAssignModel.objects.get(id=id)
        #Here we are retreivng object of TaskAssignModel (To which we are updating)
        if request.POST.get('member_id'):
            memberObject = GroupModel.objects.get(
                id=request.POST.get('member_id'))
            updateTask.assigned_to_id = memberObject
            updateTask.assigned_to_name = str(memberObject.member)
        if request.POST.get('task'):
            updateTask.task = request.POST.get('task')
        if request.POST.get('status'):
            updateTask.status = request.POST.get('status')
        if request.POST.get('comment'):
            updateTask.comment = request.POST.get('comment')
        updateTask.save()
        ##The above 4 if conditons are used beacause if we are updating comment then that is seperated form and send post request
        ## and it produce error while updating task,status,assigned_to_id and assigned_to_name
        ## as the post request will give None while retreiving data.

        if historyCheckFlag != False:
            historyDetail = GroupTaskActivityModel()
            historyDetail.grpTaskActivity_id = updateTask
            #Here the grpTaskActivity_id is foreign key connected to TaskAssignModel

            if flag == True:  ##This check is done to see if comment is changed or not
                historyDetail.comments = request.POST.get('comment')
            historyDetail.history = historyCheckFlag
            historyDetail.dateTime = datetime.now()
            historyDetail.updated_by = str(request.user)
            historyDetail.save()
            allUsers = User.objects.all()

            assigned_to_userFlag, assigned_by_userFlag = False, False
            for userData in allUsers:
                if userData.username == updateTask.assigned_to_name:
                    assigned_to_user = User.objects.get(
                        username=userData.username)
                    assigned_to_userFlag = True

                if userData.username == updateTask.assigned_by:
                    assigned_by_user = User.objects.get(
                        username=userData.username)
                    assigned_by_userFlag = True

                if assigned_to_userFlag and assigned_by_userFlag:
                    mail_subject = 'Group:-' + groupName + "\n'" + updateTask.task + "'" + ' task has been updated by ' + str(
                        request.user) + '\n' + 'Update-->\n' + historyCheckFlag
                    send_mail('Task Update',
                              mail_subject,
                              '*****@*****.**',
                              [assigned_to_user.email, assigned_by_user.email],
                              fail_silently=False)
                    break
            ##This whole process of for loop and 3 if conditionsa are done to retrieiv email of users
            ##To whom we need to send email

    task = updateTask.task
    assigned_to_id = updateTask.assigned_to_id_id
    assigned_to_name = updateTask.assigned_to_name
    status = updateTask.status
    comment = updateTask.comment
    assigned_by = updateTask.assigned_by
    ##This all values(task,assigend_to_id,etc) are seperated
    ##Because this value are used to show on update task form

    mylist_data = ToDoModel.objects.filter(user=request.user,
                                           status='todo',
                                           flagTask='no')
    task_flag_update(request.user)

    delailedActivity = GroupTaskActivityModel.objects.filter(
        grpTaskActivity_id_id=id)
    #The detailedActivity contains all the GroupTaskActivityModel objects of task (which as id)

    return render(
        request, 'todoapp/updateAssignedTask.html', {
            'id': id,
            'grpid': grpid,
            'historyFlag': historyFlag,
            'status': status,
            'allfiles': allfiles,
            'allLinks': allLinks,
            'formFile': formFile,
            'formLink': formLink,
            'current_user': request.user,
            'task': task,
            'grp_member': grp_member,
            'comment': comment,
            'delailedActivity': delailedActivity,
            'assigned_to_id': assigned_to_id,
            'data': mylist_data
        })
Ejemplo n.º 5
0
def groupview(request, grpid=None, member=None):

    listAllMemberTaskFlag, singleMemberTasksFlag = False, False
    ### this flags are used to check where all members from group are selected or single member
    grpAdmins = GroupAdminsModel.objects.all()
    ## Here we are retrieving all adminss

    grpdata_member = GroupModel.objects.filter(member=request.user)
    ##Here we are retreivng groups related to current end user
    mylist_data = ToDoModel.objects.filter(user=request.user,
                                           status='todo',
                                           flagTask='no')
    task_flag_update(request.user)
    verifyUserFlag = verifyGroupAdmin(str(request.user))
    grpdata = GroupModel.objects.filter(member=request.user)
    ## We are retriving all the group associated with the current user

    if request.method == 'POST':
        for x in request.POST:
            if x.isnumeric():
                TaskAssignModel.objects.get(id=x).delete()

    if len(grpdata) != 0:
        if grpid == None:  #### grip == None means no group has been seleted by end user
            listAllMemberTask = []
            for x in grpdata:
                grpid = x.grpid
                ###This step tell us first group has been selected
                ##because to show all data of the first group by default, when user enters to group view
                break
            selectedGroups = GroupModel.objects.filter(grpid=grpid)
            ##Know Using grpid we retrive all the same groups from GroupModel (which means we get all the users of that group)
            for x in selectedGroups:
                listAllMemberTask.append(
                    TaskAssignModel.objects.filter(assigned_to_id=x.id))
                ##Here we are adding all members task object in the list
                ##We do so, because each member can have multiple task and task all task are grouped in single index of list
                ## Because we cannot send all tasks, of all member without using list

            for x in listAllMemberTask:
                if len(x) != 0:
                    listAllMemberTaskFlag = True
                    ##Here we are check is listAllMemberTask is empty or not
                    ##Because if it is empty than listAllMemberTaskFlag remains False and which indicates there are no task for any user in that group

            return render(
                request, 'todoapp/group.html', {
                    'listAllMemberTaskFlag': listAllMemberTaskFlag,
                    'selectedGroups': selectedGroups,
                    'current_user': request.user,
                    'verifyUserFlag': verifyUserFlag,
                    'grpid': grpid,
                    'grpdata_member': grpdata_member,
                    'data': mylist_data,
                    'listAllMemberTask': listAllMemberTask,
                    'grpAdmins': grpAdmins
                })

        elif member == None:  ##In this conditon group is selected by user and we required to show all data of that grp
            listAllMemberTask = []
            selectedGroups = GroupModel.objects.filter(grpid=grpid)
            for x in selectedGroups:
                listAllMemberTask.append(
                    TaskAssignModel.objects.filter(assigned_to_id=x.id))

            for x in listAllMemberTask:
                if len(x) != 0:
                    listAllMemberTaskFlag = True
            return render(
                request, 'todoapp/group.html', {
                    'listAllMemberTaskFlag': listAllMemberTaskFlag,
                    'selectedGroups': selectedGroups,
                    'current_user': request.user,
                    'verifyUserFlag': verifyUserFlag,
                    'grpid': grpid,
                    'grpdata_member': grpdata_member,
                    'data': mylist_data,
                    'listAllMemberTask': listAllMemberTask,
                    'grpAdmins': grpAdmins
                })

        else:  ##In this condition we are selecting the data of single user
            singleMemberTasks = []
            selectedGroups = GroupModel.objects.filter(grpid=grpid)
            userData = User.objects.all()
            for x in userData:
                if x.username == member:
                    singleGroup = GroupModel.objects.filter(grpid=grpid,
                                                            member=x)
                    break

            for x in singleGroup:
                singleMemberTasks.append(
                    TaskAssignModel.objects.filter(assigned_to_id=x.id))

            for x in singleMemberTasks:
                if len(x) != 0:
                    singleMemberTasksFlag = True
                    break

            return render(
                request, 'todoapp/group.html', {
                    'singleMemberTasksFlag': singleMemberTasksFlag,
                    'selectedGroups': selectedGroups,
                    'current_user': request.user,
                    'member': member,
                    'grpid': grpid,
                    'verifyUserFlag': verifyUserFlag,
                    'grpdata_member': grpdata_member,
                    'data': mylist_data,
                    'singleMemberTasks': singleMemberTasks,
                    'grpAdmins': grpAdmins
                })

    else:
        return render(
            request, 'todoapp/group.html', {
                'noGroups': 'True',
                'current_user': request.user,
                'verifyUserFlag': verifyUserFlag,
                'data': mylist_data,
                'grpAdmins': grpAdmins
            })
Ejemplo n.º 6
0
def description_view(request, id=None, seleted_option=None):

    if request.method == 'POST':
        mylist_data = ToDoModel.objects.get(id=id)
        summary = SummaryModel()
        modefied_dt, flag = task_detail_modifed(
            request.POST.get('description'), request.POST.get('status'),
            datetime(int(request.POST.get('year')),
                     int(request.POST.get('month')),
                     int(request.POST.get('day'))).date(),
            time(int(request.POST.get('hour')), int(request.POST.get('min'))),
            id)
        ##This task_detail_modifed function is used to check values are same or changed of the variables
        if modefied_dt != False:
            if flag[0] == "True":
                mylist_data.date = datetime(
                    int(request.POST.get('year')),
                    int(request.POST.get('month')),
                    int(request.POST.get('day'))).date()
            if flag[1] == "True":
                mylist_data.time = time(int(request.POST.get('hour')),
                                        int(request.POST.get('min')))
            if flag[2] == "True":
                mylist_data.status = request.POST.get('status')
            if flag[3] == "True":
                mylist_data.description = request.POST.get('description')
            ##This four if condition are set too check anything updated or not, if not it don't update in model

            mylist_data.user = request.user
            mylist_data.flagTask = "no"
            mylist_data.save()

            summary.taskId = mylist_data
            ##### Here the taskId is foreign key and we are assigning object of TodoModel to taskId
            ##### due to which summary object get linked to TodoModel

            summary.dateTime = datetime.now()
            if flag[3] == "True":  ## if is used to check any update in description
                summary.description_summary = request.POST.get('description')
            summary.modefied_detail = modefied_dt
            summary.created_update = "updated"
            summary.save()
            messages.success(request, 'Task Updated Successfully')

        else:
            #updated = None
            messages.info(request, 'No changes detected while updating task')

    data = ToDoModel.objects.get(id=id)
    date_listAllMemberTask = str(data.date).split('-')
    time_listAllMemberTask = str(data.time).split(':')
    description_data = SummaryModel.objects.filter(taskId=id)
    ##Here we are retreiving all the SummaryModel objects related to seleted task

    mylist_data = ToDoModel.objects.filter(user=request.user,
                                           status='todo',
                                           flagTask='no')
    task_flag_update(request.user)
    return render(
        request, 'todoapp/description.html', {
            "description_data": description_data,
            'id': id,
            'description': data.description,
            'seleted_option': seleted_option,
            "status": data.status,
            'task': data.task,
            'time': data.time,
            'date': data.date,
            'day': int(date_listAllMemberTask[2]),
            'month': date_listAllMemberTask[1],
            'year': int(date_listAllMemberTask[0]),
            'hour': time_listAllMemberTask[0],
            'min': time_listAllMemberTask[1],
            'current_user': request.user,
            'data': mylist_data
        })