def save (self): if self.cleaned_data ['supervisor'] == "-1": supervisor = None role = UserRoles.OFFICIAL else: supervisor = Official.objects.get (id = self.cleaned_data ['supervisor']) role = UserRoles.DELEGATE department = ComplaintDepartment.objects.get (id = self.cleaned_data ['department']) user = User.objects.create (username = self.cleaned_data ['username'], first_name = self.cleaned_data ['name']) password = get_random_string (PASSWORD_LEN) user.set_password (password) user.save () cmhuser = CmhUser.objects.create (user = user, phone = self.cleaned_data ['phone']) cmhuser.set_user_role (role) cmhuser.save () message = PASSWORD_MSG % (cmhuser.user.username, password) queue_sms (cmhuser.phone, message) official = Official.objects.create (user = user, supervisor = supervisor) official.department = department official.save() return official
def save (self): user = User.objects.create (username = self.cleaned_data ['username'], first_name = self.cleaned_data ['name']) password = get_random_string (PASSWORD_LEN) user.set_password (password) user.save () cmhuser = CmhUser.objects.create (user = user, phone = self.cleaned_data ['phone']) cmhuser.set_user_role (UserRoles.CSO) message = PASSWORD_MSG % (cmhuser.user.username, password) queue_sms (cmhuser.phone, message) return cmhuser
def save (self): dmid = self.cleaned_data ['dmid'] dm = CmhUser.objects.get (user__approle__role = UserRoles.DM, id = dmid) user = dm.user user.first_name = self.cleaned_data ['name'] password = get_random_string (PASSWORD_LEN) user.set_password (password) user.save () dm.phone = self.cleaned_data ['phone'] dm.save () message = PASSWORD_MSG % (dm.phone, password) queue_sms (dm.phone, message)
def save (self): user = User.objects.get(username = self.cleaned_data['username']) cmhuser = CmhUser.objects.get(id = self.cleaned_data['objid']) user.first_name = self.cleaned_data['name'] password = get_random_string (PASSWORD_LEN) user.set_password (password) user.save() cmhuser.user = user cmhuser.phone = self.cleaned_data ['phone'] cmhuser.save () message = PASSWORD_MSG % (cmhuser.user.username, password) queue_sms (cmhuser.phone, message) return cmhuser
def save (self): dept = ComplaintDepartment.objects.get (id = self.cleaned_data['department'].id) cmhuser = CmhUser.objects.get(id = self.cleaned_data['objid']) official = Official.objects.get(user__cmhuser__id = self.cleaned_data['objid']) user = User.objects.get(username = self.cleaned_data['username']) user.first_name = self.cleaned_data['name'] password = get_random_string (PASSWORD_LEN) user.set_password (password) user.save () cmhuser.user = user cmhuser.phone = self.cleaned_data ['phone'] official.user = user official.department = dept official.save() cmhuser.save () message = PASSWORD_MSG % (cmhuser.user.username, password) queue_sms (cmhuser.phone, message) return official
def gateway(request): print "came in gateway" if request.method == "GET": transferreq = SMSTransferReqFormat(request.GET) if transferreq.is_valid() == True: messages = [] for tm in TextMessage.objects.filter(processed=False): messages.append({"to": tm.phone, "message": tm.message}) tm.processed = True tm.processed_time = datetime.now() tm.save() return HttpResponse(json.dumps({"payload": {"task": "send", "secret": "0123456789", "messages": messages}})) else: # non user generated request, just ignore this return HttpResponse(json.dumps({"payload": {"success": "true"}})) elif request.method == "POST": receivedform = SMSReceivedFormat(request.POST) # debug ("Received from: " + str (receivedform)) if receivedform.is_valid(): try: # debug ("Form is valid") sender_phone = receivedform.cleaned_data["from"] message = receivedform.cleaned_data["message"] rtm = ReceivedTextMessage.objects.create(sender=sender_phone, valid=False, message=message) matches = re.match(FORMAT, message, re.S) if matches != None: block = str(int(matches.group("block"))) gramp = str(int(matches.group("gramp"))) villg = str(int(matches.group("villg"))) sender_name = matches.group("name") issue_desc = matches.group("complaint") citizen = get_or_create_citizen(sender_phone, sender_name) location = get_location_attr(block, gramp, villg) compl = Complaint.objects.create( complainttype=None, complaintno=None, description=issue_desc, department=None, curstate=STATUS_NEW, filedby=citizen, logdate=datetime.today().date(), location=location, original=None, creator=None, ) update_complaint_sequence(compl) ComplaintClosureMetric.objects.create(complaintno=compl.complaintno) # If we reach this point, the message was properly formatted rtm.valid = True rtm.complaint = compl rtm.save() # Remove the user from blacklist in case he is there for sbl in SenderBlacklist.objects.filter(sender=rtm.sender): # debug ("Removing sender from blacklist: " + str (rtm.sender)) sbl.delete() text_message = _( "Your Grievance number is %s. We would revert in 36 hours to seek more details" % (compl.complaintno) ) queue_sms(sender_phone, text_message) return HttpResponse(json.dumps({"payload": {"success": "true"}})) else: itm = IgnoredTextMessage.objects.create(sender=sender_phone, valid=False, message=message) raise InvalidMessageException except (InvalidMessageException, ObjectDoesNotExist) as e: # Improperly formatted # check if the user is black listed, keep the sender black listed and don't respond if not is_blacklisted(rtm.sender): if not new_blacklist(rtm.sender): text_message = "Call center would respond in next 36 hrs after looking into your issue" queue_sms(sender_phone, text_message) else: # debug ("Sender is blacklisted. Not sending ack: " + str (rtm.sender)) pass return HttpResponse(json.dumps({"payload": {"success": "true"}})) else: # In this case, we can safely assume that the message is not coming from # SMSSync so silently ignore. return HttpResponse(json.dumps({"payload": {"success": "true"}})) else: return HttpResponseForbidden