Beispiel #1
0
    def sync_division_email_group(self, force=False):
        group_address = generate_email_list_address(self)
        group_name = generate_email_list_name(self)

        from ultimate.utils.google_api import GoogleAppsApi
        api = GoogleAppsApi()
        group_id = api.prepare_group_for_sync(
            group_name=group_name,
            group_id=self.division_email_group_id,
            group_email_address=group_address,
            force=force)

        self.division_email = group_address
        self.division_email_group_id = group_id

        success_count = 0

        if Team.objects.filter(league=self).exists():
            for team_member in TeamMember.objects.filter(team__league=self).order_by('user__last_name'):
                success_count += add_to_group(
                    group_email_address=group_address,
                    group_id=group_id,
                    email_address=team_member.user.email)
        else:
            for registration in sorted(self.get_complete_registrations(), key=lambda r: r.user.last_name):
                success_count += add_to_group(
                    group_email_address=group_address,
                    group_id=group_id,
                    email_address=registration.user.email)

        self.save()

        return success_count, group_address
Beispiel #2
0
    def sync_division_captains_email_group(self, force=False):
        group_address = generate_email_list_address(self, suffix='captains')
        group_name = generate_email_list_name(self, suffix='Captains')

        from ultimate.utils.google_api import GoogleAppsApi
        api = GoogleAppsApi()
        group_id = api.prepare_group_for_sync(
            group_name=group_name,
            group_id=self.division_captains_email_group_id,
            group_email_address=group_address,
            force=force)

        self.division_captains_email = group_address
        self.division_captains_email_group_id = group_id

        success_count = 0

        for team_member in TeamMember.objects.filter(team__league=self, captain=True).order_by('user__last_name'):
            success_count += add_to_group(
                group_email_address=group_address,
                group_id=group_id,
                email_address=team_member.user.email)

        self.save()

        return success_count, group_address
Beispiel #3
0
    def sync_email_group(self, force=False):
        group_address = generate_email_list_address(self.league, team=self)
        group_name = generate_email_list_name(self.league, team=self)

        from ultimate.utils.google_api import GoogleAppsApi
        api = GoogleAppsApi()
        group_id = api.prepare_group_for_sync(
            group_name=group_name,
            group_id=self.group_id,
            group_email_address=group_address,
            force=force)

        self.email = group_address
        self.group_id = group_id

        success_count = 0
        for team_member in self.teammember_set.all().order_by('user__last_name', 'user__first_name'):
            success_count += add_to_group(
                group_email_address=group_address,
                group_id=group_id,
                email_address=team_member.user.email)

        self.save()

        return success_count, group_address
Beispiel #4
0
def announcements(request):
    if request.method == 'POST':
        form = AnnoucementsForm(request.POST)
        user_email_address = request.POST.get('email', False)
        group_email_address = getattr(
            settings, 'ANNOUNCEMENTS_GROUP_ADDRESS', False)

        if form.is_valid() and user_email_address and group_email_address:
            success_count = add_to_group(
                group_email_address=group_email_address,
                email_address=user_email_address)

            if success_count:
	            messages.success(
	                request, 'Your email address was added successfully.')
	            return HttpResponseRedirect(reverse('announcements'))
            else:
                messages.error(
                    request, 'Your email address could not be added. It is possible that you are already a member.')

        else:
            messages.error(
                request, 'There was an error on the form you submitted.')
    else:
        form = AnnoucementsForm()

    return render_to_response('index/announcements.html',
                              {
                                  'form': form,
                              },
                              context_instance=RequestContext(request))
Beispiel #5
0
def announcements(request):
    if request.method == 'POST':
        form = AnnoucementsForm(request.POST)
        user_email_address = request.POST.get('email', False)
        group_email_address = getattr(
            settings, 'ANNOUNCEMENTS_GROUP_ADDRESS', False)

        if form.is_valid() and user_email_address and group_email_address:
            success_count = add_to_group(
                group_email_address=group_email_address,
                email_address=user_email_address)

            if success_count:
                messages.success(
                    request, 'Your email address was added successfully.')
                return HttpResponseRedirect(reverse('announcements'))
            else:
                messages.error(
                    request, 'Your email address could not be added. It is possible that you are already a member.')

        else:
            messages.error(
                request, 'There was an error on the form you submitted.')
    else:
        form = AnnoucementsForm()

    return render_to_response('index/announcements.html',
                              {
                                  'form': form,
                              },
                              context_instance=RequestContext(request))
Beispiel #6
0
    def handle(self, *args, **options):
        email_address = options.get('email', None)
        file_path = options.get('file', None)
        team_id = options.get('team', None)
        league_id = options.get('league', None)
        group_address = options.get('group_address', None)
        force = options.get('force', None)

        success_count = 0

        if not group_address and (email_address or file_path):
            self.stdout.write('group address (-l) is required with email (-e) or file (-f)')
            return

        if email_address:
            success_count = add_to_group(group_email_address=group_address, email_address=email_address)

        elif file_path:
            success_count = add_to_group(group_email_address=group_address, file_path=file_path)

        elif team_id:
            from ultimate.leagues.models import Team
            try:
                team = Team.objects.get(id=team_id)
                success_count, group_address = team.sync_email_group(force)
            except Team.DoesNotExist:
                self.stdout.write('bad team id')

        elif league_id:
            from ultimate.leagues.models import League
            try:
                league = League.objects.get(id=league_id)
                success_count = league.sync_email_groups(force)
            except League.DoesNotExist:
                self.stdout.write('bad league id')

        if group_address:
            self.stdout.write('{} email addresses added to {}'.format(success_count, group_address))
        else:
            self.stdout.write('Success! Added {} email addresses.'.format(success_count))
    def handle(self, *args, **options):
        email_address = options.get('email', None)
        file_path = options.get('file', None)
        team_id = options.get('team', None)
        league_id = options.get('league', None)
        group_address = options.get('group_address', None)
        force = options.get('force', None)

        success_count = 0

        if not group_address and (email_address or file_path):
            raise CommandError('group address (-g) is required with email (-e) or file (-f)')

        if email_address:
            self.stdout.write(self.style.MIGRATE_HEADING('Adding email address to group:'))
            self.stdout.write(u'Adding {} to {}...'.format(email_address, group_address))

            success_count = add_to_group(group_email_address=group_address, email_address=email_address)

            if success_count == 1:
                self.stdout.write(self.style.MIGRATE_SUCCESS('DONE'))
                self.stdout.write(u'Added {} to {}...'.format(email_address, group_address))
            else:
                self.stdout.write(self.style.ERROR(' HMMM...'))
                self.stdout.write(self.style.ERROR('No email addresses added...'))

        elif file_path:
            self.stdout.write(self.style.MIGRATE_HEADING('Adding file to group:'))
            self.stdout.write(u'Adding file to {}...'.format(group_address), ending='')

            success_count = add_to_group(group_email_address=group_address, file_path=file_path)

            if success_count > 0:
                self.stdout.write(self.style.MIGRATE_SUCCESS('DONE'))
            else:
                self.stdout.write(self.style.ERROR(' HMMM...'))
                self.stdout.write(self.style.ERROR('No email addresses added...'))

        elif team_id:
            self.stdout.write(self.style.MIGRATE_HEADING('Adding team email addresses to group:'))

            from ultimate.leagues.models import Team
            try:
                team = Team.objects.get(id=team_id)

                self.stdout.write(u'Adding Team {}...'.format(team))

                success_count, group_address = team.sync_email_group(force)
                target_count = team.size

                if success_count == target_count:
                    self.stdout.write(self.style.MIGRATE_SUCCESS('SUCCESS'))
                    self.stdout.write(self.style.MIGRATE_SUCCESS(u'Added {} of {} email addresses to {}'.format(success_count, target_count, group_address)))
                elif success_count > 0:
                    self.stdout.write(self.style.ERROR('HMMM...'))
                    self.stdout.write(self.style.ERROR(u'Added {} of {} email addresses to {}'.format(success_count, target_count, group_address)))
                else:
                    self.stdout.write(self.style.ERROR('HMMM...'))
                    self.stdout.write(self.style.ERROR('No email addresses added...'))

            except Team.DoesNotExist:
                self.stdout.write(self.style.ERROR('No team found with that id'))

        elif league_id:
            self.stdout.write(self.style.MIGRATE_HEADING('Adding division email addresses with group:'))

            from ultimate.leagues.models import League
            try:
                league = League.objects.get(id=league_id)

                self.stdout.write(u'Adding {}...'.format(league))

                all_success_count, group_address, captains_success_count, captains_group_address = \
                    league.sync_email_groups(force)

                all_target_count = league.get_player_count()
                captains_target_count = league.get_captain_count()

                if all_success_count == all_target_count and captains_success_count == captains_target_count:
                    self.stdout.write(self.style.MIGRATE_SUCCESS('SUCCESS'))
                    self.stdout.write(self.style.MIGRATE_SUCCESS(u'Added {} of {} email addresses to {}'.format(all_success_count, all_target_count, group_address)))
                    self.stdout.write(self.style.MIGRATE_SUCCESS(u'Added {} of {} email addresses to {}'.format(captains_success_count, captains_target_count, captains_group_address)))
                elif all_success_count > 0 or captains_success_count > 0:
                    self.stdout.write(self.style.ERROR('HMMM...'))
                    self.stdout.write(self.style.ERROR(u'Added {} of {} email addresses to {}'.format(all_success_count, all_target_count, group_address)))
                    self.stdout.write(self.style.ERROR(u'Added {} of {} email addresses to {}'.format(captains_success_count, captains_target_count, captains_group_address)))
                else:
                    self.stdout.write(self.style.ERROR('HMMM...'))
                    self.stdout.write(self.style.ERROR('No email addresses added...'))

            except League.DoesNotExist:
                self.stdout.write(self.style.ERROR('No league division found with that id'))