예제 #1
0
def sendingEmail(request, task):
    """  send email to the members when a non project task is assigned """
    taskallocationusers = NonProjectTaskAssignees.objects.filter(
        non_project_taskID=task.pk)
    if (len(taskallocationusers) > 0):
        #fivegusers = [FiveGUser.objects.filter(pk = each.user_id)
        fivegusers = [
            User.objects.filter(pk=each.user_id)
            for each in taskallocationusers
        ]
        userprofiles = [
            UserProfile.objects.get(pk=each[0].userProfile_id)
            for each in fivegusers
        ]
        users = [
            User.objects.get(pk=each.authUser_id) for each in userprofiles
        ]
        email_message = settings.NONPROJECT_TASK_ASSIGN_UNASSIGN % (task.name)
        try:
            for each in users:
                Email().send_email('Assign/Unassign Task', email_message, [
                    each.email,
                ], request)
                CapturLog().LogData(request, 'E-Mail', MODULE,
                                    'mail sent successfull')
        except Exception:
            errMessage = 'Email Sennding failed \n %s' % (Exception)
            CapturLog().LogData(request, 'E-MailErr', MODULE, errMessage)
예제 #2
0
    def __createICS__(self):
        try:
            cal = vobject.iCalendar()
            cal.add('method').value = 'PUBLISH'

            item = Event.objects.get(pk=self.eventid)
            item.startTime, item.eventDt = getEventTimes(
                self.request, item.startTime, item.eventDt, True)
            item.endTime, item.eventDt = getEventTimes(self.request,
                                                       item.endTime,
                                                       item.eventDt, False)

            vEvent = cal.add('vevent')
            for vkey, key in EVENT_ITEMS:
                value = getattr(self, key)(item)
                if value:
                    vEvent.add(vkey).value = value

            vtzone = cal.add('vtimezone')
            vtzone.add('TZID').value = 'UTC'  #self.tzone
            VtimeDet = vtzone.add('STANDARD')
            for vkey, key in EVENT_VTIMEZONE:
                value = getattr(self, key)()
                if value:
                    VtimeDet.add(vkey).value = value

            response = HttpResponse(cal.serialize())
            strdata = str(response)
            RESPONSE_HDR_TXT = 'Content-Type: text/html; charset=utf-8'
            if (strdata.__contains__(RESPONSE_HDR_TXT)):
                strdata = strdata.replace(RESPONSE_HDR_TXT, '')
            eventpath = settings.EVENT_PATH + '/Event.ics'
            w = open(eventpath, "w")
            w.write(strdata)
            w.close()
            Email().send_email(item.name, item.message, self.sendingIds, '',
                               eventpath)
            for each in self.sendingIdsPwd:
                user = User.objects.filter(email=each)
                pwd = Util().Guid()[:6]
                email_message = ''
                if len(user) > 0:
                    user[0].set_password(pwd)  # setting the encrypted PWD
                    user[0].save()
                    email_message = settings.EMAIL_MESSAGE % (user[0].email,
                                                              pwd)
                email_message = email_message + '\n' + item.message
                Email().send_email(item.name, email_message, [
                    each,
                ], '', eventpath)
        except Exception:
            errMessage = 'Email Sending failed \n %s' % (Exception)
            CapturLog().LogData(request, 'E-MailError', MODULE, errMessage)
        else:
            CapturLog().LogData(request, 'E-Mail', MODULE,
                                'Email sent successfully')
        finally:
            return ''
예제 #3
0
def formSave(request, fromProject=False):
    """ save validation for master config """
    action = ''
    msg = ''
    preData = []
    postData = []
    if fromProject:
        dynamicForm = request.POST.get('formname', 'TypeForm')
        pkID = request.POST.get('pkID', '')
    else:
        dynamicForm = request.POST.get('masterType', 'DomainForm')
        modelName = dynamicForm.strip('Form')
        pkID = request.session.get('pkID', '')
    try:
        models = MODELS[dynamicForm]
        if pkID != '':
            preData = models.objects.get(pk=pkID)
            formData = models.objects.get(pk=pkID)
            dynamicModelForm = MODEL_FORM[dynamicForm](
                request.POST, instance=formData)
        else:
            dynamicModelForm = MODEL_FORM[dynamicForm](request.POST)

        """ Validation for the forms """
        nameData = dynamicModelForm['name'].data
        duplicateChk = models.objects.filter(
            name=nameData) if pkID == '' else models.objects.exclude(
            pk=pkID).filter(
            name=nameData)
        if (len(duplicateChk) > 0):
            action = 'Duplicate'

        if(dynamicModelForm['name'].data == ''):
            action = 'Required'

        if dynamicForm == 'StateForm' and (
                dynamicModelForm['country'].data == ''):
            action = 'CountryRequired'

        if dynamicModelForm.is_valid() and action == '':
            dynamicModelForm.save()
            postData = models.objects.get(name=dynamicModelForm['name'].data)
            action = 'Save'
        msg = actionMsg[action] % modelName

    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, action + 'Error', MODULE, errMessage)
    else:
        if preData == []:
            CapturLog().LogData(request, action, MODULE, msg, postData)
        else:
            CapturLog().LogData(request, action, MODULE, msg, postData, preData)

    return dynamicModelForm, msg, action
예제 #4
0
def MasterView(request, dataForm=None, msg=''):
    """ view to display master configuration """
    userName = ''
    try:
        userName = GetLoginUserName(request)
        masterConfig = MasterConfig.objects.all().order_by('sequenceNo')
        pkID = request.GET.get('ids', '')
        dynamicForm = request.GET.get('name', 'DomainForm') \
            if(request.GET.__contains__('name')) else \
            request.session.get('dynamicForm', 'DomainForm')
        request.session['dynamicForm'] = dynamicForm
        request.session['pkID'] = pkID
        models = MODELS[dynamicForm]
        masterList, page_range = getListData(request, models)
        formData = models.objects.get(pk=pkID) if pkID != '' else models()
        dynamicModelForm = MODEL_FORM[dynamicForm](instance=formData)
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, MODULE + 'Error', MODULE, errMessage)
    return render(request, 'CommonMaster.html', {
        'title': 'Master', 'userName': userName,
        'message': msg, 'page_range': page_range,
        'dynamicForm': dynamicForm,
        'masterConfig': masterConfig, 'formdata': dynamicModelForm,
        'masterList': masterList},)
예제 #5
0
    def __createICS__(self):
        try:
            cal = vobject.iCalendar()
            cal.add('method').value = 'PUBLISH'

            item = Event.objects.get(pk=self.eventid)
            item.startTime, item.eventDt = getEventTimes(
                self.request, item.startTime, item.eventDt, True)
            item.endTime, item.eventDt = getEventTimes(self.request,
                                                       item.endTime,
                                                       item.eventDt, False)

            vEvent = cal.add('vevent')
            for vkey, key in EVENT_ITEMS:
                value = getattr(self, key)(item)
                if value:
                    vEvent.add(vkey).value = value

            vtzone = cal.add('vtimezone')
            vtzone.add('TZID').value = 'UTC'
            VtimeDet = vtzone.add('STANDARD')
            for vkey, key in EVENT_VTIMEZONE:
                value = getattr(self, key)()
                if value:
                    VtimeDet.add(vkey).value = value

            response = HttpResponse(cal.serialize())
            strdata = str(response)
            RESPONSE_HDR_TXT = 'Content-Type: text/html; charset=utf-8'
            if (strdata.__contains__(RESPONSE_HDR_TXT)):
                strdata = strdata.replace(RESPONSE_HDR_TXT, '')
            eventpath = settings.EVENT_PATH + '/Event.ics'
            w = open(eventpath, "w")
            w.write(strdata)
            w.close()
            Email().send_email(item.name, item.message, self.sendingIds, '',
                               eventpath)
        except Exception:
            errMessage = 'Email Sending failed \n %s' % (Exception)
            CapturLog().LogData(request, 'E-MailError', MODULE, errMessage)
        else:
            CapturLog().LogData(request, 'E-Mail', MODULE,
                                'Email sent successfully')
        finally:
            return ''
예제 #6
0
def SaveNonProjectTask(request):
    userName, userID, privilege = __getLoginData__(request)
    msg = ''
    non_project_task = ''
    statusmsg = []
    action = request.POST.get('action', '')
    try:
        if request.method == 'POST':
            if (action == 'Update'):
                non_project_task = __getNonProjectTask__(request)
                if __privilegeCheck__(request, privilege):
                    msg = 'ACCESSDENIED'
                else:
                    taskallocation = NonProjectTaskAssignees.objects.filter(
                        non_project_taskID=non_project_task.pk)
                    if (len(taskallocation) > 0):
                        for each in taskallocation:
                            if (each.status == 'Complete'):
                                statusmsg.append('UPDATEUNSUCCESSFUL')
                            else:
                                statusmsg.append('SAVE')
                    if statusmsg != [] and not statusmsg.__contains__('SAVE'):
                        msg = 'UPDATEUNSUCCESSFUL'
                    if msg != 'UPDATEUNSUCCESSFUL':
                        if non_project_task.owner.pk == userID:
                            msg, non_project_task = __saveNonProjectTask__(
                                request)
                        else:
                            __saveUserDetails__(request, non_project_task)
                            msg = 'SAVE'
            else:
                msg, non_project_task = __saveNonProjectTask__(request)
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, 'SaveError', MODULE,
                            actionMsg['SaveError'])
    else:
        if msg != 'SAVE':
            CapturLog().LogData(request, 'Save', MODULE, actionMsg[msg])
            return NonProjectTaskView(request, msg, non_project_task.pk)
        else:
            CapturLog().LogData(request, 'Save', MODULE, actionMsg[msg],
                                non_project_task)
            return NonProjectTaskList(request, msg)
예제 #7
0
def __getPreEventData__(request):
    preEvent = None
    ACTION = 'Create'
    try:
        preEvent = Event.objects.filter(pk=request.POST.get('txteventID', ''))
        preEvent = preEvent[0] if len(preEvent) > 0 else None
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, ACTION + 'Err', MODULE, errMessage)
    finally:
        return preEvent
예제 #8
0
def ProgramDelete(request):
    """
        delete the project.
    """
    msg = ''
    programsToDelete = request.POST.getlist('project_pk')

    try:
        for program in programsToDelete:
            program = Project.objects.get(project_no=program)

            if program.milestone.all() or Event.objects.filter(
                    name=program).exclude(cancel=True):
                msg = 'Deleteunsuccess'
            else:
                program.cancel = True
                program.save()
                msg = 'DeleteSuccess'
                CapturLog().LogData(request, 'Delete', MODULE, actionMsg[msg],
                                    program)
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, 'Delete', MODULE, errMessage)
    return project_list(request, msg=msg)
예제 #9
0
def eventDelete(request):
    ACTION = 'Delete'
    msg = 'Default'
    try:
        if request.method == 'POST':
            eventsToDelete = request.POST.getlist('deleteChecked')
            eventToDelete = eventsToDelete if len(eventsToDelete) > 0 else [
                request.POST.get('txteventID', '')
            ]
            msg = eventDeleteModels(
                eventToDelete) if len(eventToDelete) > 0 else 'Delete_Create'
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, ACTION, MODULE, errMessage)
    finally:
        return MonthlyCalendar(request, msg=msg)
예제 #10
0
파일: views.py 프로젝트: raveena17/django
def MasterDelete(request):
    """ delete for master config """
    msg = ''
    action = ''
    try:
        if (request.method == 'POST'):
            masterIDS = request.POST.getlist('deleteChecked')
            dynamicForm = request.POST.get('masterType', 'DomainForm')
            modelName = dynamicForm.strip('Form')
            action =  'Delete_Success' if len (DELETE_METHOD[dynamicForm](masterIDS)) > 0 else 'Delete_UnSuccess' \
                                        if (masterIDS != []) else 'SelectRecord'
            msg = actionMsg[action] if (
                action == 'SelectRecord') else actionMsg[action] % modelName
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, action, MODULE, errMessage)
    finally:
        return MasterView(request, dynamicForm, msg)
예제 #11
0
def Events(request,
           action='Default',
           eventpk=None,
           eventattendees='',
           actiontype=''):
    try:
        project_id = stage_id = ''
        stages = []
        logindata = request.session.get('LoginData', '')
        profile = logindata['loginUserProfile']
        if not eventpk:
            if request.GET.get('eventid', '') != '':
                eventpk = request.GET.get('eventid', None)
            else:
                eventpk = request.GET.get('ids', None)
        todaydate = request.GET.get('selecteddate', '')
        times, currentdate = getToday(request)
        allattendees = FiveGUser.objects.all().exclude(cancel='1').exclude(
            status='0')
        eventAttendeesset = [
            each.user for each in EventAttendee.objects.filter(event=eventpk)
        ]

        attendees = set(allattendees) - set(eventAttendeesset)

        int_attendees, ext_attendees = getUserTypeFilter(attendees)
        int_eventattendees, ext_eventattendees = getUserTypeFilter(
            eventAttendeesset)
        program = Project.objects.all().exclude(cancel='1').exclude(
            pk='0').order_by('name')
        eventattendees = EventAttendee.objects.filter(event=eventpk)
        eventotherattendees = EventOtherAttendee.objects.filter(event=eventpk)
        try:
            events = Event.objects.get(eventID=eventpk)
            actiontype = 'Update' if events else 'Create'
        except:
            events = None
            actiontype = 'Create'
        times = __getTimes__()
        if (events):
            try:
                stages = events.program.milestone.all()
            except:
                stages = Milestone.objects.none()
            events.startTime, events.eventDt = getEventTimes(
                request, events.startTime, events.eventDt, True)
            events.endTime, events.eventDt = getEventTimes(
                request, events.endTime, events.eventDt, False)
            try:
                project_id = events.program.pk
            except:
                project_id = '0'
            try:
                stage_id = events.stage.pk
            except:
                stage_id = '0'
            if project_id != '0':
                int_attendees = set(
                    events.program.team.filter(
                        sysuserType='Internal')) - set(int_eventattendees)
                ext_attendees = set(
                    events.program.team.filter(
                        sysuserType='External')) - set(ext_eventattendees)
            if not times.__contains__(events.startTime):
                times.append(events.startTime)
            if not times.__contains__(events.endTime):
                times.append(events.endTime)
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, actiontype + 'Err', MODULE, errMessage)
    else:
        CapturLog().LogData(request, actiontype, MODULE,
                            ACTION_MESSAGE[actiontype])

    return render(
        request,
        'EventEditor.html',
        {
            'msg': ACTION_MESSAGE[action],
            'currentdate': currentdate,
            'events': events,
            'eventattendees': int_eventattendees,
            'program': program,
            'times': times,
            'attendees': int_attendees,
            'ext_eventattendees': ext_eventattendees,
            'ext_attendees': ext_attendees,
            'eventotherattendees': eventotherattendees,
            'stages': stages,
            'projectID': project_id,
            'stageID': stage_id,
            'todaydate': todaydate,
            'action': actiontype,
            'title': 'Event',
            'profile': profile
        },
    )
예제 #12
0
def saveEvent(request):
    action = 'Default'
    profile = request.user.get_profile()
    preeventdata = __getPreEventData__(request)
    eventdata = __getEvent__(request)
    if (profile == '0'):
        CapturLog().LogData(request, 'Save', MODULE, ACTION_MESSAGE['Access'])
        return Events(request, 'Access')
    eventaction = 'create' if (eventdata.pk == '') else 'modify'
    #serprofile = FiveGUser.objects.get(userProfile
    #                   = logindata['loginUserProfile'])
    #ventteam = EventAttendee.objects.filter(user = userprofile,
    eventteam = EventAttendee.objects.filter(user=request.user,
                                             event=eventdata)
    if (len(eventteam) <= 0):
        CapturLog().LogData(request, 'Save', MODULE, ACTION_MESSAGE['Access'])
        return Events(request, 'Access', eventdata.eventID)

    else:
        CapturLog().LogData(request, 'Save', MODULE, ACTION_MESSAGE['Access'])
        return Events(request, 'Access', eventdata.eventID)

    ispasttime = __checkCurrentTime__(request, eventdata.eventDt,
                                      eventdata.startTime)
    if (ispasttime == False):
        return Events(request, 'PASTTIME', eventdata.pk)

    eventdata.eventDt, eventdata.startTime, eventdata.endTime = __geteventdatetime__(
        request, eventdata.eventDt, eventdata.startTime, eventdata.endTime)
    eventdata.save()
    insetAssignees = request.POST.get('selectedresources', '')
    #    deleteAssignees, insertAssignees = __getAttendees__(request,
    #                                            logindata, eventdata.pk)
    [
        EventAttendee.objects.filter(event=eventdata, user=each).delete()
        for each in deleteAssignees
    ]
    [
        EventAttendee(event=eventdata, user=each).save()
        for each in insertAssignees
    ]

    otherAttendees = request.POST.getlist('otherAttendees')
    [
        each.delete()
        for each in EventOtherAttendee.objects.filter(event=eventdata)
    ]
    [
        EventOtherAttendee(event=eventdata, otheruser=each).save()
        for each in otherAttendees
    ]
    createics(eventdata.pk, otherAttendees, request)
    action = 'Update' if preeventdata != None else 'Create'
    CapturLog().LogData(request, 'Save', MODULE, ACTION_MESSAGE['Save'],
                        eventdata, preeventdata)
    try:
        pass
    except (RuntimeError, TypeError, NameError):
        errMessage = ERROR_MESSAGE % (RuntimeError, TypeError, NameError)
        CapturLog().LogData(request, action + 'Err', MODULE, errMessage)
    return MonthlyCalendar(request, msg='Save')
예제 #13
0
파일: views.py 프로젝트: raveena17/django
def RepositoryUpload(request):
    try:
        form = FileUploadForm(request.POST, request.FILES)
        msg = ''
        flg = 0
        repositoryTag = request.POST.get('repositoryTag', '0')
        if repositoryTag == '':
            repositoryTag = '0'
        if form.is_valid():
            program = get_program_details(request)
            uploadedFile = form.cleaned_data['fileUploaded']
            name = uploadedFile.name
            for each in settings.FILE_EXTENSIONS_TO_EXCLUDE:
                if name.__contains__(each):
                    flg = 1

            if uploadedFile._size > settings.MAX_FILE_SIZE:
                msg = 'MaxFilesize'
                CapturLog().LogData(request, 'Upload', MODULE, actionMsg[msg])
                return RepositoryView(request, msg)

            if flg != 1:
                fileUploaded = request.FILES['fileUploaded']
                check = 0
                ID = request.session.get('projectid', '')
                randomID = Util().Guid()
                repository = Repository.objects.create(
                    fileID=randomID,
                    program_id=ID,
                    repositoryTag_id=repositoryTag)
                filename = fileUploaded.name

                currentdir = settings.MEDIA_ROOT + '/all files/'
                ChangeMode(settings.MEDIA_ROOT)
                ChangeMode(currentdir)
                currentosdir = currentdir
                currentdir = os.listdir(currentdir)
                for each in currentdir:
                    if each == ID:
                        check = 1
                if (check != 1):
                    os.mkdir(currentosdir + ID)

                fd = open('%s/%s' % (currentosdir + ID, randomID + filename),
                          'wb')
                for chunk in fileUploaded.chunks():
                    fd.write(chunk)
                fd.close()

                filepath = 'all files/' + ID + '/' + randomID + filename if filename != '' else ''
                repository.fileUploaded = filepath
                repository.name = name
                repository.save()
                msg = 'Save'
                CapturLog().LogData(request, msg, MODULE, actionMsg[msg],
                                    repository)
                form = FileUploadForm()
            else:
                msg = 'Uploadunsuccessful'
                CapturLog().LogData(request, 'Save', MODULE, actionMsg[msg])
        else:
            CapturLog().LogData(request, 'Save', MODULE,
                                actionMsg['Uploadunsuccessful'])
    except (RuntimeError, TypeError, NameError):
        errMessage = ''
        CapturLog().LogData(request, msg, MODULE, actionMsg[msg])

    if request.POST.get('fromHome', '') == 'fromHome':
        return HttpResponseRedirect('/ProjectHome/?msg=' + msg)
    else:
        return HttpResponseRedirect('/repository/?msg=' + msg)