🐍 Python CRUD OOP todo list...
Tags: python, beginners, oop
Published: 2020-10-18 19:32:28

The most common and basic way to start learning a new programing language is creating a simple application, in this case Todo List
Any developer can build one, different ways-methods to create an efficient way to keep your task on the line.

Let's use `Python` to accomplish it.

> Todo list es el mas comun y basico procedimiento para aprender a programar. Crearemos un todo list usando OOP.

- Let's build a Todo class and the way, where to contain each todo.

```python
class Todo:
  todos = []
```
- Let's build a method to add a todo into the list

# add todo in the list
```python
  def add_todo(self, todo):
    self.todos.append(todo)
```
- Let's delete when the user inputs the number of the list `index`

> Ahora implementaremos como borrar y poner un check en cada tarea de la lista. Primero, como borrar un todo usando us index o el nombre.

```python
def delete_todo_by_index(self, index):
   print('List is empty') if len(self.todos) == 0 else self.todos.remove(self.todos[index])
```
What is the user inputs to delete by the todo name.

```python
# list is empty else remove todo
  def delete_todo(self, todo):
     print('List is empty') if self.todos == [] else self.todos.remove(todo)
```
Great! We know how to delete by name and index each todo, now let's not delete it but check it when is completed.

> Ahora vamos a poner un check por cada todo. El boolean es la accion del usuario en chequear o no el todo.

```python
# iterate in list and check for todo then check if todo is correct
  def checked_todo(self, isChecked, todoCheck):
    for todo in self.todos:
      if todoCheck == todo: isChecked = True
      print('(x)', todoCheck) if isChecked is True else print('( )', todoCheck) 
      break # this line will stop the iteration as soon the todo is checked, else will iterate the whole list even if the todo is at the beginning.. 
```
> `The boolean YES || NOT toggles depending on the user input...`

Let's display all todos...

```python
# interate in todos list and return each todo
  def displayTodos(self):
     todo = [print(todo) for todo in self.todos ]
     return todo
```
Let's display the todos in the console window, `first & last` todo.

```python
# given position desired on list
  def get_first_or_last_todo(self, position):
     if self.todos == []: print('List is empty')
     if position == 'first':
       return self.todos[0]  
     elif position == 'last':
       return self.todos[-1]
     else:
       return self.todos
```
Great! Now to complete the CRUD on this todo list, we are going to implement how to update a todo.

```python
# iterate in list and check for todo then update
  def update_todo(self, old_todo, new_todo):
     for i in self.todos:
       if i == old_todo: old_todo = new_todo
       else: print('Todo is not in the list')
```
> Bien, ahora para completar esta lista tenemos que actualizar cada todo.

This is great..! We have a CRUD todo list. There is many ways to create todo list using any programming language.
Maybe this is not as good it should be but to give an idea on how to implement a basic todo list.

If you like or hate the post, I will appreciate any constructive feedback.
In the future I am going to implement a todo list in a real iOS application on programmatically, storyboard or SwiftUI method, using CRUD with fake, local or remote database.

> Hay muchas maneras de escribir un todo list, quizas esta no es la mejor manera pero la idea es como empezar con algo muy basico para entender como implementar un todo list.

`Cheers.. 🍺 && Happy Coding`