Josiah Kaviani
Josiah Kaviani
```python class A1(Story): I.a1s1 I.a1s2 class A2(A1): # error pass ```
As mentioned in #432 the `Atomic` context manager isn't that straightforward to use with stories. https://github.com/django/django/blob/948a874425e7d999950a8fa3b6598d9e34a4b861/django/db/transaction.py#L168-L194 As you can see the class has the `__exit__` method which is used both...
* Wrap story in a task * Submit the task from a story * Use the same task synchronously in the same story * Decision, if the task should be...
```python def a1s1(self, state): self.send_message() # good ``` ```python def a1s1(self, state): send_message() # bad ``` We should not know if it will be an asterisk client or twilio api...
* Create, update, destroy actions are stories always. * List and retrieve if we need to check a very complex set of permissions * Get queryset method does not contain...
```python def a1s1(self, state): if self.user.last_login > timezone.now() - timedelta(days=30): # bad ... ``` ```python def a1s1(self, state): if self.user.is_active(): # good ... ``` We should not couple shape of...
We need a few terms to document. * inner stories - replace substory and nested terms with it. * outer stories - replace parent and wrapping terms with it.