Beispiel #1
0
    def post(self, request):
        if not request.user.has_permission(
                permissions.PERMISSION_CAN_ADD_RECORD_RLC,
                for_rlc=request.user.rlc):
            raise CustomError(error_codes.ERROR__API__PERMISSION__INSUFFICIENT)
        data = request.data
        rlc = request.user.rlc
        if 'client_id' in data:
            try:
                client = models.Client.objects.get(pk=data['client_id'])
            except:
                raise CustomError(
                    error_codes.ERROR__RECORD__CLIENT__NOT_EXISTING)
            client.note = data['client_note']
            client.phone_number = data['client_phone_number']
            client.save()
        else:
            client = models.Client(name=data['client_name'],
                                   phone_number=data['client_phone_number'],
                                   birthday=data['client_birthday'],
                                   note=data['client_note'],
                                   from_rlc=rlc)
            client.save()
        try:
            origin = models.OriginCountry.objects.get(
                pk=data['origin_country'])
        except:
            raise CustomError(
                error_codes.ERROR__RECORD__ORIGIN_COUNTRY__NOT_FOUND)
        client.origin_country = origin
        client.save()

        record = models.Record(client_id=client.id,
                               first_contact_date=data['first_contact_date'],
                               last_contact_date=data['first_contact_date'],
                               record_token=data['record_token'],
                               note=data['record_note'],
                               creator_id=request.user.id,
                               from_rlc_id=rlc.id,
                               state="op",
                               official_note=data['official_note'])
        record.save()

        for tag_id in data['tags']:
            record.tagged.add(models.RecordTag.objects.get(pk=tag_id))
        for user_id in data['consultants']:
            record.working_on_record.add(UserProfile.objects.get(pk=user_id))
        record.save()

        for user_id in data['consultants']:
            actual_consultant = UserProfile.objects.get(pk=user_id)
            url = FrontendLinks.get_record_link(record)
            EmailSender.send_email_notification(
                [actual_consultant.email], "New Record",
                "RLC Intranet Notification - Your were assigned as a consultant for a new record. Look here:"
                + url)

        return Response(serializers.RecordFullDetailSerializer(record).data)
Beispiel #2
0
 def create(self, request):
     """outdated"""
     rlc = request.user.rlc
     record = models.Record(
         client_id=request.data['client'],
         first_contact_date=request.data['first_contact_date'],
         last_contact_date=request.data['last_contact_date'],
         record_token=request.data['record_token'],
         note=request.data['note'],
         creator_id=request.user.id,
         from_rlc_id=rlc.id)
     record.save()
     for tag_id in request.data['tagged']:
         record.tagged.add(models.RecordTag.objects.get(pk=tag_id))
     for user_id in request.data['working_on_record']:
         record.working_on_record.add(UserProfile.objects.get(pk=user_id))
     record.save()
     return Response(serializers.RecordFullDetailSerializer(record).data)
Beispiel #3
0
    def create_the_best_record_ever(self, main_user, clients, consultants, rlc):
        tags = list(models.RecordTag.objects.all())
        record = models.Record(from_rlc=rlc, creator=main_user, client=clients[0], record_token='AZ-001/18',
                               official_note='best record ever', state='op')

        record.created_on = AddMethods.generate_date((2018, 1, 3))
        record.first_contact_date = AddMethods.generate_date((2018, 1, 3))
        record.last_edited = AddMethods.generate_datetime((2019, 3, 11, 9, 32, 21, 0))
        record.last_contact_date = AddMethods.generate_datetime((2019, 2, 28, 17, 33, 0, 0))
        record.first_consultation = AddMethods.generate_datetime((2018, 1, 2, 23, 55, 0, 0))
        record.note = 'Mandant moechte dass wir ihn vor Gericht vertreten. Das duerfen wir aber nicht. #RDG'
        record.consultant_team = 'Taskforce 417'
        record.lawyer = 'RA Guenther-Klaus, Kiesweg 3'
        record.related_persons = 'Sozialarbeiter Apfel (Direkt in der Unterkunft)'
        record.contact = 'Mail: [email protected],\n Telefon: 0800 444 55 444'
        record.bamf_token = 'QRS-232/2018'
        record.foreign_token = 'Vor Gericht: FA93932-1320'
        record.first_correspondence = 'Hallo Liebes Team der RLC,\n ich habe folgendes Problem.\nKoennt ihr mir ' \
                                      'helfen?\n Vielen Dank'
        record.circumstances = 'Kam ueber die Balkanroute, Bruder auf dem Weg verloren, wenig Kontakt zu Familie.'
        record.next_steps = 'Klae einreichen und gewinnen!'
        record.status_described = 'Auf Antwort wartend, anschliessend weitere Bearbeitung.'
        record.additional_facts = 'Hat noch nie ne Schweinshaxe gegessen.'

        record.save()
        record.working_on_record.add(consultants[0], main_user)
        record.tagged.add(tags[0], tags[1])
        record.save()

        document1 = models.RecordDocument(name="7_1_19__pass.jpg", creator=main_user, record=record, file_size=123123)
        document1.created_on = AddMethods.generate_date((2019, 1, 7))
        document1.save()
        document1.tagged.add(models.RecordDocumentTag.objects.get(name='Pass'))

        document2 = models.RecordDocument(name="3_10_18__geburtsurkunde.pdf", creator=main_user, record=record,
                                          file_size=488383)
        document2.created_on = AddMethods.generate_date((2018, 10, 3))
        document2.save()
        document2.tagged.add(models.RecordDocumentTag.objects.get(name='Geburtsurkunde'))

        document3 = models.RecordDocument(name="3_12_18__Ablehnungbescheid.pdf", creator=main_user, record=record,
                                          file_size=343433)
        document3.created_on = AddMethods.generate_date((2018, 12, 3))
        document3.save()
        document3.tagged.add(models.RecordDocumentTag.objects.get(name='Bescheid (Ablehnung)'))

        document4 = models.RecordDocument(name="1_1_19__Klageschrift.docx", creator=main_user, record=record,
                                          file_size=444444)
        document4.save()
        document4.created_on = AddMethods.generate_date((2019, 1, 1))

        message = models.RecordMessage(sender=main_user, record=record,
                                       message='Bitte dringend die Kontaktdaten des Mandanten eintragen.')
        message.save()
        message.created_on = AddMethods.generate_datetime((2019, 3, 11, 10, 12, 21, 0))
        message.save()
        message = models.RecordMessage(sender=consultants[0], record=record,
                                       message='Ist erledigt! Koennen wir uns morgen treffen um das zu besprechen?')
        message.save()
        message.created_on = AddMethods.generate_datetime((2019, 3, 12, 9, 32, 21, 0))
        message.save()
        message = models.RecordMessage(sender=main_user, record=record,
                                       message='Klar, einfach direkt in der Mittagspause in der Mensa.')
        message.save()
        message.created_on = AddMethods.generate_datetime((2019, 3, 12, 14, 7, 21, 0))
        message.save()
        message = models.RecordMessage(sender=consultants[0], record=record,
                                       message='Gut, jetzt faellt mir aber auch nichts mehr ein.')
        message.save()
        message.created_on = AddMethods.generate_datetime((2019, 3, 13, 18, 7, 21, 0))
        message.save()
Beispiel #4
0
 def get_and_create_records(self, clients, consultants, rlc):
     tags = list(models.RecordTag.objects.all())
     records = [
         (
             random.choice(consultants),  # creator id
             (2018, 7, 12),  # created
             (2018, 8, 29, 13, 54, 0, 0),  # las edited
             clients[0],  # client
             (2018, 7, 10),  # first contact
             (2018, 8, 14, 17, 30, 0, 0),  # last contact
             'AZ-123/18',  # record token
             'informationen zum asylrecht',
             'cl',  # status, cl wa op
             [consultants[0], consultants[1]],  # working on
             [tags[0], tags[1]]  # tags
         ), (
             random.choice(consultants),
             (2018, 6, 23),
             (2018, 8, 22, 23, 3, 0, 0),
             clients[1],
             (2018, 6, 20),
             (2018, 7, 10, 17, 30, 0, 0),
             'AZ-124/18',
             'nicht abgeschlossen',
             'op',
             [consultants[0], consultants[2]],
             [tags[0], tags[12]]
         ), (
             random.choice(consultants),
             (2018, 8, 24),
             (2018, 8, 31, 1, 2, 0, 0),
             clients[2],
             (2018, 8, 22),
             (2018, 8, 22, 18, 30, 0, 0),
             'AZ-125/18',
             'auf Bescheid wartend',
             'wa',
             [consultants[0], consultants[3]],
             [tags[0], tags[11]]
         ), (
             random.choice(consultants),
             (2018, 3, 10),
             (2018, 4, 30, 19, 22, 0, 0),
             clients[3],
             (2018, 3, 9),
             (2018, 3, 24, 15, 54, 0, 0),
             'AZ-126/18',
             'Frau noch im Herkunftsland, gut recherchiert und ausfuehrlich dokumentiert',
             'cl',
             [consultants[0], consultants[4]],
             [tags[0], tags[10]]
         ), (
             random.choice(consultants),
             (2017, 9, 10),
             (2017, 10, 2, 15, 3, 0, 0),
             clients[4],
             (2017, 9, 10),
             (2017, 10, 2, 15, 3, 0, 0),
             'AZ-127/18',
             'Frau noch im Herkunftsland, gut recherchiert und ausfuehrlich dokumentiert',
             'cl',
             [consultants[0], consultants[5]],
             [tags[1], tags[2]]
         ), (
             random.choice(consultants),
             (2017, 9, 10),
             (2018, 9, 2, 16, 3, 0, 0),
             clients[5],
             (2017, 9, 10),
             (2018, 9, 2, 16, 3, 0, 0),
             'AZ-128/18',
             'Frau noch im Herkunftsland, gut recherchiert und ausfuehrlich dokumentiert',
             'wa',
             [consultants[1], consultants[2]],
             [tags[1], tags[3]]
         ), (
             random.choice(consultants),
             (2017, 9, 10),
             (2018, 1, 12, 16, 3, 0, 0),
             clients[6],
             (2017, 9, 10),
             (2018, 1, 12, 16, 3, 0, 0),
             'AZ-129/18',
             'Frau noch im Herkunftsland, gut recherchiert und ausfuehrlich dokumentiert',
             'op',
             [consultants[1], consultants[3]],
             [tags[2], tags[4]]
         ), (
             random.choice(consultants),
             (2017, 9, 10),
             (2018, 1, 2, 16, 3, 0, 0),
             clients[7],
             (2017, 9, 10),
             (2018, 1, 2, 16, 3, 0, 0),
             'AZ-130/18',
             'Frau noch im Herkunftsland, gut recherchiert und ausfuehrlich dokumentiert',
             'cl',
             [consultants[2], consultants[5]],
             [tags[1], tags[5]]
         ), (
             random.choice(consultants),
             (2017, 9, 10),
             (2018, 12, 2, 16, 3, 0, 0),
             clients[8],
             (2017, 9, 10),
             (2018, 12, 2, 16, 3, 0, 0),
             'AZ-131/18',
             'Frau noch im Herkunftsland, gut recherchiert und ausfuehrlich dokumentiert',
             'wa',
             [consultants[3], consultants[4]],
             [tags[0], tags[7]]
         ), (
             random.choice(consultants),
             (2017, 9, 10),
             (2018, 10, 2, 16, 3, 0, 0),
             clients[9],
             (2017, 9, 10),
             (2018, 10, 2, 16, 3, 0, 0),
             'AZ-132/18',
             'Frau noch im Herkunftsland, gut recherchiert und ausfuehrlich dokumentiert',
             'op',
             [consultants[5], consultants[4]],
             [tags[3], tags[4]]
         )
     ]
     records_in_db = []
     for rec in records:
         # records_in_db.append(self.get_and_create_record(rec, rlc))
         record = models.Record(from_rlc=rlc, creator=rec[0], client=rec[3], record_token=rec[6],
                                official_note=rec[7], state=rec[8])
         record.created_on = AddMethods.generate_date(rec[1])
         record.first_contact_date = AddMethods.generate_date(rec[4])
         record.last_edited = AddMethods.generate_datetime(rec[2])
         record.last_contact_date = AddMethods.generate_datetime(rec[5])
         record.save()
         for user in rec[9]:
             record.working_on_record.add(user)
         for tag in rec[10]:
             record.tagged.add(tag)
         record.save()
         records_in_db.append(record)
     return records_in_db