Beispiel #1
0
class TeamForm(forms.ModelForm):
    class Meta:
        model = Team
        fields = ["name", "description"]

    def __init__(self, user, *args, **kwargs):
        self.user = user
        super().__init__(*args, **kwargs)
        self.load_snake_data()

    def clean(self):
        cleaned_data = super().clean()
        return cleaned_data

    def load_snake_data(self):
        if self.instance and self.instance.snake_id:
            self.snake = self.instance.snake
            self.initial["snake_url"] = self.instance.snake.url
        else:
            self.snake = Snake()

    def save(self, *args, **kwargs):
        self.snake.name = self.cleaned_data["name"]
        self.snake.save()

        team = super().save(commit=False)
        team.snake = self.snake
        team.save()

        TeamMember.objects.get_or_create(user=self.user, team=team)
        return team
Beispiel #2
0
 def basic(self, n=1, commit=False, user=None):
     if n > 1:
         return [self.basic(commit=commit, user=user) for _ in range(n)]
     snake = Snake(name="test", url="http://foo.bar")
     if user:
         UserSnake.objects.create(user=user, snake=snake)
     if commit:
         snake.save()
     return snake
Beispiel #3
0
class TeamForm(forms.ModelForm):
    snake_url = forms.CharField(
        max_length=255,
        label='URL',
        help_text=
        'Be sure to add a <strong>valid</strong> Snake URL here before \
                    the tournament starts, otherwise you may not be able to compete!',
        required=False,
        widget=forms.URLInput())

    class Meta:
        model = Team
        fields = ['name', 'description']

    def __init__(self, user, *args, **kwargs):
        self.user = user
        super().__init__(*args, **kwargs)
        self.load_snake_data()

    def clean(self):
        cleaned_data = super().clean()

        if cleaned_data.get('snake_url') and not is_valid_url(
                cleaned_data.get('snake_url')):
            raise ValidationError('Snake requires a valid URL')

        return cleaned_data

    def load_snake_data(self):
        if self.instance and self.instance.snake_id:
            self.snake = self.instance.snake
            self.initial['snake_url'] = self.instance.snake.url
        else:
            self.snake = Snake()

    def save(self, *args, **kwargs):
        self.snake.url = self.cleaned_data['snake_url']
        self.snake.name = self.cleaned_data['name']
        self.snake.save()

        team = super().save(commit=False)
        team.snake = self.snake
        team.save()

        TeamMember.objects.get_or_create(
            user=self.user,
            team=team,
        )
        return team
Beispiel #4
0
 def load_snake_data(self):
     if self.instance and self.instance.snake_id:
         self.snake = self.instance.snake
         self.initial['snake_url'] = self.instance.snake.url
     else:
         self.snake = Snake()