Ejemplo n.º 1
0
def temp():
    from people.models import Person
    p = Person(name='wz', age=13)
    p.save()
    p = Person(name='wz', age=23)
    p.save()
    p = Person(name='wangshijie', age=23)
    p.save()
Ejemplo n.º 2
0
    def handle(self, *options, **kwoptions):
        if len(options) != 1:
            raise CommandError('Must provide a file')

        with open(options[0]) as f:
            for line in f:
                line = line.strip()
                # ingore blank lines
                if line == '':
                    continue

                (last_name, first_name, email, username) = line.split(' ')

                password_chars = string.ascii_lowercase + string.digits
                password = ''.join(random.choice(password_chars)
                                   for x in range(6))

                person = Person(first_name = first_name,
                                last_name = last_name,
                                username = username,
                                email = email)
                person.set_password(password)
                person.is_staff = True
                person.is_superuser = True

                mail_text = EMAIL_TEXT % (first_name, username, password)

                send_mail('Welcome to ROSEdu People',
                          mail_text,
                          '*****@*****.**',
                          [email])

                person.save()
                print 'Invited %s %s' % (first_name, last_name)
Ejemplo n.º 3
0
def people_person_create():
    from people.models import Person
    # 第一种 自动保存
    print(Person.objects.create(name='Zhoufeng', age=23))
    print(Person.objects.create(name='Zhoufeng', age=24))
    print(Person.objects.create(name='Zhoufeng', age=25))

    # 第二种
    p = Person(name='WZ', age=13)
    p.save()

    # 第三种
    p = Person(name='TWZ')
    p.age = 23
    p.save()
    """
Ejemplo n.º 4
0
    def test_str(self):

        person = Person(first_name='Name', last_name='last name')

        self.assertEquals(
            str(person),
            'Name last name',
        )
Ejemplo n.º 5
0
 def composerarranger(self):
     """
     Return first of composer or arranger
     """  
     if self.composer:
         return self.composer
     if self.arranger:
         return self.arranger
     return Person()
Ejemplo n.º 6
0
    def test_delete_should_not_hard_delete(self):
        # create - this item exists already
        payload_existing = {**payload, "person": Person(pk=2)}
        instance = PersonWidgetDefinition.objects.create(**payload_existing)

        instance.delete()

        self.assertTrue(isinstance(instance, PersonWidgetDefinition))
        self.assertEqual(instance.group_widget, True)
        self.assertEqual(instance.user_widget, False)
Ejemplo n.º 7
0
    def test_delete_should_hard_delete(self):
        payload_existing = {**payload, "person": Person(pk=2)}
        instance = PersonWidgetDefinition.objects.get(**payload_existing)
        instance.group_widget = False
        instance.save()

        _sum, _ = instance.delete()

        self.assertEqual(_sum, 1)
        with self.assertRaises(PersonWidgetDefinition.DoesNotExist):
            PersonWidgetDefinition.objects.get(**payload_existing)
Ejemplo n.º 8
0
def _link_adjudicator(request, pOriginalAdjudicatorName, pContestEvent):
    """
    Link the passed adjudicator to the contest
    """
    lAdjudicatorName = pOriginalAdjudicatorName

    if lAdjudicatorName.lower() == 'unknown':
        return

    # if it ends with a dot, remove it
    if lAdjudicatorName.endswith('.'):
        lAdjudicatorName = lAdjudicatorName[:-1]
    # if there is no space after a full stop then add one
    lAdjudicatorName = add_space_after_dot(lAdjudicatorName)
    # if there is no dot after an initial then add one
    lAdjudicatorName = add_dot_after_initial(lAdjudicatorName)
    # get rid of double spaces
    lAdjudicatorName = lAdjudicatorName.replace("  ", " ")

    lLastSpace = lAdjudicatorName.rfind(' ')
    if lLastSpace > 0:
        lAdjudicatorFirstNames = lAdjudicatorName[:lLastSpace].strip()
        lAdjudicatorSurname = lAdjudicatorName[lLastSpace:].strip()
    else:
        lAdjudicatorFirstNames = lAdjudicatorName
        lAdjudicatorSurname = lAdjudicatorName

    try:
        lPerson = Person.objects.filter(
            first_names__iexact=lAdjudicatorFirstNames,
            surname__iexact=lAdjudicatorSurname)[0]
    except IndexError:
        try:
            lPersonAlias = PersonAlias.objects.filter(
                name__iexact=lAdjudicatorName)[0]
            lPerson = lPersonAlias.person
        except IndexError:
            lPerson = Person()
            lPerson.surname = lAdjudicatorSurname
            lPerson.first_names = lAdjudicatorFirstNames
            lPerson.slug = slugify(lAdjudicatorName, instance=lPerson)
            lPerson.owner = request.user
            lPerson.lastChangedBy = request.user
            lPerson.save()
            notification(None, lPerson, 'people', 'person', 'new',
                         request.user, browser_details(request))

    lContestAdjudicator = ContestAdjudicator()
    lContestAdjudicator.contest_event = pContestEvent
    lContestAdjudicator.adjudicator_name = lPerson.name
    lContestAdjudicator.person = lPerson
    lContestAdjudicator.owner = request.user
    lContestAdjudicator.lastChangedBy = request.user
    lContestAdjudicator.save()
Ejemplo n.º 9
0
def create(request):
    """Render a form to create an entrepreneur."""

    if request.method == "POST":

        user_form = UserForm(request.POST)
        startup_form = StartupForm(request.POST, request.FILES)

        if user_form.is_valid() and startup_form.is_valid():
            user = user_form.save()
            startup = startup_form.save()

            person = Person()
            entrepreneur = Entrepreneur()

            person.user = user
            person.save()

            entrepreneur.person = person
            entrepreneur.startup = startup
            entrepreneur.save()

            msg = _("Your user and startup has been created successfully.")

            return render_to_response("entrepreneurs/create.html", {
                "msg": msg,
                "user": user,
            },
                                      context_instance=RequestContext(request))

        else:
            return render_to_response("entrepreneurs/create.html", {
                "user_form": user_form,
                "startup_form": startup_form,
            },
                                      context_instance=RequestContext(request))

    else:
        return render_to_response("entrepreneurs/create.html", {
            "user_form": UserForm(),
            "startup_form": StartupForm(),
        },
                                  context_instance=RequestContext(request))
Ejemplo n.º 10
0
    def activate(self, request, activation_key):
        """
        Given an an activation key, look up and activate the user
        account corresponding to that key (if possible).

        After successful activation, the signal
        ``registration.signals.user_activated`` will be sent, with the
        newly activated ``User`` as the keyword argument ``user`` and
        the class of this backend as the sender.
        
        """
        activated = RegistrationProfile.objects.activate_user(activation_key)
        if activated:
            signals.user_activated.send(sender=self.__class__,
                                        user=activated,
                                        request=request)
            person = Person(user=activated)
            activated.save()
            person.save()
        return activated
Ejemplo n.º 11
0
def create(request):
    """Render a form to create a mentor."""

    if request.method == "POST":

        user_form = UserForm(request.POST)
        mentor_form = MentorForm(request.POST)

        if user_form.is_valid() and mentor_form.is_valid():
            user = user_form.save()

            person = Person()
            mentor = mentor_form.save(commit=False)

            person.user = user
            person.save()

            mentor.person = person
            mentor.save()

            msg = _("Your user has been created successfully.")

            return render_to_response("mentors/create.html", {
                "msg": msg,
                "user": user,
            },
                                      context_instance=RequestContext(request))
        else:
            return render_to_response("mentors/create.html", {
                "user_form": user_form,
                "mentor_form": mentor_form,
            },
                                      context_instance=RequestContext(request))

    else:
        return render_to_response("mentors/create.html", {
            "user_form": UserForm(),
            "mentor_form": MentorForm(),
        },
                                  context_instance=RequestContext(request))
Ejemplo n.º 12
0
def new_person(request):
    required_method_type = "POST"
    if not check_method_type(request, required_method_type):
        return invalid_method(required_method_type)

    try:
        parsed_body = json.loads(request.body.decode('utf-8'))
    except:
        return error('no body')

    for field in Person.required_fields:
        if field not in parsed_body:
            return error('mising fields')

    if 'api_key' in parsed_body:
        admin = check_api_key(parsed_body['api_key'])
    else:
        admin = False
    if not admin:
        return error('Admin only action')

    parsed_body['hashed_password'] = bcrypt.hashpw(
        parsed_body['password'].encode('utf-8'), bcrypt.gensalt())
    try:
        del parsed_body['password']
        del parsed_body['api_key']
    except KeyError:
        return error('cant delete')

    person = Person(**parsed_body)
    try:
        person.save()
    except:
        print('ERROR: Can\'t create person.')
        print(sys.exc_info())
        return error('Can\'t create person.')

    return JsonResponse(Person.admin_view(person))
Ejemplo n.º 13
0
    def deal_excel(self):
        upload_file = UploadRecord.objects.filter(upload_time=self.timestamp).first()
        file_path = upload_file.excel_file.path
        book = xlrd.open_workbook(file_path)
        for sheet in book.sheets():
            for row in sheet.get_rows():
                try:
                    p_name = row[0].value
                    p_num = row[1].value

                    if p_name == '':
                        break
                    if not str(p_num).isalnum():
                        break
                    birthday_str = p_num[6:14]
                    birthday = datetime.strptime(birthday_str, "%Y%m%d")

                    if int(p_num[16]) % 2 == 0:
                        sex = False
                    else:
                        sex = True

                except Exception as e:
                    logger.error(e)
                    upload_file.status = '解析出错误,请确认表格格式。'
                    upload_file.save()
                else:
                    Person(
                        name=p_name,
                        id_num=p_num,
                        birthday=birthday,
                        sex=sex,
                        create_time=self.timestamp
                    ).save()
        upload_file.status = '解析成功'
        upload_file.save()
Ejemplo n.º 14
0
def execute_upoad(file, user_id, block_id):
    global ERROR

    user_id = CocoUser.objects.get(user__id=user_id)
    block_id = Block.objects.get(id=block_id)

    file_name = str(os.path.splitext(file)[0])
    file_name_list = str(os.path.splitext(file)[0].split('/')[-1])

    village_errors_file = open(file_name + '_errors_village.csv', 'wb')
    wrtr = csv.writer(village_errors_file, delimiter=',', quotechar='"')
    wrtr.writerow(["Entry No.", "Village Name", "Error"])

    village_success_file = open(file_name + '_success_village.csv', 'wb')
    wrtr_success = csv.writer(village_success_file, delimiter=',', quotechar='"')
    wrtr_success.writerow(["Entry No.", "Village Name"])

    csvfile = open(file, 'rb')
    rows_villages = csv.DictReader(csvfile)

    village_querry_set = Village.objects.values_list('village_name','id').filter(block_id=block_id.id)
    village_map = dict(village_querry_set)
    i = 0
    for row in rows_villages:
        if unicode(row['Village_Name']) not in village_map:
            i = i + 1
            try:
                village = Village(user_created_id=user_id.id, 
                                  village_name=unicode(row['Village_Name']),
                                  block_id=block_id.id)
                village.save()
                village_map[unicode(row['Village_Name'])] = village.id
                wrtr_success.writerow([i, unicode(row['Village_Name'])])
                village_success_file.flush()

            except Exception as e:
                ERROR += 1
                wrtr.writerow([i, unicode(row['Village_Name']), e])
                village_errors_file.flush()

    village_success_file.close()
    village_errors_file.close()

    ERROR_FILENAMES.append(file_name_list + '_errors_village.csv')
    SUCCESS_FILENAMES.append(file_name_list + '_success_village.csv')

    group_errors_file = open(file_name + '_errors_group.csv', 'wb')
    wrtr = csv.writer(group_errors_file, delimiter=',', quotechar='"')
    wrtr.writerow(["Entry No.", "Shg Name", "Error"])

    group_success_file = open(file_name + '_success_group.csv', 'wb')
    wrtr_success = csv.writer(group_success_file, delimiter=',', quotechar='"')
    wrtr_success.writerow(["Entry No.", "Shg Name"])

    csvfile = open(file, 'rb')
    rows_groups = csv.DictReader(csvfile)

    group_querry_set = PersonGroup.objects.values_list('group_name', 'id')
    group_map = dict(group_querry_set)

    i = 0
    for row in rows_groups:
        if unicode(row['Shg_Name']) + unicode(row['Village_Name']) not in group_map:
            i = i + 1
            try:
                group = PersonGroup(user_created_id=user_id.id,
                                    partner_id=user_id.partner.id,
                                    group_name=row['Shg_Name'],
                                    village_id=village_map[unicode(row['Village_Name'])])
                group.save()
                group_map[row['Shg_Name'] + unicode(row['Village_Name'])] = group.id
                wrtr_success.writerow([i, row['Shg_Name']])
                group_success_file.flush()
            except Exception as e:
                ERROR += 1
                wrtr.writerow([i, row['Shg_Name'], e] )
            group_errors_file.flush()

    group_errors_file.close()
    group_success_file.close()

    ERROR_FILENAMES.append(file_name_list + '_errors_group.csv')
    SUCCESS_FILENAMES.append(file_name_list + '_success_group.csv')

    person_errors_file = open(file_name + '_errors_person.csv', 'wb')
    wrtr = csv.writer(person_errors_file, delimiter=',', quotechar='"')
    wrtr.writerow(["Entry No.", "Person Name", "Error"])

    person_success_file = open(file_name + '_success_person.csv', 'wb')
    wrtr_success = csv.writer(person_success_file, delimiter=',', quotechar='"')
    wrtr_success.writerow(["Entry No.", "Person Name"])

    csvfile = open(file, 'rb')
    rows_persons = csv.DictReader(csvfile)

    i = 0
    for row in rows_persons:
        i = i + 1
        try:
            person_name = ' '.join([unicode(row['Member_Name']), unicode(row['Member_Surname'])])
            father_name = ' '.join([unicode(row['Husband_Father_Name']),
                                    unicode(row['Husband_Father_Surname'])])
            gender = str(row['Gender(M/F)'])
            if (row['Age'] == ''):
                age = None
            else:
                age = float(row['Age'])
   
            if (str(row['Phone_Number']) == ''):
                phone_number = str('')
            else:
                phone_number = str(row['Phone_Number'])
            
            person = Person(user_created_id=user_id.id,
                            partner_id=user_id.partner.id,
                            person_name=person_name,
                            father_name=father_name,
                            village_id=village_map[unicode(row['Village_Name'])],
                            group_id=group_map[row['Shg_Name'] + unicode(row['Village_Name'])],
                            gender=gender,
                            age = age,
                            phone_no = phone_number
                            )
            person.save()
            wrtr_success.writerow([i, person_name])
            person_success_file.flush()
        except Exception as e:
            ERROR += 1
            wrtr.writerow([i, person_name, e])
        person_errors_file.flush()

    person_errors_file.close()
    person_success_file.close()
    ERROR_FILENAMES.append(file_name_list + '_errors_person.csv')
    SUCCESS_FILENAMES.append(file_name_list + '_success_person.csv')
Ejemplo n.º 15
0
def enter_results(request, pContestSlug, pDate):
    """
    Enter the actual results of the contest
    """
    lForm = ResultsForm()
    lHowToCorrectErrors = ''
    try:
        lContest = Contest.objects.filter(slug=pContestSlug)[0]
        lContestEvent = ContestEvent.objects.filter(contest=lContest,
                                                    date_of_event=pDate)[0]
    except IndexError:
        raise Http404()

    # if flag is set, forward to adjudicator and don't allow results to be added
    lToday = date.today()
    if lToday < lContestEvent.date_of_event and lContest.prevent_future_bands:
        return HttpResponseRedirect('/addresults/%s/%s/6/' %
                                    (pContestSlug, pDate))

    if request.POST:
        try:
            lRadioSelection = request.POST['conductor_choice']
            if lRadioSelection == 'newconductor':
                lNewConductorPerson = Person()
                lNewConductorPerson.name = request.POST['conductor']
                lNewConductorPerson.slug = slugify(
                    lNewConductorPerson.name, instance=lNewConductorPerson)
                lNewConductorPerson.lastChangedBy = request.user
                lNewConductorPerson.owner = request.user
                lNewConductorPerson.save()
                notification(None, lNewConductorPerson, 'people', 'person',
                             'new', request.user, browser_details(request))

            elif lRadioSelection == 'alias':
                lPreviousConductorName = request.POST['conductoralias']
                lConductorSerial = request.POST['conductorid']

                lConductor = Person.objects.filter(id=int(lConductorSerial))[0]
                lPreviousName = PersonAlias()
                lPreviousName.name = lPreviousConductorName
                lPreviousName.person = lConductor
                lPreviousName.lastChangedBy = request.user
                lPreviousName.owner = request.user
                lPreviousName.save()
                notification(None, lPreviousName, 'people', 'person_alias',
                             'new', request.user, browser_details(request))

                ## TODO create person alias here - we'll need to pass through the person id, not the conductor id

        except MultiValueDictKeyError:
            pass

        try:
            lRadioSelection = request.POST['band']
            if lRadioSelection == 'newband':
                # create a new band
                lNewBandName = request.POST['newbandname']
                lNewBandRegion = request.POST['newbandregion']
                lNewBand = Band()
                lNewBand.name = lNewBandName
                lNewBand.slug = slugify(lNewBandName, instance=lNewBand)
                lNewBand.region = Region.objects.filter(id=lNewBandRegion)[0]
                lNewBand.owner = request.user
                lNewBand.lastChangedBy = request.user
                lNewBand.save()
                notification(None, lNewBand, 'bands', 'band', 'new',
                             request.user, browser_details(request))
            elif lRadioSelection == 'nameonly':
                lPreviousBandName = request.POST['oldbandname']
                lBandSerial = request.POST['bandid']
                lBand = Band.objects.filter(id=int(lBandSerial))[0]
                lPreviousName = PreviousBandName()
                lPreviousName.old_name = lPreviousBandName
                lPreviousName.band = lBand
                lPreviousName.lastChangedBy = request.user
                lPreviousName.owner = request.user
                lPreviousName.save()
                notification(None, lPreviousName, 'bands', 'band_alias', 'new',
                             request.user, browser_details(request))
        except MultiValueDictKeyError:
            pass

        lForm = ResultsForm(request.POST)
        lForm.event = lContestEvent
        if lForm.is_valid():
            lForm.save(request, lContestEvent)
            return HttpResponseRedirect('/addresults/%s/%s/6/' %
                                        (pContestSlug, pDate))
        else:
            lFormErrors = str(lForm.errors['results'])
            if lFormErrors.startswith(_CONDUCTOR_PREFIX):
                lConductorName = lFormErrors[len(_CONDUCTOR_PREFIX):-15]
                lConductorDropList = '<select name="conductorid">\n'
                lConductors = Person.objects.all()
                for conductor in lConductors:
                    lAdd = True
                    if conductor.end_date and lContestEvent.date_of_event > conductor.end_date:
                        lAdd = False
                    elif conductor.start_date and lContestEvent.date_of_event < conductor.start_date:
                        lAdd = False
                    if lAdd:
                        lConductorDropList = lConductorDropList + '<option value="%s">%s, %s</option>\n' % (
                            conductor.id, conductor.surname,
                            conductor.first_names)
                lConductorDropList = lConductorDropList + '</select>'

                lHowToCorrectErrors = """<input type="radio" name="conductor_choice" value="newconductor"/>Next submit will create a new conductor called: <input type="text" name="conductor" value="%s"/><br/>
                                         <input type="radio" name="conductor_choice" value="alias"/>Next submit will add a conductor alias of <b>%s</b> to %s<input type="hidden" name="conductoralias" value="%s"/><br/>
                                         <input type="radio" name="conductor_choice" value="nothing" checked="checked"/>Do nothing, correct it in the text box below.""" % (
                    lConductorName, lConductorName, lConductorDropList,
                    lConductorName)
            if lFormErrors.startswith(_BAND_PREFIX):
                lBandName = lFormErrors[len(_BAND_PREFIX):-15]
                #lBandName = lFormErrors[len(_BAND_PREFIX):-15]
                lBandDropList = '<select name="bandid">\n'
                lBands = Band.objects.all()
                for band in lBands:
                    lAdd = True
                    if band.end_date and lContestEvent.date_of_event > band.end_date:
                        lAdd = False
                    elif band.start_date and lContestEvent.date_of_event < band.start_date:
                        lAdd = False
                    if lAdd:
                        lBandDropList = lBandDropList + '<option value="%s">%s</option>\n' % (
                            band.id, band.name)
                lBandDropList = lBandDropList + '</select>'
                lRegionDropList = ""
                lContestRegion = "Unknown"
                if lContest.region:
                    lContestRegion = lContest.region.name
                for region in Region.objects.all():
                    lRegionDropList += "<option value='" + str(region.id) + "'"
                    if region.name == lContestRegion:
                        lRegionDropList += " selected='selected'"
                    lRegionDropList += ">" + region.name + "</option>\n"
                lHowToCorrectErrors = """You have two choices to fix this problem.  You can either create a new band, or assign this name as an old name of an already existing band.  Use existing bands where possible.<br/>
                                         <input type="radio" name="band" value="newband"/>Next submit will create a new band called: <input type="text" name="newbandname" value="%s"/> in <select name="newbandregion">%s</select> region<br/>
                                         <input type="radio" name="band" value="nameonly"/>Next submit will add a previous band name to %s called <b>%s</b><input type="hidden" name="oldbandname" value="%s"/><br/>
                                         <input type="radio" name="band" value="nothing" checked="checked"/>Do nothing, correct it in the text box below.
                                         """ % (lBandName, lRegionDropList,
                                                lBandDropList, lBandName,
                                                lBandName)

    return render_auth(
        request, 'addresults/bands.html', {
            "Contest": lContest,
            "ContestEvent": lContestEvent,
            "form": lForm,
            "HowToCorrectErrors": lHowToCorrectErrors,
        })
Ejemplo n.º 16
0
def enter_composer(request, pContestSlug, pDate):
    """
    Enter composer for test piece, only shown if we don't match an existing piece
    """
    try:
        lContest = Contest.objects.filter(slug=pContestSlug)[0]
        lContestEvent = ContestEvent.objects.filter(contest=lContest,
                                                    date_of_event=pDate)[0]
    except IndexError:
        raise Http404()

    if request.POST:
        lComposerName = add_space_after_dot(request.POST['Composer'])
        lLastSpace = lComposerName.rfind(' ')
        if lLastSpace > 0:
            lComposerFirstNames = lComposerName[:lLastSpace].strip()
            lComposerSurname = lComposerName[lLastSpace:].strip()
        else:
            lComposerSurname = lComposerName
            lComposerFirstNames = ''

        lArrangerName = add_space_after_dot(request.POST['Arranger'])
        lArrangerFirstNames = ''
        lArrangerSurname = ''
        if len(lArrangerName.strip()) > 0:
            lLastSpace = lArrangerName.rfind(' ')
            if lLastSpace > 0:
                lArrangerFirstNames = lArrangerName[:lLastSpace].strip()
                lArrangerSurname = lArrangerName[lLastSpace:].strip()
            else:
                lArrangerSurname = lArrangerName

        lArrangerPerson = None
        lComposerPerson = None

        lTestPiece = lContestEvent.test_piece
        if len(lComposerName.strip()) > 0:
            try:
                lComposerPerson = Person.objects.filter(
                    surname__iexact=lComposerSurname,
                    first_names__iexact=lComposerFirstNames)[0]
            except IndexError:
                try:
                    lPersonAlias = PersonAlias.objects.filter(
                        name__iexact=lComposerName)[0]
                    lArrangerPerson = lPersonAlias.person
                except IndexError:
                    lPerson = Person()
                    lPerson.surname = lComposerSurname
                    lPerson.first_names = lComposerFirstNames
                    lPerson.slug = slugify(lComposerName, instance=lPerson)
                    lPerson.owner = request.user
                    lPerson.lastChangedBy = request.user
                    lPerson.save()
                    lArrangerPerson = lPerson
                    notification(None, lPerson, 'people', 'person', 'new',
                                 request.user, browser_details(request))

        if len(lArrangerName.strip()) > 0:
            try:
                lArrangerPerson = Person.objects.filter(
                    surname__iexact=lArrangerSurname,
                    first_names__iexact=lArrangerFirstNames)[0]
            except IndexError:
                try:
                    lPersonAlias = PersonAlias.objects.filter(
                        name__iexact=lArrangerName)[0]
                    lArrangerPerson = lPersonAlias.person
                except IndexError:
                    lPerson = Person()
                    lPerson.surname = lArrangerSurname
                    lPerson.first_names = lArrangerFirstNames
                    lPerson.slug = slugify(lArrangerName, instance=lPerson)
                    lPerson.owner = request.user
                    lPerson.lastChangedBy = request.user
                    lPerson.save()
                    lArrangerPerson = lPerson
                    notification(None, lPerson, 'people', 'person', 'new',
                                 request.user, browser_details(request))

        lTestPiece.arranger = lArrangerPerson
        lTestPiece.composer = lComposerPerson
        lTestPiece.save()
        return HttpResponseRedirect('/addresults/%s/%s/4/' %
                                    (pContestSlug, pDate))
    else:
        if lContestEvent.test_piece == None or lContestEvent.test_piece.composer or lContestEvent.test_piece.arranger:
            return HttpResponseRedirect('/addresults/%s/%s/4/' %
                                        (pContestSlug, pDate))
        else:
            cursor = connection.cursor()
            lComposerNames = []
            cursor.execute(
                "select first_names || ' ' || surname || ' ' || coalesce (suffix, '') from people_person order by 1"
            )
            rows = cursor.fetchall()
            for row in rows:
                lComposerNames.append(row[0].strip())
            cursor.close()

            return render_auth(
                request, 'addresults/composer.html', {
                    "Contest": lContest,
                    "ContestEvent": lContestEvent,
                    "Data": lComposerNames,
                })
Ejemplo n.º 17
0
 def create(self, validated_data):
     new = Person(**validated_data)
     new.save()
     return new
Ejemplo n.º 18
0
    dates = production['dates']
    for d in dates:
        start_date, end_date = d[0]
        place = d[1]
        location = theatres[place]
        log('  %s %s   %s' % (start_date, end_date, location))
        if not dry_run():
            ProductionPlace.objects.get_or_create(production=production_obj, place=location, start_date=start_date, end_date=end_date)

    cast = production['cast']
    for name in cast:
        m = re.match('(.*) (.*?)$', name)
        if m:
            first_name, last_name = m.group(1), m.group(2)
        else:
            first_name, last_name = u'', name

        log('  Actor: ' + first_name + ' ' + last_name)
        if not dry_run():
            try:
                person, created = Person.objects.get_or_create(first_name=first_name, last_name=last_name)
            except:
                person = Person(first_name=first_name, last_name=last_name)
                person.save()
            Part.objects.get_or_create(production=production_obj, person=person, cast=True)
            if name in castLinks:
                person.web = castLinks[name]
                person.save()

Ejemplo n.º 19
0
def testdb(request):
    test1 = Person(name='runoob')
    test1.save()
    return HttpResponse("<p>数据添加成功!</p>")
Ejemplo n.º 20
0
 def person_instance(self):
     return Person(name="test person", linkedin_url="https://www.linkedin.com/in/testperson")
Ejemplo n.º 21
0
    'name': 'test stack 3',
    'description': 'test description 3'
}

create_stack_payload4 = {
    'name': 'test stack 4',
    'description': 'test description 4'
}

create_stack_payload5 = {
    'name': 'test stack 5',
    'description': 'test description 5'
}

payload = {
    "person": Person(pk=2),
    "widget_definition": WidgetDefinition(pk=1),
}

payload = {
    "person": Person(pk=2),
    "widget_definition": WidgetDefinition(pk=16),
}


class PersonModelTests(TestCase):
    fixtures = ['resources/fixtures/default_data.json', ]

    def setUp(self):
        # create user - done by fixture for now
        self.admin_user = Person.objects.get(pk=1)
Ejemplo n.º 22
0
    def handle(self, *args, **options):
        cursor = connection.cursor()

        if connection.vendor == 'mysql':
            cursor.execute('SET FOREIGN_KEY_CHECKS = 0')
            cursor.execute('TRUNCATE TABLE `{0}`'.format(
                Company._meta.db_table))
            cursor.execute('TRUNCATE TABLE `{0}`'.format(
                County._meta.db_table))
            cursor.execute('TRUNCATE TABLE `{0}`'.format(City._meta.db_table))
            cursor.execute('TRUNCATE TABLE `{0}`'.format(State._meta.db_table))
            cursor.execute('TRUNCATE TABLE `{0}`'.format(
                Address._meta.db_table))
            cursor.execute('TRUNCATE TABLE `{0}`'.format(
                Person._meta.db_table))
            cursor.execute('SET FOREIGN_KEY_CHECKS = 1')
        else:
            Company.objects.all().delete()
            State.objects.all().delete()
            County.objects.all().delete()
            City.objects.all().delete()
            Address.objects.all().delete()
            Person.objects.all().delete()

        with open(options.get('csv-file-path'), 'rU') as f:
            FIRST_NAME_INDEX = 0
            LAST_NAME_INDEX = 1
            COMPANY_INDEX = 2
            ADDRESS_INDEX = 3
            CITY_INDEX = 4
            COUNTY_INDEX = 5
            STATE_INDEX = 6
            ZIP_INDEX = 7
            PHONE_INDEX = 8
            EMAIL_INDEX = 10
            WEB_INDEX = 11

            data = csv.reader(f)

            # IMPORT:
            # companies, states

            companies = {}
            states = {}

            f.readline()

            for row in data:
                if companies.get(row[COMPANY_INDEX]) is None:
                    companies[row[COMPANY_INDEX]] = Company(
                        name=row[COMPANY_INDEX])

                if states.get(row[STATE_INDEX]) is None:
                    states[row[STATE_INDEX]] = State(name=row[STATE_INDEX])

            Company.objects.bulk_create(companies.values())
            State.objects.bulk_create(states.values())

            companies = dict(map(lambda v: (v.name, v), Company.objects.all()))
            states = dict(map(lambda v: (v.name, v), State.objects.all()))

            # IMPORT:
            # counties

            counties = {}

            f.seek(0)
            f.readline()

            for row in data:
                if counties.get(row[COUNTY_INDEX]) is None:
                    counties[row[COUNTY_INDEX]] = County(
                        name=row[COUNTY_INDEX], state=states[row[STATE_INDEX]])

            County.objects.bulk_create(counties.values())

            counties = dict(map(lambda v: (v.name, v), County.objects.all()))

            # IMPORT:
            # cities

            cities = {}

            f.seek(0)
            f.readline()

            for row in data:
                if cities.get(row[CITY_INDEX]) is None:
                    cities[row[CITY_INDEX]] = City(
                        name=row[CITY_INDEX],
                        state=states[row[STATE_INDEX]],
                        county=counties[row[COUNTY_INDEX]])

            City.objects.bulk_create(cities.values())

            cities = dict(map(lambda v: (v.name, v), City.objects.all()))

            # IMPORT:
            # addresses

            addresses = {}

            f.seek(0)
            f.readline()

            for row in data:
                if addresses.get(row[ADDRESS_INDEX]) is None:
                    addresses[row[ADDRESS_INDEX]] = Address(
                        name=row[ADDRESS_INDEX],
                        city=cities[row[CITY_INDEX]],
                        zip=row[ZIP_INDEX])

            Address.objects.bulk_create(addresses.values())

            addresses = dict(map(lambda v: (v.name, v), Address.objects.all()))

            # IMPORT:
            # persons

            persons = []

            f.seek(0)
            f.readline()

            for row in data:
                persons.append(
                    Person(first_name=row[FIRST_NAME_INDEX],
                           last_name=row[LAST_NAME_INDEX],
                           address=addresses[row[ADDRESS_INDEX]],
                           company=companies[row[COMPANY_INDEX]],
                           phone=row[PHONE_INDEX],
                           email=row[EMAIL_INDEX],
                           web=row[WEB_INDEX]))

            Person.objects.bulk_create(persons)

            print '%d persons have been imported' % len(persons)
Ejemplo n.º 23
0
def testdb(request):
    person = Person(name='runoob', age=13)
    person.save()
    return HttpResponse("<p>数据添加成功!</p>")