def post(self, request, *args, **kwargs): if not request.user.is_authenticated(): return Response({}, status.HTTP_401_UNAUTHORIZED) data = dict(request.data) photo = data['photo'][0] name = photo.name ext = os.path.splitext(name)[-1] user_pk = data.get('user_pk', [0]) user_pk = int(user_pk[0]) if not user_pk: user_pk = request.user.pk user = request.user else: user = models.MainUser.objects.get(pk=user_pk) if request.user.pk != user_pk: if request.user.pk not in user.pk_can_edit: if not request.user.is_admin: return Response({}, status.HTTP_403_FORBIDDEN) filepath = "profile_photos/" + \ helpers.id_generator() + str(helpers.timestamp_sec() / 100) + ext helpers.fs.save_file(filepath, photo) helpers.fs.generate_single_avatar(filepath, user.pk) if not user.is_organization and not user.is_expert: patient = users.Patient.objects.get(pk=user.patient) patient.photo = [filepath] patient.save() elif user.is_expert: expert = users.Expert.objects.get(pk=user.expert) expert.photo = [filepath] expert.save() return Response({'path': filepath})
def callback_call(self, obj): room = str(helpers.timestamp_sec()) print(obj) self.sendMsgToAll('incoming_call', {'user': self.user.owner, 'room': room}, user_pk=obj['to_user_pk']) self.sendMsgToSelf("call", {'room': room})
def callback_call(self, obj): room = str(helpers.timestamp_sec()) print(obj) self.sendMsgToAll('incoming_call', { 'user': self.user.owner, 'room': room }, user_pk=obj['to_user_pk']) self.sendMsgToSelf("call", {'room': room})
def callback_call(self, obj): room = str(int(helpers.timestamp_sec() / 10)) + self.user.username self.sendMsgToAll('incoming_call', {'user': self.user.owner, 'username': self.user.username, 'room': room}, user_pk=int(obj['to_user_pk'])) user = models.User.objects.get(owner=int(obj['to_user_pk'])) self.sendMsgToSelf( "call", {'room': room, 'user': int(obj['to_user_pk']), 'username': user.username})
def callback_admin_msg(self, obj): if 'remove_opened_in_progress' in obj.keys(): user_pk = obj['remove_opened_in_progress']['user_pk'] so_pk = obj['remove_opened_in_progress']['so_pk'] queue = self.get_or_create_SOQueue() for so in queue.opened: if so['so_pk'] == so_pk: queue.opened.remove(so) queue.save() self.signal_MoveSo('opened', None, so) break queue = self.get_or_create_SOQueue() for so in queue.in_progress: if so['so_pk'] == so_pk: queue.in_progress.remove(so) queue.save() self.signal_MoveSo('in_progress', None, so) break if 'open_so' in obj.keys(): print("Open SO") so_pk = obj['open_so']['so_pk'] so_obj = { 'user': obj['open_so']['user_pk'], 'so_pk': so_pk, 'assigned_by': 0, 'assigned_to': 0, 'date': helpers.timestamp_sec(), 'assigned_date': None, 'closed_date': None, 'reopen_date': None, } self.queue = self.get_or_create_SOQueue() if self.check_is_user_in(self.user.owner, 'opened'): return self.queue.opened.append(so_obj) self.queue.save() self.signal_MoveSo(None, 'opened', so_obj) if 'close_so' in obj.keys(): so_pk = obj['close_so']['so_pk'] queue = self.get_or_create_SOQueue() for so in queue.processed_: if so['so_pk'] == so_pk: queue.processed_.remove(so) queue.closed.append(so) queue.save() self.signal_MoveSo('processed_', 'closed', so) break
def callback_open_so(self, obj): if self.user.is_admin or self.user.is_moderator or self.user.is_expert: return so_obj = { 'user': self.user.owner, 'so_pk': obj['so_pk'], 'assigned_by': 0, 'assigned_to': 0, 'date': helpers.timestamp_sec(), 'assigned_date': None, 'closed_date': None, 'reopen_date': None, } self.queue = self.get_or_create_SOQueue() if self.check_is_user_in(self.user.owner, 'opened'): return self.queue.opened.append(so_obj) self.queue.save() self.signal_MoveSo(None, 'opened', so_obj)
def callback_assign_to(self, obj): if self.user.is_admin or self.user.is_moderator: to_user_pk = obj['to_user_pk'] obj = obj['so'] self.queue = self.get_or_create_SOQueue() print(obj) del obj['$$hashKey'] print(self.queue.opened) self.queue.opened.remove(obj) obj['assigned_by'] = self.user.owner obj['assigned_to'] = to_user_pk obj['assigned_date'] = helpers.timestamp_sec() self.queue.opened.append(obj) self.queue.save() self.signal_MoveSo('opened', 'opened', obj) # добавляем доктора к людям, которые могут просматривать # профиль url = "/api/v1/patients/" + str(obj['user']) + "/permissions/" data = {'user': to_user_pk, 'action': 'append'} helpers.http_put(url, data)
def callback_assign_to(self, obj): if self.user.is_admin or self.user.is_moderator: to_user_pk = obj['to_user_pk'] obj = obj['so'] self.queue = self.get_or_create_SOQueue() print(obj) del obj['$$hashKey'] print(self.queue.opened) self.queue.opened.remove(obj) obj['assigned_by'] = self.user.owner obj['assigned_to'] = to_user_pk obj['assigned_date'] = helpers.timestamp_sec() self.queue.opened.append(obj) self.queue.save() self.signal_MoveSo('opened', 'opened', obj) # добавляем доктора к людям, которые могут просматривать # профиль url = "/api/v1/patients/" + str(obj['user']) + "/permissions/" data = { 'user': to_user_pk, 'action': 'append' } helpers.http_put(url, data)