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)
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 ''
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
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},)
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 ''
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)
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
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)
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)
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)
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 }, )
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')
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)